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_http3_total  | 
Counter  | 
Total HTTP/3 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_http3_active  | 
Gauge  | 
Total active HTTP/3 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_max_requests_reached  | 
Counter  | 
Total connections closed due to max requests per connection  | 
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_http3_total  | 
Counter  | 
Total HTTP/3 requests  | 
downstream_rq_active  | 
Gauge  | 
Total active requests  | 
downstream_rq_rejected_via_ip_detection  | 
Counter  | 
Total requests rejected because the original IP detection failed  | 
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_failed_path_normalization  | 
Counter  | 
Total requests redirected due to different original and normalized URL paths or when path normalization failed. This action is configured by setting the path_with_escaped_slashes_action config option.  | 
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 upgrade requests rejected by non upgrade routes. This now applies both to WebSocket and non-WebSocket upgrades  | 
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_max_duration_reached  | 
Counter  | 
Total requests closed due to max duration reached  | 
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  | 
downstream_rq_redirected_with_normalized_path  | 
Counter  | 
Total requests redirected due to different original and normalized URL paths. This action is configured by setting the path_with_escaped_slashes_action config option.  | 
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¶
Per listener statistics are rooted at listener.<address>.
HTTP per listener statistics¶
Additional HTTP statistics are of the form 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  | 
HTTP/3 per listener statistics¶
HTTP/3 statistics with the form of http3.downstream.<stat_prefix>.:
Name  | 
Type  | 
Description  | 
|---|---|---|
<tx/rx>.quic_connection_close_error_code_<error_code>  | 
Counter  | 
A collection of counters that are lazily initialized to record each quic connection close error code that’s present.  | 
<tx/rx>.quic_reset_stream_error_code_<error_code>  | 
Counter  | 
A collection of counters that that lazily initialized to record quic stream reset error codes.  | 
Per codec statistics¶
Each codec has the option of adding per-codec statistics. http1, http2, and http3 all have codec stats.
HTTP/1 codec statistics¶
On the downstream side all http1 statistics are rooted at http1.
On the upstream side all http1 statistics are rooted at cluster.<name>.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.  | 
HTTP/2 codec statistics¶
On the downstream side all http2 statistics are rooted at http2.
On the upstream side all http2 statistics are rooted at cluster.<name>.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.  | 
metadata_empty_frames  | 
Counter  | 
Total number of metadata frames that were received and contained empty maps.  | 
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  | 
stream_refused_errors  | 
Counter  | 
Total number of invalid frames received by Envoy with a REFUSED_STREAM error code  | 
trailers  | 
Counter  | 
Total number of trailers seen on requests coming from downstream  | 
tx_flush_timeout  | 
Counter  | 
Total number of stream idle timeouts waiting for open stream window to flush the remainder of a stream  | 
tx_reset  | 
Counter  | 
Total number of reset stream frames transmitted by Envoy  | 
keepalive_timeout  | 
Counter  | 
Total number of connections closed due to keepalive timeout  | 
streams_active  | 
Gauge  | 
Active streams as observed by the codec  | 
pending_send_bytes  | 
Gauge  | 
Currently buffered body data in bytes waiting to be written when stream/connection window is opened.  | 
Attention
The HTTP/2 streams_active gauge may be greater than the HTTP connection manager downstream_rq_active gauge due to differences in stream accounting between the codec and the HTTP connection manager.
HTTP/3 codec statistics¶
On the downstream side all http3 statistics are rooted at http3.
On the upstream side all http3 statistics are rooted at cluster.<name>.http3.
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.  | 
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_reset  | 
Counter  | 
Total number of reset stream frames received by Envoy  | 
tx_reset  | 
Counter  | 
Total number of reset stream frames transmitted by Envoy  | 
metadata_not_supported_error  | 
Counter  | 
Total number of metadata dropped during HTTP/3 encoding  | 
quic_version_rfc_v1  | 
Counter  | 
Total number of quic connections that use transport version rfc-v1.  | 
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  |