5353#[ cfg( any( feature = "logging" , feature = "tracing" ) ) ]
5454mod scope;
5555
56- mod driver;
5756mod telemetry_context;
5857
5958#[ cfg( all( feature = "tracing" , feature = "telemetry-otlp-grpc" ) ) ]
@@ -94,10 +93,25 @@ pub mod tokio_runtime_metrics;
9493#[ cfg( feature = "telemetry-server" ) ]
9594mod server;
9695
96+ feature_use ! (
97+ cfg( any(
98+ feature = "logging" ,
99+ feature = "tracing" ,
100+ feature = "metrics" ,
101+ feature = "telemetry-server" ,
102+ ) ) ,
103+ {
104+ mod driver;
105+
106+ pub use self :: driver:: TelemetryDriver ;
107+ use crate :: BootstrapResult ;
108+ use futures_util:: stream:: FuturesUnordered ;
109+ }
110+ ) ;
111+
97112use self :: settings:: TelemetrySettings ;
98113use crate :: utils:: feature_use;
99- use crate :: { BootstrapResult , ServiceInfo } ;
100- use futures_util:: stream:: FuturesUnordered ;
114+ use crate :: ServiceInfo ;
101115
102116feature_use ! ( cfg( feature = "tracing" ) , {
103117 use self :: tracing:: SpanScope ;
@@ -119,7 +133,6 @@ pub use self::memory_profiler::MemoryProfiler;
119133#[ cfg( feature = "telemetry-server" ) ]
120134pub use self :: server:: { TelemetryRouteHandler , TelemetryRouteHandlerFuture , TelemetryServerRoute } ;
121135
122- pub use self :: driver:: TelemetryDriver ;
123136pub use self :: telemetry_context:: {
124137 TelemetryContext , WithTelemetryContext , WithTelemetryContextLocal ,
125138} ;
@@ -270,6 +283,12 @@ pub struct TelemetryConfig<'c> {
270283/// [jemalloc]: https://github.com/jemalloc/jemalloc
271284/// [`TelemetryServerSettings::enabled`]: `crate::telemetry::settings::TelemetryServerSettings::enabled`
272285/// [syscall sandboxing]: `crate::security`
286+ #[ cfg( any(
287+ feature = "logging" ,
288+ feature = "tracing" ,
289+ feature = "metrics" ,
290+ feature = "telemetry-server" ,
291+ ) ) ]
273292pub fn init ( config : TelemetryConfig ) -> BootstrapResult < TelemetryDriver > {
274293 let tele_futures: FuturesUnordered < _ > = Default :: default ( ) ;
275294
0 commit comments