You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(app): Backend response frame count metrics
this introduces a new tower middleware for Prometheus metrics, used for
instrumenting HTTP and gRPC response bodies, and observing (a) the
number of frames yielded by a body, and (b) the number of bytes included
in body frames, and (c) the distribution of frame sizes.
this middleware allows operators to reason about how large or small the
packets being served in a backend's response bodies are.
a route-level middleware that instruments request bodies will be added
in a follow-on PR.
### 📝 changes
an overview of changes made here:
* the `linkerd-http-prom` has a new `body_data` submodule. it exposes
`request` and `response` halves, to be explicit about which body is
being instrumented on a `tower::Service`.
* the `linkerd-http-prom` crate now has a collection of new
dependencies: `bytes` is added as a dependency in order to inspect the
data chunk when the inner body yields a new frame. `futures-util` and
`http-body` are added as dev-dependencies for the accompanying test
coverage.
* body metrics are affixed to the `RouteBackendMetrics<L>` structure,
and registered at startup.
Signed-off-by: katelyn martin <[email protected]>
* review: Inline attribute to service passthrough
Signed-off-by: katelyn martin <[email protected]>
* review: Inline attribute to body passthrough
continuing this theme of inlining, we inline the passthrough methods on
`Body` as well.
Signed-off-by: katelyn martin <[email protected]>
* review: Box `<RecordBodyData as Service>::Future` values
Signed-off-by: katelyn martin <[email protected]>
* review: rename `get()` to `metrics()`
Signed-off-by: katelyn martin <[email protected]>
* review: simplify `RecordBodyData<S>` response
Signed-off-by: katelyn martin <[email protected]>
* Update ResponseBody metrics to use a histogram
Signed-off-by: Oliver Gould <[email protected]>
* refactor(tests): feature gate frame size histogram assertions
see:
* prometheus/client_rust#242
* prometheus/client_rust#241
for now, refactor this test so that it gates all use of the (proposed)
`sum()` and `count()` accessors behind a temporary feature gate.
Signed-off-by: katelyn martin <[email protected]>
---------
Signed-off-by: katelyn martin <[email protected]>
Signed-off-by: Oliver Gould <[email protected]>
Co-authored-by: Oliver Gould <[email protected]>
0 commit comments