Statistics

Every connection manager has a statistics tree rooted at http.. with the following statistics:

NameTypeDescription
downstream_cx_totalCounterTotal connections
downstream_cx_ssl_totalCounterTotal TLS connections
downstream_cx_http1_totalCounterTotal HTTP/1.1 connections
downstream_cx_websocket_totalCounterTotal WebSocket connections
downstream_cx_http2_totalCounterTotal HTTP/2 connections
downstream_cx_destroyCounterTotal connections destroyed
downstream_cx_destroy_remoteCounterTotal connections destroyed due to remote close
downstream_cx_destroy_localCounterTotal connections destroyed due to local close
downstream_cx_destroy_active_rqCounterTotal connections destroyed with 1+ active request
downstream_cx_destroy_local_active_rqCounterTotal connections destroyed locally with 1+ active request
downstream_cx_destroy_remote_active_rqCounterTotal connections destroyed remotely with 1+ active request
downstream_cx_activeGaugeTotal active connections
downstream_cx_ssl_activeGaugeTotal active TLS connections
downstream_cx_http1_activeGaugeTotal active HTTP/1.1 connections
downstream_cx_websocket_activeGaugeTotal active WebSocket connections
downstream_cx_http2_activeGaugeTotal active HTTP/2 connections
downstream_cx_protocol_errorCounterTotal protocol errors
downstream_cx_length_msHistogramConnection length milliseconds
downstream_cx_rx_bytes_totalCounterTotal bytes received
downstream_cx_rx_bytes_bufferedGaugeTotal received bytes currently buffered
downstream_cx_tx_bytes_totalCounterTotal bytes sent
downstream_cx_tx_bytes_bufferedGaugeTotal sent bytes currently buffered
downstream_cx_drain_closeCounterTotal connections closed due to draining
downstream_cx_idle_timeoutCounterTotal connections closed due to idle timeout
downstream_flow_control_paused_reading_totalCounterTotal number of times reads were disabled due to flow control
downstream_flow_control_resumed_reading_totalCounterTotal number of times reads were enabled on the connection due to flow control
downstream_rq_totalCounterTotal requests
downstream_rq_http1_totalCounterTotal HTTP/1.1 requests
downstream_rq_http2_totalCounterTotal HTTP/2 requests
downstream_rq_activeGaugeTotal active requests
downstream_rq_response_before_rq_completeCounterTotal responses sent before the request was complete
downstream_rq_rx_resetCounterTotal request resets received
downstream_rq_tx_resetCounterTotal request resets sent
downstream_rq_non_relative_pathCounterTotal requests with a non-relative HTTP path
downstream_rq_too_largeCounterTotal requests resulting in a 413 due to buffering an overly large body
downstream_rq_1xxCounterTotal 1xx responses
downstream_rq_2xxCounterTotal 2xx responses
downstream_rq_3xxCounterTotal 3xx responses
downstream_rq_4xxCounterTotal 4xx responses
downstream_rq_5xxCounterTotal 5xx responses
downstream_rq_ws_on_non_ws_routeCounterTotal WebSocket upgrade requests rejected by non WebSocket routes
downstream_rq_timeHistogramRequest time milliseconds
rs_too_largeCounterTotal response errors due to buffering an overly large body

Per user agent statistics

Additional per user agent statistics are rooted at http..user_agent.. Currently Envoy matches user agent for both iOS (ios) and Android (android) and produces the following statistics:

NameTypeDescription
downstream_cx_totalCounterTotal connections
downstream_cx_destroy_remote_active_rqCounterTotal connections destroyed remotely with 1+ active requests
downstream_rq_totalCounterTotal requests

Per listener statistics

Additional per listener statistics are rooted at listener.

.http.. with the following statistics:

NameTypeDescription
downstream_rq_1xxCounterTotal 1xx responses
downstream_rq_2xxCounterTotal 2xx responses
downstream_rq_3xxCounterTotal 3xx responses
downstream_rq_4xxCounterTotal 4xx responses
downstream_rq_5xxCounterTotal 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.

NameTypeDescription
header_overflowCounterTotal number of connections reset due to the headers being larger than Envoy::Http::Http2::ConnectionImpl::StreamImpl::MAX_HEADER_SIZE (63k)
headers_cb_no_streamCounterTotal 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
rx_messaging_errorCounterTotal number of invalid received frames that violated section 8 of the HTTP/2 spec. This will result in a tx_reset
rx_resetCounterTotal number of reset stream frames received by Envoy
too_many_header_framesCounterTotal 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
trailersCounterTotal number of trailers seen on requests coming from downstream
tx_resetCounterTotal 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..tracing. with the following statistics:

NameTypeDescription
random_samplingCounterTotal number of traceable decisions by random sampling
service_forcedCounterTotal number of traceable decisions by server runtime flag tracing.global_enabled
client_enabledCounterTotal number of traceable decisions by request header x-envoy-force-trace
not_traceableCounterTotal number of non-traceable decisions by request id
health_checkCounterTotal number of non-traceable decisions by health check