@@ -12,7 +12,7 @@ use linkerd_app_core::{
1212} ;
1313use linkerd_http_prom:: {
1414 body_data:: { self , BodyDataMetrics } ,
15- count_reqs:: { NewCountRequests , RequestCount } ,
15+ count_reqs:: { self , RequestCount } ,
1616} ;
1717
1818pub ( super ) fn layer < N > (
@@ -22,20 +22,7 @@ pub(super) fn layer<N>(
2222 response_body_data,
2323 ..
2424 } : & InboundMetrics ,
25- ) -> impl svc:: Layer <
26- N ,
27- Service = NewCountRequests <
28- ExtractRequestCount ,
29- body_data:: response:: NewRecordBodyData <
30- ExtractResponseBodyDataMetrics ,
31- body_data:: request:: NewRecordBodyData <
32- N ,
33- ExtractRequestBodyDataParams ,
34- ExtractRequestBodyDataMetrics ,
35- > ,
36- > ,
37- > ,
38- > {
25+ ) -> impl svc:: Layer < N , Service = Instrumented < N > > {
3926 use svc:: Layer as _;
4027
4128 let count = {
@@ -45,17 +32,23 @@ pub(super) fn layer<N>(
4532
4633 let body = {
4734 let extract = ExtractResponseBodyDataMetrics ( response_body_data. clone ( ) ) ;
48- body_data :: response :: NewRecordBodyData :: layer_via ( extract)
35+ NewRecordResponseBodyData :: layer_via ( extract)
4936 } ;
5037
5138 let request = {
5239 let extract = ExtractRequestBodyDataParams ( request_body_data. clone ( ) ) ;
53- body_data :: request :: NewRecordBodyData :: new ( extract)
40+ NewRecordRequestBodyData :: new ( extract)
5441 } ;
5542
5643 svc:: layer:: mk ( move |inner| count. layer ( body. layer ( request. layer ( inner) ) ) )
5744}
5845
46+ /// An `N`-typed service instrumented with metrics middleware.
47+ type Instrumented < N > = NewCountRequests < NewRecordResponseBodyData < NewRecordRequestBodyData < N > > > ;
48+
49+ /// An `N`-typed `NewService<T>` instrumented with request counting metrics.
50+ type NewCountRequests < N > = count_reqs:: NewCountRequests < ExtractRequestCount , N > ;
51+
5952#[ derive( Clone , Debug ) ]
6053pub struct RequestCountFamilies {
6154 grpc : count_reqs:: RequestCountFamilies < RequestCountLabels > ,
@@ -70,6 +63,10 @@ pub struct RequestCountLabels {
7063#[ derive( Clone , Debug ) ]
7164pub struct ExtractRequestCount ( pub RequestCountFamilies ) ;
7265
66+ /// An `N`-typed `NewService<T>` instrumented with response body metrics.
67+ type NewRecordResponseBodyData < N > =
68+ body_data:: response:: NewRecordBodyData < ExtractResponseBodyDataMetrics , N > ;
69+
7370#[ derive( Clone , Debug ) ]
7471pub struct ResponseBodyFamilies {
7572 grpc : body_data:: response:: ResponseBodyFamilies < ResponseBodyDataLabels > ,
@@ -84,6 +81,13 @@ pub struct ResponseBodyDataLabels {
8481#[ derive( Clone , Debug ) ]
8582pub struct ExtractResponseBodyDataMetrics ( ResponseBodyFamilies ) ;
8683
84+ /// An `N`-typed `NewService<T>` instrumented with request body metrics.
85+ type NewRecordRequestBodyData < N > = body_data:: request:: NewRecordBodyData <
86+ N ,
87+ ExtractRequestBodyDataParams ,
88+ ExtractRequestBodyDataMetrics ,
89+ > ;
90+
8791#[ derive( Clone , Debug ) ]
8892pub struct RequestBodyFamilies {
8993 grpc : body_data:: request:: RequestBodyFamilies < RequestBodyDataLabels > ,
0 commit comments