Skip to content

Commit 1937514

Browse files
committed
fix
1 parent afc8ff5 commit 1937514

File tree

2 files changed

+50
-29
lines changed

2 files changed

+50
-29
lines changed

opentelemetry-sdk/src/trace/config.rs

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//! can be set for the default OpenTelemetry limits and Sampler.
55
use crate::trace::{span_limit::SpanLimits, IdGenerator, RandomIdGenerator, Sampler, ShouldSample};
66
use crate::Resource;
7-
use opentelemetry::global::{handle_error, Error};
7+
use opentelemetry::{otel_debug, otel_warn};
88
use std::borrow::Cow;
99
use std::env;
1010
use std::str::FromStr;
@@ -129,9 +129,9 @@ impl Default for Config {
129129
if let Some(r) = ratio {
130130
Box::new(Sampler::TraceIdRatioBased(r))
131131
} else {
132-
handle_error(
133-
Error::Other(String::from(
134-
"Missing or invalid OTEL_TRACES_SAMPLER_ARG value. Falling back to default: 1.0"))
132+
otel_warn!(
133+
name: "TracesSampler.TraceIdRatio.Error",
134+
message= "Missing or invalid OTEL_TRACES_SAMPLER_ARG env variable. Falling back to default: 1.0"
135135
);
136136
Box::new(Sampler::TraceIdRatioBased(1.0))
137137
}
@@ -149,37 +149,42 @@ impl Default for Config {
149149
r,
150150
))))
151151
} else {
152-
handle_error(
153-
Error::Other(String::from(
154-
"Missing or invalid OTEL_TRACES_SAMPLER_ARG value. Falling back to default: 1.0"
155-
)));
152+
otel_warn!(
153+
name: "TracesSampler.ParentBasedTraceIdRatio.Error",
154+
message = "Missing or invalid OTEL_TRACES_SAMPLER_ARG env variable. Falling back to default: 1.0"
155+
);
156156
Box::new(Sampler::ParentBased(Box::new(Sampler::TraceIdRatioBased(
157157
1.0,
158158
))))
159159
}
160160
}
161161
"parentbased_jaeger_remote" => {
162-
handle_error(
163-
Error::Other(String::from(
164-
"Unimplemented parentbased_jaeger_remote sampler. Falling back to default: parentbased_always_on"
165-
)));
162+
otel_debug!(
163+
name: "TracesSampler.ParentBasedJaegerRemote.Error",
164+
message = "Unimplemented parentbased_jaeger_remote sampler. Falling back to default: parentbased_always_on"
165+
);
166166
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
167167
}
168168
"jaeger_remote" => {
169-
handle_error(
170-
Error::Other(String::from("Unimplemented jaeger_remote sampler. Falling back to default: parentbased_always_on")));
169+
otel_debug!(
170+
name: "TracesSampler.JaegerRemote.Error",
171+
message = "Unimplemented jaeger_remote sampler. Falling back to default: parentbased_always_on"
172+
);
171173
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
172174
}
173175
"xray" => {
174-
handle_error(
175-
Error::Other(String::from("Unimplemented xray sampler. Falling back to default: parentbased_always_on")));
176+
otel_debug!(
177+
name: "TracesSampler.Xray.Error",
178+
message = "Unimplemented xray sampler. Falling back to default: parentbased_always_on"
179+
);
176180
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
177181
}
178182
s => {
179-
handle_error(
180-
Error::Other(format!("Unrecognised OTEL_TRACES_SAMPLER value: {}. Falling back to default: parentbased_always_on",
181-
s
182-
)));
183+
otel_warn!(
184+
name: "TracesSampler.Unknown.Error",
185+
message = "Unrecognised OTEL_TRACES_SAMPLER env variable. Falling back to default: parentbased_always_on",
186+
sampler = s
187+
);
183188
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
184189
}
185190
}

opentelemetry-sdk/src/trace/span_processor.rs

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ use futures_util::{
4545
stream::{self, FusedStream, FuturesUnordered},
4646
StreamExt as _,
4747
};
48-
use opentelemetry::global;
48+
use opentelemetry::{otel_debug, otel_error};
4949
use opentelemetry::{
5050
trace::{TraceError, TraceResult},
5151
Context,
@@ -134,7 +134,10 @@ impl SpanProcessor for SimpleSpanProcessor {
134134
.and_then(|mut exporter| futures_executor::block_on(exporter.export(vec![span])));
135135

136136
if let Err(err) = result {
137-
global::handle_error(err);
137+
otel_error!(
138+
name: "SimpleProcessor.OnEnd.Error",
139+
reason = format!("{:?}", err)
140+
);
138141
}
139142
}
140143

@@ -246,7 +249,10 @@ impl<R: RuntimeChannel> SpanProcessor for BatchSpanProcessor<R> {
246249
let result = self.message_sender.try_send(BatchMessage::ExportSpan(span));
247250

248251
if let Err(err) = result {
249-
global::handle_error(TraceError::Other(err.into()));
252+
otel_error!(
253+
name: "BatchProcessor.OnEnd.Error",
254+
reason = format!("{:?}", TraceError::Other(err.into()))
255+
);
250256
}
251257
}
252258

@@ -313,14 +319,21 @@ impl<R: RuntimeChannel> BatchSpanProcessorInternal<R> {
313319
let result = export_task.await;
314320

315321
if let Some(channel) = res_channel {
322+
// If a response channel is provided, attempt to send the export result through it.
316323
if let Err(result) = channel.send(result) {
317-
global::handle_error(TraceError::from(format!(
318-
"failed to send flush result: {:?}",
319-
result
320-
)));
324+
otel_debug!(
325+
name: "BatchSpanProcessor.Flush.SendResultError",
326+
reason = format!("{:?}", result)
327+
);
321328
}
322329
} else if let Err(err) = result {
323-
global::handle_error(err);
330+
// If no channel is provided and the export operation encountered an error,
331+
// log the error directly here.
332+
otel_error!(
333+
name: "BatchSpanProcessor.Flush.ExportError",
334+
reason = format!("{:?}", err),
335+
message = "Failed during the export process"
336+
);
324337
}
325338

326339
Ok(())
@@ -354,7 +367,10 @@ impl<R: RuntimeChannel> BatchSpanProcessorInternal<R> {
354367
let export_task = self.export();
355368
let task = async move {
356369
if let Err(err) = export_task.await {
357-
global::handle_error(err);
370+
otel_error!(
371+
name: "BatchSpanProcessor.Export.Error",
372+
error = format!("{}", err)
373+
);
358374
}
359375

360376
Ok(())

0 commit comments

Comments
 (0)