1
1
#![ allow( unused_imports) ] // some used only for telemetry feature
2
2
use opentelemetry:: trace:: { TraceId , TracerProvider } ;
3
- use opentelemetry_sdk:: { runtime, trace as sdktrace, trace:: Config , Resource } ;
3
+ use opentelemetry_sdk:: { runtime, trace as sdktrace, Resource } ;
4
+ use sdktrace:: { Config , SdkTracerProvider } ;
4
5
use tracing_subscriber:: { prelude:: * , EnvFilter , Registry } ;
5
6
6
7
/// Fetch an opentelemetry::trace::TraceId as hex through the full tracing stack
7
8
pub fn get_trace_id ( ) -> TraceId {
8
9
use opentelemetry:: trace:: TraceContextExt as _; // opentelemetry::Context -> opentelemetry::trace::Span
9
10
use tracing_opentelemetry:: OpenTelemetrySpanExt as _; // tracing::Span to opentelemetry::Context
10
- tracing:: Span :: current ( )
11
+ TraceId :: INVALID
12
+ /*tracing::Span::current()
11
13
.context()
12
14
.span()
13
15
.span_context()
14
16
.trace_id()
17
+ */
15
18
}
16
19
17
20
#[ cfg( feature = "telemetry" ) ]
@@ -24,7 +27,7 @@ fn resource() -> Resource {
24
27
}
25
28
26
29
#[ cfg( feature = "telemetry" ) ]
27
- fn init_tracer ( ) -> sdktrace :: Tracer {
30
+ fn init_tracer ( ) -> SdkTracerProvider {
28
31
use opentelemetry_otlp:: { SpanExporter , WithExportConfig } ;
29
32
let endpoint = std:: env:: var ( "OPENTELEMETRY_ENDPOINT_URL" ) . expect ( "Needs an otel collector" ) ;
30
33
let exporter = SpanExporter :: builder ( )
@@ -33,9 +36,9 @@ fn init_tracer() -> sdktrace::Tracer {
33
36
. build ( )
34
37
. unwrap ( ) ;
35
38
36
- let provider = sdktrace:: TracerProvider :: builder ( )
37
- . with_batch_exporter ( exporter, runtime:: Tokio )
39
+ let provider = SdkTracerProvider :: builder ( )
38
40
. with_resource ( resource ( ) )
41
+ . with_batch_exporter ( exporter)
39
42
. build ( ) ;
40
43
41
44
opentelemetry:: global:: set_tracer_provider ( provider. clone ( ) ) ;
0 commit comments