Conversation
This change modifies HTTP error-labeling to detect I/O errors and label them explicitly. Previously all I/O errors were reported as `unexpected`. Fixes linkerd/linkerd2#4364
|
Is this as granular as we can get here? Can we distinguish between different IO errors at all? For example, distinguish between connection refused and connection closed? |
We already have some code for formatting labels based on OS error codes (https://github.com/linkerd/linkerd2-proxy/blob/d213c1373f1f5ec479a59a0a388d4373dcb3cde4/linkerd/proxy/transport/src/metrics/errno.rs) that we're already using for TCP metrics: linkerd2-proxy/linkerd/proxy/transport/src/metrics/mod.rs Lines 364 to 377 in d213c13 Possibly we could reuse this? |
You should never see a connection refused for http errors. We never dispatch requests to endpoints that are disconnected. This really can only indicate that a connection was terminated unexpectedly, as far as I understand. If someone else would like to propose an alternative that handles more metadata, please do. If we want to get something into this week's edge, I think we should take this approach. |
adleong
left a comment
There was a problem hiding this comment.
Sure, this doesn't hurt. Though, I'm still not totally clear on if it helps. I don't know what "unexpected" errors there could be previously other than IO errors.
This release adds special handling for I/O errors in HTTP responses so that an `errno` label is included to describe the underlying errors in the proxy's metrics. --- * Add an `i/o` error label to http metrics (linkerd/linkerd2-proxy#512)
This change modifies HTTP error-labeling to detect I/O errors and label them explicitly. Previously all I/O errors were reported as `unexpected`. Additionally, an `errno` label is included when possible. Fixes linkerd/linkerd2#4364
This release adds special handling for I/O errors in HTTP responses so that an `errno` label is included to describe the underlying errors in the proxy's metrics. --- * Add an `i/o` error label to http metrics (linkerd/linkerd2-proxy#512)
This change modifies HTTP error-labeling to detect I/O errors and label them explicitly. Previously all I/O errors were reported as `unexpected`. Additionally, an `errno` label is included when possible. Fixes linkerd/linkerd2#4364
This change modifies HTTP error-labeling to detect I/O errors
and label them explicitly. Previously all I/O errors were reported as
unexpected.Fixes linkerd/linkerd2#4364