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_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. Currently only http2 has codec stats.
Http2 codec statistics¶
All http2 statistics are rooted at http2.
| Name | Type | Description | 
|---|---|---|
| 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. | 
| 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 |