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_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 |
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_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 |
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.
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 |