kratos icon indicating copy to clipboard operation
kratos copied to clipboard

[Question] Middleware appears to use HTTP error codes even when the request was originally gRPC - is this intended?

Open wscalf opened this issue 4 months ago • 3 comments

While working with the metrics middleware, we noticed that all the error codes showing up in Prometheus were HTTP status codes (400, 504, etc) even though only the gRPC endpoints were being exercised, which surprised us at first, but it looks like all the middlewares behave this way:

  • Kratos errors are declared with an HTTP status code [link]
  • And middlewares use this code field directly (metrics, logging)

Which left us wondering: is this intentional behavior? It seems like it could be meant to abstract logged error codes from the actual protocol used, maybe favoring HTTP because it's more widely recognized, but we wanted to reach out and check.

We also noticed that OK responses are logged as 0, which would be the correct status code for gRPC but is inconsistent with the HTTP ones and likely just an empty value.

wscalf avatar Oct 15 '24 18:10 wscalf