Skip to content

Commit 8d12fda

Browse files
committed
refactor(app): Simplify backend metrics layer bounds
this commit changes the backend-level metrics layer function, so that it invokes `linkerd_app_core::svc::layers()` rather than `linkerd_app_core::svc::layer::mk()`. this has a nice effect in that it simplifies the bounds of the `layer` function. Signed-off-by: katelyn martin <[email protected]>
1 parent 33f5f60 commit 8d12fda

File tree

2 files changed

+10
-24
lines changed

2 files changed

+10
-24
lines changed

linkerd/app/outbound/src/http/logical/policy/route/backend/metrics.rs

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -38,36 +38,22 @@ pub fn layer<T, N>(
3838
> + Clone
3939
where
4040
T: MkStreamLabel,
41-
N: svc::NewService<T>,
42-
NewRecordBodyData<
43-
ExtractRecordBodyDataParams,
44-
NewCountRequests<
45-
ExtractRequestCount,
46-
NewResponseDuration<T, ExtractRecordDurationParams<ResponseMetrics<T::StreamLabel>>, N>,
47-
>,
48-
>: svc::NewService<T>,
49-
NewCountRequests<
50-
ExtractRequestCount,
51-
NewResponseDuration<T, ExtractRecordDurationParams<ResponseMetrics<T::StreamLabel>>, N>,
52-
>: svc::NewService<T>,
53-
NewResponseDuration<T, ExtractRecordDurationParams<ResponseMetrics<T::StreamLabel>>, N>:
54-
svc::NewService<T>,
5541
{
5642
let RouteBackendMetrics {
5743
requests,
5844
responses,
5945
body_metrics,
6046
} = metrics.clone();
6147

62-
svc::layer::mk(move |inner| {
63-
use svc::Layer;
64-
NewRecordBodyData::layer_via(ExtractRecordBodyDataParams(body_metrics.clone())).layer(
65-
NewCountRequests::layer_via(ExtractRequestCount(requests.clone())).layer(
66-
NewRecordDuration::layer_via(ExtractRecordDurationParams(responses.clone()))
67-
.layer(inner),
68-
),
69-
)
70-
})
48+
let requests = NewCountRequests::layer_via(ExtractRequestCount(requests.clone()));
49+
let responses = NewRecordDuration::layer_via(ExtractRecordDurationParams(responses.clone()));
50+
let body_metrics =
51+
NewRecordBodyData::layer_via(ExtractRecordBodyDataParams(body_metrics.clone()));
52+
53+
svc::layers()
54+
.push(responses)
55+
.push(requests)
56+
.push(body_metrics)
7157
}
7258

7359
#[derive(Clone, Debug)]

linkerd/http/prom/src/body_data/response.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl<X: Clone, N> NewRecordBodyData<X, N> {
3434
///
3535
/// This uses an `X`-typed [`ExtractParam<P, T>`] implementation to extract service parameters
3636
/// from a `T`-typed target.
37-
pub fn layer_via(extract: X) -> impl Layer<N, Service = Self> {
37+
pub fn layer_via(extract: X) -> impl Layer<N, Service = Self> + Clone {
3838
svc::layer::mk(move |inner| Self {
3939
extract: extract.clone(),
4040
inner,

0 commit comments

Comments
 (0)