gRPC Statistics

  • gRPC architecture overview

  • This filter should be configured with the type URL

  • v3 API reference

  • This filter can be enabled to emit a filter state object

  • The filter state object textual representation is request_message_count,response_message_count.

This filter enables telemetry of gRPC calls. It counts the number of successful and failed calls, optionally grouping them by the gRPC method name. Additionally, the filter detects message boundaries in streaming gRPC calls and emits the message counts for both uni-directional and bi-directional calls.

See more info on the wire format in gRPC over HTTP/2.

Note by default, the router filter will emit translated HTTP status code stats (from the cluster namespace) for gRPC requests that generate some types of local responses (e.g. upstream timeout). If only incrementing gRPC specific metrics is preferred, this behavior can be avoided by setting the field suppress_grpc_request_failure_code_stats within the router filter itself.

The filter emits statistics in the cluster.<route target cluster>.grpc. namespace. Depending on the configuration, the stats may be prefixed with <grpc service>.<grpc method>.; the stats in the table below are shown in this form. See the documentation for individual_method_stats_allowlist and stats_for_all_methods.

To enable upstream_rq_time (v3 API only) see enable_upstream_stats.




<grpc service>.<grpc method>.success


Total successful service/method calls

<grpc service>.<grpc method>.failure


Total failed service/method calls

<grpc service>.<grpc method>.total


Total service/method calls

<grpc service>.<grpc method>.request_message_count


Total request message count for service/method calls

<grpc service>.<grpc method>.response_message_count


Total response message count for service/method calls

<grpc service>.<grpc method>.upstream_rq_time


Request time milliseconds