@@ -48,48 +48,52 @@ where
4848}
4949
5050pub fn setup_tracing ( config : & ServerConfig ) -> Result < ( ) > {
51- let mut tracer_provider = TracerProviderBuilder :: default ( ) . with_resource (
52- Resource :: builder_empty ( )
53- . with_service_name ( "indexify-server" )
54- . build ( ) ,
55- ) ;
56- match & config. telemetry . tracing_exporter {
57- Some ( TracingExporter :: Otlp ) => {
58- let mut otlp = OtlpSpanExporter :: builder ( ) . with_tonic ( ) ;
59- if let Some ( endpoint) = & config. telemetry . endpoint {
60- otlp = otlp. with_endpoint ( endpoint) ;
51+ let env_filter_layer = get_env_filter ( ) ;
52+
53+ let base = tracing_subscriber:: Registry :: default ( ) ;
54+
55+ let subscriber: Box < dyn tracing:: Subscriber + Send + Sync > =
56+ if let Some ( tracing_exporter) = & config. telemetry . tracing_exporter {
57+ let mut tracer_provider = TracerProviderBuilder :: default ( ) . with_resource (
58+ Resource :: builder_empty ( )
59+ . with_service_name ( "indexify-server" )
60+ . build ( ) ,
61+ ) ;
62+ match tracing_exporter {
63+ TracingExporter :: Otlp => {
64+ let mut otlp = OtlpSpanExporter :: builder ( ) . with_tonic ( ) ;
65+ if let Some ( endpoint) = & config. telemetry . endpoint {
66+ otlp = otlp. with_endpoint ( endpoint) ;
67+ }
68+ let exporter = otlp. build ( ) ?;
69+ tracer_provider = tracer_provider. with_batch_exporter ( exporter)
70+ }
71+ TracingExporter :: Stdout => {
72+ tracer_provider =
73+ tracer_provider. with_simple_exporter ( StdoutSpanExporter :: default ( ) ) ;
74+ }
6175 }
62- let exporter = otlp. build ( ) ?;
63- tracer_provider = tracer_provider. with_batch_exporter ( exporter)
64- }
65- Some ( TracingExporter :: Stdout ) => {
66- tracer_provider = tracer_provider. with_simple_exporter ( StdoutSpanExporter :: default ( ) ) ;
67- }
68- _ => { }
69- }
7076
71- let sdk_tracer = tracer_provider. build ( ) ;
77+ let sdk_tracer = tracer_provider. build ( ) ;
7278
73- let tracer = sdk_tracer. tracer ( "indexify-server" ) ;
74- let tracing_span_layer = tracing_opentelemetry:: layer ( )
75- . with_tracer ( tracer)
76- . with_filter ( SlateDBFilter ) ;
79+ let tracer = sdk_tracer. tracer ( "indexify-server" ) ;
80+ let span_layer = tracing_opentelemetry:: layer ( )
81+ . with_tracer ( tracer)
82+ . with_filter ( SlateDBFilter ) ;
7783
78- let env_filter_layer = get_env_filter ( ) ;
79- let log_layer = get_log_layer ( config) . with_filter ( env_filter_layer) ;
80- #[ cfg( feature = "console-subscriber" ) ]
81- let subscriber: Box < dyn tracing:: Subscriber + Send + Sync > = Box :: new (
82- tracing_subscriber:: Registry :: default ( )
83- . with ( console_subscriber:: spawn ( ) )
84- . with ( tracing_span_layer)
85- . with ( log_layer) ,
86- ) ;
87- #[ cfg( not( feature = "console-subscriber" ) ) ]
88- let subscriber: Box < dyn tracing:: Subscriber + Send + Sync > = Box :: new (
89- tracing_subscriber:: Registry :: default ( )
90- . with ( tracing_span_layer)
91- . with ( log_layer) ,
92- ) ;
84+ let base = base. with ( span_layer) ;
85+ #[ cfg( feature = "console-subscriber" ) ]
86+ let base = base. with ( console_subscriber:: spawn ( ) ) ;
87+
88+ let log_layer = get_log_layer ( config) . with_filter ( env_filter_layer. clone ( ) ) ;
89+ Box :: new ( base. with ( log_layer) )
90+ } else {
91+ #[ cfg( feature = "console-subscriber" ) ]
92+ let base = base. with ( console_subscriber:: spawn ( ) ) ;
93+
94+ let log_layer = get_log_layer ( config) . with_filter ( env_filter_layer. clone ( ) ) ;
95+ Box :: new ( base. with ( log_layer) )
96+ } ;
9397
9498 tracing:: subscriber:: set_global_default ( subscriber) ?;
9599 Ok ( ( ) )
0 commit comments