Statistics¶
Every connection manager has a statistics tree rooted at http.<stat_prefix>. with the following statistics:
Name |
Type |
Description |
---|---|---|
downstream_cx_total |
Counter |
Total connections |
downstream_cx_ssl_total |
Counter |
Total TLS connections |
downstream_cx_http1_total |
Counter |
Total HTTP/1.1 connections |
downstream_cx_upgrades_total |
Counter |
Total successfully upgraded connections. These are also counted as total http1/http2 connections. |
downstream_cx_http2_total |
Counter |
Total HTTP/2 connections |
downstream_cx_destroy |
Counter |
Total connections destroyed |
downstream_cx_destroy_remote |
Counter |
Total connections destroyed due to remote close |
downstream_cx_destroy_local |
Counter |
Total connections destroyed due to local close |
downstream_cx_destroy_active_rq |
Counter |
Total connections destroyed with 1+ active request |
downstream_cx_destroy_local_active_rq |
Counter |
Total connections destroyed locally with 1+ active request |
downstream_cx_destroy_remote_active_rq |
Counter |
Total connections destroyed remotely with 1+ active request |
downstream_cx_active |
Gauge |
Total active connections |
downstream_cx_ssl_active |
Gauge |
Total active TLS connections |
downstream_cx_http1_active |
Gauge |
Total active HTTP/1.1 connections |
downstream_cx_upgrades_active |
Gauge |
Total active upgraded connections. These are also counted as active http1/http2 connections. |
downstream_cx_http2_active |
Gauge |
Total active HTTP/2 connections |
downstream_cx_protocol_error |
Counter |
Total protocol errors |
downstream_cx_length_ms |
Histogram |
Connection length milliseconds |
downstream_cx_rx_bytes_total |
Counter |
Total bytes received |
downstream_cx_rx_bytes_buffered |
Gauge |
Total received bytes currently buffered |
downstream_cx_tx_bytes_total |
Counter |
Total bytes sent |
downstream_cx_tx_bytes_buffered |
Gauge |
Total sent bytes currently buffered |
downstream_cx_drain_close |
Counter |
Total connections closed due to draining |
downstream_cx_idle_timeout |
Counter |
Total connections closed due to idle timeout |
downstream_cx_max_duration_reached |
Counter |
Total connections closed due to max connection duration |
downstream_cx_overload_disable_keepalive |
Counter |
Total connections for which HTTP 1.x keepalive has been disabled due to Envoy overload |
downstream_flow_control_paused_reading_total |
Counter |
Total number of times reads were disabled due to flow control |
downstream_flow_control_resumed_reading_total |
Counter |
Total number of times reads were enabled on the connection due to flow control |
downstream_rq_total |
Counter |
Total requests |
downstream_rq_http1_total |
Counter |
Total HTTP/1.1 requests |
downstream_rq_http2_total |
Counter |
Total HTTP/2 requests |
downstream_rq_active |
Gauge |
Total active requests |
downstream_rq_response_before_rq_complete |
Counter |
Total responses sent before the request was complete |
downstream_rq_rx_reset |
Counter |
Total request resets received |
downstream_rq_tx_reset |
Counter |
Total request resets sent |
downstream_rq_non_relative_path |
Counter |
Total requests with a non-relative HTTP path |
downstream_rq_too_large |
Counter |
Total requests resulting in a 413 due to buffering an overly large body |
downstream_rq_completed |
Counter |
Total requests that resulted in a response (e.g. does not include aborted requests) |
downstream_rq_1xx |
Counter |
Total 1xx responses |
downstream_rq_2xx |
Counter |
Total 2xx responses |
downstream_rq_3xx |
Counter |
Total 3xx responses |
downstream_rq_4xx |
Counter |
Total 4xx responses |
downstream_rq_5xx |
Counter |
Total 5xx responses |
downstream_rq_ws_on_non_ws_route |
Counter |
Total WebSocket upgrade requests rejected by non WebSocket routes |
downstream_rq_time |
Histogram |
Total time for request and response (milliseconds) |
downstream_rq_idle_timeout |
Counter |
Total requests closed due to idle timeout |
downstream_rq_timeout |
Counter |
Total requests closed due to a timeout on the request path |
downstream_rq_overload_close |
Counter |
Total requests closed due to Envoy overload |
rs_too_large |
Counter |
Total response errors due to buffering an overly large body |
Per user agent statistics¶
Additional per user agent statistics are rooted at http.<stat_prefix>.user_agent.<user_agent>. Currently Envoy matches user agent for both iOS (ios) and Android (android) and produces the following statistics:
Name |
Type |
Description |
---|---|---|
downstream_cx_total |
Counter |
Total connections |
downstream_cx_destroy_remote_active_rq |
Counter |
Total connections destroyed remotely with 1+ active requests |
downstream_rq_total |
Counter |
Total requests |
Per listener statistics¶
Additional per listener statistics are rooted at listener.<address>.http.<stat_prefix>. with the following statistics:
Name |
Type |
Description |
---|---|---|
downstream_rq_completed |
Counter |
Total responses |
downstream_rq_1xx |
Counter |
Total 1xx responses |
downstream_rq_2xx |
Counter |
Total 2xx responses |
downstream_rq_3xx |
Counter |
Total 3xx responses |
downstream_rq_4xx |
Counter |
Total 4xx responses |
downstream_rq_5xx |
Counter |
Total 5xx responses |
Per codec statistics¶
Each codec has the option of adding per-codec statistics. Both http1 and http2 have codec stats.
Http1 codec statistics¶
All http1 statistics are rooted at http1.
Name |
Type |
Description |
---|---|---|
dropped_headers_with_underscores |
Counter |
Total number of dropped headers with names containing underscores. This action is configured by setting the headers_with_underscores_action config setting. |
metadata_not_supported_error |
Counter |
Total number of metadata dropped during HTTP/1 encoding |
response_flood |
Counter |
Total number of connections closed due to response flooding |
requests_rejected_with_underscores_in_headers |
Counter |
Total numbers of rejected requests due to header names containing underscores. This action is configured by setting the headers_with_underscores_action config setting. |
Http2 codec statistics¶
All http2 statistics are rooted at http2.
Name |
Type |
Description |
---|---|---|
dropped_headers_with_underscores |
Counter |
Total number of dropped headers with names containing underscores. This action is configured by setting the headers_with_underscores_action config setting. |
header_overflow |
Counter |
Total number of connections reset due to the headers being larger than the configured value. |
headers_cb_no_stream |
Counter |
Total number of errors where a header callback is called without an associated stream. This tracks an unexpected occurrence due to an as yet undiagnosed bug |
inbound_empty_frames_flood |
Counter |
Total number of connections terminated for exceeding the limit on consecutive inbound frames with an empty payload and no end stream flag. The limit is configured by setting the max_consecutive_inbound_frames_with_empty_payload config setting. |
inbound_priority_frames_flood |
Counter |
Total number of connections terminated for exceeding the limit on inbound frames of type PRIORITY. The limit is configured by setting the max_inbound_priority_frames_per_stream config setting. |
inbound_window_update_frames_flood |
Counter |
Total number of connections terminated for exceeding the limit on inbound frames of type WINDOW_UPDATE. The limit is configured by setting the max_inbound_window_updateframes_per_data_frame_sent config setting. |
outbound_flood |
Counter |
Total number of connections terminated for exceeding the limit on outbound frames of all types. The limit is configured by setting the max_outbound_frames config setting. |
outbound_control_flood |
Counter |
Total number of connections terminated for exceeding the limit on outbound frames of types PING, SETTINGS and RST_STREAM. The limit is configured by setting the max_outbound_control_frames config setting. |
requests_rejected_with_underscores_in_headers |
Counter |
Total numbers of rejected requests due to header names containing underscores. This action is configured by setting the headers_with_underscores_action config setting. |
rx_messaging_error |
Counter |
Total number of invalid received frames that violated section 8 of the HTTP/2 spec. This will result in a tx_reset |
rx_reset |
Counter |
Total number of reset stream frames received by Envoy |
too_many_header_frames |
Counter |
Total number of times an HTTP2 connection is reset due to receiving too many headers frames. Envoy currently supports proxying at most one header frame for 100-Continue one non-100 response code header frame and one frame with trailers |
trailers |
Counter |
Total number of trailers seen on requests coming from downstream |
tx_reset |
Counter |
Total number of reset stream frames transmitted by Envoy |
Tracing statistics¶
Tracing statistics are emitted when tracing decisions are made. All tracing statistics are rooted at http.<stat_prefix>.tracing. with the following statistics:
Name |
Type |
Description |
---|---|---|
random_sampling |
Counter |
Total number of traceable decisions by random sampling |
service_forced |
Counter |
Total number of traceable decisions by server runtime flag tracing.global_enabled |
client_enabled |
Counter |
Total number of traceable decisions by request header x-envoy-force-trace |
not_traceable |
Counter |
Total number of non-traceable decisions by request id |
health_check |
Counter |
Total number of non-traceable decisions by health check |