gRPC Statistics

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.

Name

Type

Description

<grpc service>.<grpc method>.success

Counter

Total successful service/method calls

<grpc service>.<grpc method>.failure

Counter

Total failed service/method calls

<grpc service>.<grpc method>.total

Counter

Total service/method calls

<grpc service>.<grpc method>.request_message_count

Counter

Total request message count for service/method calls

<grpc service>.<grpc method>.response_message_count

Counter

Total response message count for service/method calls

<grpc service>.<grpc method>.upstream_rq_time

Histogram

Request time milliseconds