From da63abd1ad2bb922208c38d91f9d0384b3ece25c Mon Sep 17 00:00:00 2001 From: Gayathri Vijayan <66356931+grvijayan@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:36:18 +0100 Subject: [PATCH] fix(metrics): incorrect mapping of grpc status codes in the `grpc_server_grpc_status_code_total` metric (#10989) # Which Problems Are Solved Requests without errors were mapped being mapped to GRPC status code `Unknown`, which were then being mapped as HTTP `500` status code. # How the Problems Are Solved By deriving the grpc status codes from the error only when there's an error. When the error is `nil`, the grpc status code is set to 0 (`OK`). # Additional Changes N/A # Additional Context - Closes #10884 --- .../grpc/server/connect_middleware/metrics_interceptor.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/api/grpc/server/connect_middleware/metrics_interceptor.go b/internal/api/grpc/server/connect_middleware/metrics_interceptor.go index 552fa5658dd..fe9424a1b04 100644 --- a/internal/api/grpc/server/connect_middleware/metrics_interceptor.go +++ b/internal/api/grpc/server/connect_middleware/metrics_interceptor.go @@ -75,7 +75,10 @@ func RegisterGrpcTotalRequestCounter(ctx context.Context) { } func RegisterGrpcRequestCodeCounter(ctx context.Context, path string, err error) { - statusCode := connect.CodeOf(err) + statusCode := connect.Code(codes.OK) + if err != nil { + statusCode = connect.CodeOf(err) + } var labels = map[string]attribute.Value{ GrpcMethod: attribute.StringValue(path), ReturnCode: attribute.IntValue(runtime.HTTPStatusFromCode(codes.Code(statusCode))),