@@ -10,8 +10,9 @@ use opentelemetry_sdk::{
10
10
resource:: { EnvResourceDetector , TelemetryResourceDetector } ,
11
11
runtime, Resource ,
12
12
} ;
13
- use tracing_opentelemetry:: { MetricsLayer , OpenTelemetryLayer } ;
14
- use tracing_subscriber:: { filter:: Filtered , layer:: Layered , EnvFilter , Registry } ;
13
+ use tracing:: Subscriber ;
14
+ use tracing_opentelemetry:: MetricsLayer ;
15
+ use tracing_subscriber:: { registry:: LookupSpan , Layer } ;
15
16
16
17
use crate :: { detector:: SpinResourceDetector , env:: OtlpProtocol } ;
17
18
@@ -20,7 +21,9 @@ use crate::{detector::SpinResourceDetector, env::OtlpProtocol};
20
21
/// It pulls OTEL configuration from the environment based on the variables defined
21
22
/// [here](https://opentelemetry.io/docs/specs/otel/protocol/exporter/) and
22
23
/// [here](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#general-sdk-configuration).
23
- pub ( crate ) fn otel_metrics_layer ( spin_version : String ) -> Result < CustomMetricsLayer > {
24
+ pub ( crate ) fn otel_metrics_layer < S : Subscriber + for < ' span > LookupSpan < ' span > > (
25
+ spin_version : String ,
26
+ ) -> Result < impl Layer < S > > {
24
27
let resource = Resource :: from_detectors (
25
28
Duration :: from_secs ( 5 ) ,
26
29
vec ! [
@@ -105,17 +108,3 @@ macro_rules! monotonic_counter {
105
108
pub use counter;
106
109
pub use histogram;
107
110
pub use monotonic_counter;
108
-
109
- /// This really large type alias is require to make the registry.with() pattern happy.
110
- type CustomMetricsLayer = MetricsLayer <
111
- Layered <
112
- Option <
113
- Filtered <
114
- OpenTelemetryLayer < Registry , opentelemetry_sdk:: trace:: Tracer > ,
115
- EnvFilter ,
116
- Registry ,
117
- > ,
118
- > ,
119
- Registry ,
120
- > ,
121
- > ;
0 commit comments