Skip to content

Commit 088979b

Browse files
committed
feat(deps): upgrade to opentelemetry 0.25
1 parent 3d10aec commit 088979b

File tree

4 files changed

+29
-28
lines changed

4 files changed

+29
-28
lines changed

Cargo.toml

+11-4
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,33 @@ repository = "https://github.com/davidB/tracing-opentelemetry-instrumentation-sd
2222
rust-version = "1.80.0"
2323

2424
[workspace.dependencies]
25+
assert2 = "0.3"
2526
axum = { version = "0.7", default-features = false }
2627
http = "^1"
2728
hyper = "1"
2829
insta = { version = "1.40", features = ["yaml", "redactions"] }
30+
opentelemetry = { version = "0.25", features = [
2931
"trace",
3032
], default-features = false }
31-
opentelemetry_sdk = { version = "0.24.1", default-features = false, features = [
33+
opentelemetry_sdk = { version = "0.25", default-features = false, features = [
3234
"rt-tokio",
3335
] }
3436
opentelemetry-aws = { version = "0.12", default-features = false }
35-
opentelemetry-jaeger = { version = "0.22", default-features = false }
36-
opentelemetry-jaeger-propagator = { version = "0.3", default-features = false }
37+
opentelemetry-jaeger = { version = "0.25", default-features = false }
38+
opentelemetry-jaeger-propagator = { version = "0.25", default-features = false }
3739
opentelemetry-resource-detectors = { version = "0.3", default-features = false }
40+
opentelemetry-semantic-conventions = { version = "0.25", default-features = false }
41+
opentelemetry-zipkin = { version = "0.25", default-features = false }
42+
opentelemetry-otlp = { version = "0.25", default-features = false }
43+
opentelemetry-proto = { version = "0.25", default-features = false }
44+
opentelemetry-stdout = { version = "0.25" }
3845
rstest = "0.22"
3946
tokio = { version = "1.38", default-features = false }
4047
tokio-stream = { version = "0.1", default-features = false }
4148
tonic = { version = "0.12", default-features = false } #should be sync with opentelemetry-proto
4249
tower = { version = "0.5", default-features = false }
4350
tracing = "0.1"
44-
tracing-opentelemetry = "0.25"
51+
tracing-opentelemetry = "0.26"
4552

4653
[profile.dev.package.insta]
4754
opt-level = 3

examples/grpc/src/server.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,7 @@ impl Greeter for MyGreeter {
3838
async fn say_status(&self, request: Request<StatusRequest>) -> Result<Response<()>, Status> {
3939
let trace_id = tracing_opentelemetry_instrumentation_sdk::find_current_trace_id();
4040
let request = request.into_inner();
41-
tracing::info!(
42-
"ask to return status : {} ({:?})",
43-
request.code,
44-
trace_id
45-
);
41+
tracing::info!("ask to return status : {} ({:?})", request.code, trace_id);
4642
Err(Status::new(Code::from(request.code), request.message))
4743
}
4844
}
@@ -59,7 +55,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
5955
let (_, health_service) = tonic_health::server::health_reporter();
6056
let reflection_service = tonic_reflection::server::Builder::configure()
6157
.register_encoded_file_descriptor_set(hello_world::FILE_DESCRIPTOR_SET)
62-
.build()?;
58+
.build_v1()?;
6359

6460
println!("GreeterServer listening on {}", addr);
6561

fake-opentelemetry-collector/src/lib.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,9 @@ impl FakeCollectorServer {
8888

8989
async fn recv_many<T>(rx: &mut Receiver<T>, at_least: usize, timeout: Duration) -> Vec<T> {
9090
let deadline = Instant::now();
91+
let pause = (timeout / 5).min(Duration::from_millis(500));
9192
while rx.len() < at_least && deadline.elapsed() < timeout {
92-
tokio::time::sleep(timeout / 5).await;
93+
tokio::time::sleep(pause).await;
9394
}
9495
std::iter::from_fn(|| rx.try_recv().ok()).collect::<Vec<_>>()
9596
}
@@ -148,7 +149,7 @@ mod tests {
148149
shutdown_tracer_provider();
149150

150151
let otel_spans = fake_collector
151-
.exported_spans(1, Duration::from_millis(2000))
152+
.exported_spans(1, Duration::from_secs(20))
152153
.await;
153154
//insta::assert_debug_snapshot!(otel_spans);
154155
insta::assert_yaml_snapshot!(otel_spans, {
@@ -185,7 +186,7 @@ mod tests {
185186
let mut record = logger.create_log_record();
186187
record.set_body("This is information".into());
187188
record.set_severity_number(Severity::Info);
188-
record.set_severity_text("info".into());
189+
record.set_severity_text("info");
189190
logger.emit(record);
190191

191192
let otel_logs = fake_collector

init-tracing-opentelemetry/src/stdio.rs

+12-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use opentelemetry::trace::{TraceError, TracerProvider as _};
2+
use opentelemetry::InstrumentationLibrary;
23
use opentelemetry_sdk::trace as sdktrace;
34
use opentelemetry_sdk::trace::BatchSpanProcessor;
45
use opentelemetry_sdk::trace::TracerProvider;
@@ -13,34 +14,30 @@ pub fn identity<W: Write>(
1314
v
1415
}
1516

16-
pub fn init_tracer<F, W>(
17-
resource: Resource,
18-
transform: F,
19-
w: W,
20-
) -> Result<sdktrace::Tracer, TraceError>
17+
pub fn init_tracer<F, W>(resource: Resource, transform: F) -> Result<sdktrace::Tracer, TraceError>
2118
where
2219
F: FnOnce(opentelemetry_sdk::trace::Builder) -> opentelemetry_sdk::trace::Builder,
2320
W: Write + Debug + Send + Sync + 'static,
2421
{
25-
let exporter = opentelemetry_stdout::SpanExporter::builder()
26-
.with_writer(w)
27-
.build();
22+
let exporter = opentelemetry_stdout::SpanExporter::default();
2823
let processor =
2924
BatchSpanProcessor::builder(exporter, opentelemetry_sdk::runtime::Tokio).build();
3025
let mut provider_builder: opentelemetry_sdk::trace::Builder = TracerProvider::builder()
3126
.with_span_processor(processor)
3227
.with_config(
33-
sdktrace::config()
28+
sdktrace::Config::default()
3429
.with_resource(resource)
3530
.with_sampler(sdktrace::Sampler::AlwaysOn),
3631
);
3732
provider_builder = transform(provider_builder);
38-
Ok(provider_builder.build().versioned_tracer(
39-
"opentelemetry-stdio",
40-
Some(env!("CARGO_PKG_VERSION")),
41-
None::<&'static str>,
42-
None,
43-
))
33+
// tracer used in libraries/crates that optionally includes version and schema url
34+
let library = std::sync::Arc::new(
35+
InstrumentationLibrary::builder(env!("CARGO_PKG_NAME"))
36+
.with_version(env!("CARGO_PKG_VERSION"))
37+
.with_schema_url("https://opentelemetry.io/schema/1.0.0")
38+
.build(),
39+
);
40+
Ok(provider_builder.build().library_tracer(library))
4441
}
4542

4643
#[derive(Debug, Default)]

0 commit comments

Comments
 (0)