Skip to content

GrpcMetricsInterceptor records into a private SimpleMeterRegistry disconnected from the server registry — gRPC metrics black-holed #4826

Closed

Description

@ruispereira

Affected version: 26.6.1
Component: GrpcMetricsInterceptor
Severity: MEDIUM (observability)

Summary

The interceptor builds its own new SimpleMeterRegistry() (the comment admits "In
production, integrate with server's meter registry"), disconnected from the global
Metrics registry the rest of the service uses. Per-method metrics are written
into call trailers rather than tagged meters.

Code

GrpcMetricsInterceptor.java:43-58 (private registry), :81-82 (trailers).

Impact

gRPC request/error/duration metrics never reach the real registry — operators see
no gRPC telemetry from this interceptor.

Suggested fix

Inject/look up the server's shared MeterRegistry; record method/status as meter
tags.

Activity

  1. self-assigned this
    on Jun 30, 2026
  2. added theissue type on Jun 30, 2026
  3. added this to the 26.7.1 milestone on Jun 30, 2026
  4. added a commit that references this issue on Jun 30, 2026
  5. lvca commented on Jun 30, 2026

    @lvca
    Member

    Confirmed and fixed in main.

    The gRPC metrics interceptor was writing into its own private meter registry that nothing scraped, so gRPC request/error/duration metrics never showed up in Prometheus, OTLP, JMX or Studio. It now publishes into the same shared server registry as the rest of the metrics, and each metric is tagged with the gRPC method (plus status code for errors and durations), so you can break telemetry down by method/status. The fix ships in the next release.

  6. added a commit that references this issue on Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions