File tree Expand file tree Collapse file tree 2 files changed +8
-3
lines changed Expand file tree Collapse file tree 2 files changed +8
-3
lines changed Original file line number Diff line number Diff line change 1
1
use std:: time:: Duration ;
2
2
3
3
use anyhow:: { bail, Result } ;
4
+ use opentelemetry:: global;
4
5
use opentelemetry_otlp:: MetricsExporterBuilder ;
5
6
use opentelemetry_sdk:: {
6
7
metrics:: {
@@ -57,6 +58,8 @@ pub(crate) fn otel_metrics_layer<S: Subscriber + for<'span> LookupSpan<'span>>(
57
58
. with_resource ( resource)
58
59
. build ( ) ;
59
60
61
+ global:: set_meter_provider ( meter_provider. clone ( ) ) ;
62
+
60
63
Ok ( MetricsLayer :: new ( meter_provider) )
61
64
}
62
65
Original file line number Diff line number Diff line change 1
1
use std:: time:: Duration ;
2
2
3
3
use anyhow:: bail;
4
- use opentelemetry:: trace:: TracerProvider ;
4
+ use opentelemetry:: { global , trace:: TracerProvider } ;
5
5
use opentelemetry_otlp:: SpanExporterBuilder ;
6
6
use opentelemetry_sdk:: {
7
7
resource:: { EnvResourceDetector , TelemetryResourceDetector } ,
@@ -35,18 +35,20 @@ pub(crate) fn otel_tracing_layer<S: Subscriber + for<'span> LookupSpan<'span>>(
35
35
) ;
36
36
37
37
// This will configure the exporter based on the OTEL_EXPORTER_* environment variables.
38
- let exporter : SpanExporterBuilder = match OtlpProtocol :: traces_protocol_from_env ( ) {
38
+ let exporter_builder : SpanExporterBuilder = match OtlpProtocol :: traces_protocol_from_env ( ) {
39
39
OtlpProtocol :: Grpc => opentelemetry_otlp:: new_exporter ( ) . tonic ( ) . into ( ) ,
40
40
OtlpProtocol :: HttpProtobuf => opentelemetry_otlp:: new_exporter ( ) . http ( ) . into ( ) ,
41
41
OtlpProtocol :: HttpJson => bail ! ( "http/json OTLP protocol is not supported" ) ,
42
42
} ;
43
43
44
44
let tracer_provider = opentelemetry_otlp:: new_pipeline ( )
45
45
. tracing ( )
46
- . with_exporter ( exporter )
46
+ . with_exporter ( exporter_builder )
47
47
. with_trace_config ( opentelemetry_sdk:: trace:: Config :: default ( ) . with_resource ( resource) )
48
48
. install_batch ( opentelemetry_sdk:: runtime:: Tokio ) ?;
49
49
50
+ global:: set_tracer_provider ( tracer_provider. clone ( ) ) ;
51
+
50
52
let env_filter = match EnvFilter :: try_from_env ( "SPIN_OTEL_TRACING_LEVEL" ) {
51
53
Ok ( filter) => filter,
52
54
// If it isn't set or it fails to parse default to info
You can’t perform that action at this time.
0 commit comments