Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 25 additions & 20 deletions opentelemetry-sdk/src/trace/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//! can be set for the default OpenTelemetry limits and Sampler.
use crate::trace::{span_limit::SpanLimits, IdGenerator, RandomIdGenerator, Sampler, ShouldSample};
use crate::Resource;
use opentelemetry::global::{handle_error, Error};
use opentelemetry::{otel_debug, otel_warn};
use std::borrow::Cow;
use std::env;
use std::str::FromStr;
Expand Down Expand Up @@ -129,9 +129,9 @@
if let Some(r) = ratio {
Box::new(Sampler::TraceIdRatioBased(r))
} else {
handle_error(
Error::Other(String::from(
"Missing or invalid OTEL_TRACES_SAMPLER_ARG value. Falling back to default: 1.0"))
otel_warn!(
name: "TracesSampler.TraceIdRatio.Error",
message= "Missing or invalid OTEL_TRACES_SAMPLER_ARG env variable. Falling back to default: 1.0"

Check warning on line 134 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L132-L134

Added lines #L132 - L134 were not covered by tests
);
Box::new(Sampler::TraceIdRatioBased(1.0))
}
Expand All @@ -149,37 +149,42 @@
r,
))))
} else {
handle_error(
Error::Other(String::from(
"Missing or invalid OTEL_TRACES_SAMPLER_ARG value. Falling back to default: 1.0"
)));
otel_warn!(
name: "TracesSampler.ParentBasedTraceIdRatio.Error",
message = "Missing or invalid OTEL_TRACES_SAMPLER_ARG env variable. Falling back to default: 1.0"
);

Check warning on line 155 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L152-L155

Added lines #L152 - L155 were not covered by tests
Box::new(Sampler::ParentBased(Box::new(Sampler::TraceIdRatioBased(
1.0,
))))
}
}
"parentbased_jaeger_remote" => {
handle_error(
Error::Other(String::from(
"Unimplemented parentbased_jaeger_remote sampler. Falling back to default: parentbased_always_on"
)));
otel_debug!(
name: "TracesSampler.ParentBasedJaegerRemote.Error",
message = "Unimplemented parentbased_jaeger_remote sampler. Falling back to default: parentbased_always_on"
);

Check warning on line 165 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L162-L165

Added lines #L162 - L165 were not covered by tests
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
}
"jaeger_remote" => {
handle_error(
Error::Other(String::from("Unimplemented jaeger_remote sampler. Falling back to default: parentbased_always_on")));
otel_debug!(
name: "TracesSampler.JaegerRemote.Error",
message = "Unimplemented jaeger_remote sampler. Falling back to default: parentbased_always_on"
);

Check warning on line 172 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L169-L172

Added lines #L169 - L172 were not covered by tests
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
}
"xray" => {
handle_error(
Error::Other(String::from("Unimplemented xray sampler. Falling back to default: parentbased_always_on")));
otel_debug!(
name: "TracesSampler.Xray.Error",
message = "Unimplemented xray sampler. Falling back to default: parentbased_always_on"
);

Check warning on line 179 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L176-L179

Added lines #L176 - L179 were not covered by tests
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
}
s => {
handle_error(
Error::Other(format!("Unrecognised OTEL_TRACES_SAMPLER value: {}. Falling back to default: parentbased_always_on",
s
)));
otel_warn!(

Check warning on line 183 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L183

Added line #L183 was not covered by tests
name: "TracesSampler.Unknown.Error",
message = "Unrecognised OTEL_TRACES_SAMPLER env variable. Falling back to default: parentbased_always_on",
sampler = s

Check warning on line 186 in opentelemetry-sdk/src/trace/config.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/config.rs#L186

Added line #L186 was not covered by tests
);
Box::new(Sampler::ParentBased(Box::new(Sampler::AlwaysOn)))
}
}
Expand Down
34 changes: 25 additions & 9 deletions opentelemetry-sdk/src/trace/span_processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
stream::{self, FusedStream, FuturesUnordered},
StreamExt as _,
};
use opentelemetry::global;
use opentelemetry::{otel_debug, otel_error};
use opentelemetry::{
trace::{TraceError, TraceResult},
Context,
Expand Down Expand Up @@ -134,7 +134,10 @@
.and_then(|mut exporter| futures_executor::block_on(exporter.export(vec![span])));

if let Err(err) = result {
global::handle_error(err);
otel_error!(

Check warning on line 137 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L137

Added line #L137 was not covered by tests
name: "SimpleProcessor.OnEnd.Error",
reason = format!("{:?}", err)

Check warning on line 139 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L139

Added line #L139 was not covered by tests
);
}
}

Expand Down Expand Up @@ -246,7 +249,10 @@
let result = self.message_sender.try_send(BatchMessage::ExportSpan(span));

if let Err(err) = result {
global::handle_error(TraceError::Other(err.into()));
otel_error!(

Check warning on line 252 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L252

Added line #L252 was not covered by tests
name: "BatchProcessor.OnEnd.Error",
reason = format!("{:?}", TraceError::Other(err.into()))

Check warning on line 254 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L254

Added line #L254 was not covered by tests
);
}
}

Expand Down Expand Up @@ -313,14 +319,21 @@
let result = export_task.await;

if let Some(channel) = res_channel {
// If a response channel is provided, attempt to send the export result through it.
if let Err(result) = channel.send(result) {
global::handle_error(TraceError::from(format!(
"failed to send flush result: {:?}",
result
)));
otel_debug!(

Check warning on line 324 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L324

Added line #L324 was not covered by tests
name: "BatchSpanProcessor.Flush.SendResultError",
reason = format!("{:?}", result)

Check warning on line 326 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L326

Added line #L326 was not covered by tests
);
}
} else if let Err(err) = result {
global::handle_error(err);
// If no channel is provided and the export operation encountered an error,
// log the error directly here.
otel_error!(

Check warning on line 332 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L332

Added line #L332 was not covered by tests
name: "BatchSpanProcessor.Flush.ExportError",
reason = format!("{:?}", err),

Check warning on line 334 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L334

Added line #L334 was not covered by tests
message = "Failed during the export process"
);
}

Ok(())
Expand Down Expand Up @@ -354,7 +367,10 @@
let export_task = self.export();
let task = async move {
if let Err(err) = export_task.await {
global::handle_error(err);
otel_error!(

Check warning on line 370 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L370

Added line #L370 was not covered by tests
name: "BatchSpanProcessor.Export.Error",
reason = format!("{}", err)

Check warning on line 372 in opentelemetry-sdk/src/trace/span_processor.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/trace/span_processor.rs#L372

Added line #L372 was not covered by tests
);
}

Ok(())
Expand Down
Loading