Skip to content

Commit be71061

Browse files
chore(deps): update opentelemetry stack to 0.31 and tonic to 0.14 (#266)
also update code, and snapshot tests Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: David Bernard <david.bernard.31@gmail.com>
1 parent 2ede006 commit be71061

18 files changed

+87
-70
lines changed

.mise.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,21 @@ fi
6060

6161
[tasks.test]
6262
description = "Launch tests"
63-
depends = ["install:cargo-nextest", "install:cargo-insta"]
63+
depends = ["install:cargo-nextest"]
6464
run = [
6565
"cargo nextest run",
6666
"cargo test --doc",
6767
]
6868
wait_for = ["lint"]
6969

70+
[tasks."test:review"]
71+
description = "Launch snapshot test and review result (accept or reject)"
72+
depends = ["install:cargo-insta"]
73+
run = [
74+
"cargo insta review",
75+
]
76+
wait_for = ["lint"]
77+
7078
[tasks.test-each-feature]
7179
description = "Test each feature separately"
7280
depends = ["install:cargo-hack"]

Cargo.toml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,27 @@ axum = { version = "0.8", default-features = false }
2727
http = "^1"
2828
hyper = "1"
2929
insta = { version = "^1", features = ["redactions", "yaml"] }
30-
opentelemetry = { version = "0.30", features = [
30+
opentelemetry = { version = "0.31", features = [
3131
"trace",
3232
], default-features = false }
33-
opentelemetry_sdk = { version = "0.30", default-features = false, features = [
33+
opentelemetry_sdk = { version = "0.31", default-features = false, features = [
3434
"rt-tokio",
3535
] }
3636
opentelemetry-aws = { version = "0.18", default-features = false }
37-
opentelemetry-jaeger-propagator = { version = "0.30", default-features = false }
37+
opentelemetry-jaeger-propagator = { version = "0.31", default-features = false }
3838
opentelemetry-resource-detectors = { version = "0.9", default-features = false }
39-
opentelemetry-semantic-conventions = { version = "0.30", default-features = false }
40-
opentelemetry-zipkin = { version = "0.30", default-features = false }
41-
opentelemetry-otlp = { version = "0.30", default-features = false }
42-
opentelemetry-proto = { version = "0.30", default-features = false }
43-
opentelemetry-stdout = { version = "0.30" }
39+
opentelemetry-semantic-conventions = { version = "0.31", default-features = false }
40+
opentelemetry-zipkin = { version = "0.31", default-features = false }
41+
opentelemetry-otlp = { version = "0.31", default-features = false }
42+
opentelemetry-proto = { version = "0.31", default-features = false }
43+
opentelemetry-stdout = { version = "0.31" }
4444
rstest = "0.26"
4545
tokio = { version = "1", default-features = false }
4646
tokio-stream = { version = "0.1", default-features = false }
47-
tonic = { version = "0.13", default-features = false } #should be sync with opentelemetry-proto
47+
tonic = { version = "0.14", default-features = false } #should be sync with opentelemetry-proto
4848
tower = { version = "0.5", default-features = false }
4949
tracing = "0.1"
50-
tracing-opentelemetry = "0.31"
50+
tracing-opentelemetry = "0.32"
5151

5252
[profile.dev.package.insta]
5353
opt-level = 3

axum-tracing-opentelemetry/src/middleware/trace_extractor.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,9 @@ where
160160
if let Some(client_ip) = client_ip {
161161
span.record("client.address", client_ip);
162162
}
163-
span.set_parent(otel_http::extract_context(req.headers()));
163+
if let Err(error) = span.set_parent(otel_http::extract_context(req.headers())) {
164+
tracing::warn!(?error, "can not set parent trace_id to span");
165+
}
164166
span
165167
} else {
166168
tracing::Span::none()

deny.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ skip = [
223223
# "rand", # until tonic & tower upgrade
224224
# "rand_chacha", # until tonic & tower upgrade
225225
# "rand_core", # until tonic & tower upgrade
226-
"socket2",
226+
# "socket2",
227227
"wasi",
228228
]
229229
# Similarly to `skip` allows you to skip certain crates during duplicate

examples/grpc/Cargo.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,19 @@ init-tracing-opentelemetry = { path = "../../init-tracing-opentelemetry", featur
1414
"logfmt",
1515
] }
1616
opentelemetry = { workspace = true }
17-
prost = "0.13"
17+
prost = "0.14"
1818
tokio = { workspace = true, features = ["full"] }
1919
tonic = { workspace = true, features = ["transport", "router"] }
20-
tonic-health = "0.13"
21-
tonic-reflection = "0.13"
20+
tonic-health = "0.14"
21+
tonic-prost = "0.14"
22+
tonic-reflection = "0.14"
2223
tonic-tracing-opentelemetry = { path = "../../tonic-tracing-opentelemetry" }
2324
tower = { workspace = true }
2425
tracing = { workspace = true }
2526
tracing-opentelemetry-instrumentation-sdk = { path = "../../tracing-opentelemetry-instrumentation-sdk" }
2627

2728
[build-dependencies]
28-
tonic-build = "0.13"
29+
tonic-prost-build = "0.14"
2930

3031
[[bin]]
3132
name = "server"

examples/grpc/build.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
use std::path::PathBuf;
22

33
fn main() {
4-
// trigger rebuild if "proto" folder change
4+
// trigger rebuild if "proto" folder change or empty
55
print!("cargo:rerun-if-changed=./proto");
6+
print!("cargo:rerun-if-changed=./src/generated");
67

78
//let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
89
let out_dir = PathBuf::from(std::env!("CARGO_MANIFEST_DIR"))
910
.join("src")
1011
.join("generated");
1112
std::fs::create_dir_all(&out_dir).unwrap();
1213

13-
tonic_build::configure()
14+
tonic_prost_build::configure()
1415
.build_client(true)
1516
.build_server(true)
1617
.file_descriptor_set_path(out_dir.join("helloworld_descriptor.bin"))

examples/grpc/src/generated/helloworld.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
// This file is @generated by prost-build.
2-
#[derive(Clone, PartialEq, ::prost::Message)]
2+
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
33
pub struct HelloRequest {
44
#[prost(string, tag = "1")]
55
pub name: ::prost::alloc::string::String,
66
}
7-
#[derive(Clone, PartialEq, ::prost::Message)]
7+
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
88
pub struct HelloReply {
99
#[prost(string, tag = "1")]
1010
pub message: ::prost::alloc::string::String,
1111
}
12-
#[derive(Clone, PartialEq, ::prost::Message)]
12+
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1313
pub struct StatusRequest {
1414
/// <https://github.com/grpc/grpc/blob/master/doc/statuscodes.md#status-codes-and-their-use-in-grpc>
1515
#[prost(int32, tag = "1")]
@@ -120,7 +120,7 @@ pub mod greeter_client {
120120
format!("Service was not ready: {}", e.into()),
121121
)
122122
})?;
123-
let codec = tonic::codec::ProstCodec::default();
123+
let codec = tonic_prost::ProstCodec::default();
124124
let path = http::uri::PathAndQuery::from_static(
125125
"/helloworld.Greeter/SayHello",
126126
);
@@ -141,7 +141,7 @@ pub mod greeter_client {
141141
format!("Service was not ready: {}", e.into()),
142142
)
143143
})?;
144-
let codec = tonic::codec::ProstCodec::default();
144+
let codec = tonic_prost::ProstCodec::default();
145145
let path = http::uri::PathAndQuery::from_static(
146146
"/helloworld.Greeter/SayStatus",
147147
);
@@ -278,7 +278,7 @@ pub mod greeter_server {
278278
let inner = self.inner.clone();
279279
let fut = async move {
280280
let method = SayHelloSvc(inner);
281-
let codec = tonic::codec::ProstCodec::default();
281+
let codec = tonic_prost::ProstCodec::default();
282282
let mut grpc = tonic::server::Grpc::new(codec)
283283
.apply_compression_config(
284284
accept_compression_encodings,
@@ -321,7 +321,7 @@ pub mod greeter_server {
321321
let inner = self.inner.clone();
322322
let fut = async move {
323323
let method = SayStatusSvc(inner);
324-
let codec = tonic::codec::ProstCodec::default();
324+
let codec = tonic_prost::ProstCodec::default();
325325
let mut grpc = tonic::server::Grpc::new(codec)
326326
.apply_compression_config(
327327
accept_compression_encodings,

init-tracing-opentelemetry/src/tracing_subscriber_ext.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ where
124124
}
125125

126126
#[cfg(feature = "metrics")]
127-
pub fn build_metrics_layer<S>() -> Result<(MetricsLayer<S>, SdkMeterProvider), Error>
127+
pub fn build_metrics_layer<S>(
128+
) -> Result<(MetricsLayer<S, SdkMeterProvider>, SdkMeterProvider), Error>
128129
where
129130
S: Subscriber + for<'a> LookupSpan<'a>,
130131
{

testing-tracing-opentelemetry/src/snapshots/testing_tracing_opentelemetry__call_with_w3c_trace_otel_spans.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
source: testing-tracing-opentelemetry/src/lib.rs
33
expression: otel_spans
4-
snapshot_kind: text
54
---
65
- trace_id: "[trace_id:lg32]"
76
span_id: "[span_id:lg16]"
@@ -13,16 +12,17 @@ snapshot_kind: text
1312
end_time_unix_nano: "[timestamp]"
1413
attributes:
1514
busy_ns: ignore
16-
code.filepath: ignore
17-
code.lineno: ignore
18-
code.namespace: "Some(AnyValue { value: Some(StringValue(\"tracing_opentelemetry_instrumentation_sdk::http::http_server\")) })"
15+
code.file.path: "Some(AnyValue { value: Some(StringValue(\"tracing-opentelemetry-instrumentation-sdk/src/http/http_server.rs\")) })"
16+
code.line.number: "Some(AnyValue { value: Some(IntValue(13)) })"
17+
code.module.name: "Some(AnyValue { value: Some(StringValue(\"tracing_opentelemetry_instrumentation_sdk::http::http_server\")) })"
1918
http.request.method: "Some(AnyValue { value: Some(StringValue(\"GET\")) })"
2019
http.response.status_code: "Some(AnyValue { value: Some(StringValue(\"200\")) })"
2120
http.route: "Some(AnyValue { value: Some(StringValue(\"/users/{id}\")) })"
2221
idle_ns: ignore
2322
network.protocol.version: "Some(AnyValue { value: Some(StringValue(\"1.1\")) })"
2423
server.address: "Some(AnyValue { value: Some(StringValue(\"\")) })"
2524
span.type: "Some(AnyValue { value: Some(StringValue(\"web\")) })"
25+
target: "Some(AnyValue { value: Some(StringValue(\"otel::tracing\")) })"
2626
thread.id: ignore
2727
thread.name: "Some(AnyValue { value: Some(StringValue(\"middleware::trace_extractor::tests::check_span_event::case_6\")) })"
2828
url.path: "Some(AnyValue { value: Some(StringValue(\"/users/123\")) })"

testing-tracing-opentelemetry/src/snapshots/testing_tracing_opentelemetry__empty_http_route_for_nonexisting_route_otel_spans.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@ expression: otel_spans
1212
end_time_unix_nano: "[timestamp]"
1313
attributes:
1414
busy_ns: ignore
15-
code.filepath: ignore
16-
code.lineno: ignore
17-
code.namespace: "Some(AnyValue { value: Some(StringValue(\"tracing_opentelemetry_instrumentation_sdk::http::http_server\")) })"
15+
code.file.path: "Some(AnyValue { value: Some(StringValue(\"tracing-opentelemetry-instrumentation-sdk/src/http/http_server.rs\")) })"
16+
code.line.number: "Some(AnyValue { value: Some(IntValue(13)) })"
17+
code.module.name: "Some(AnyValue { value: Some(StringValue(\"tracing_opentelemetry_instrumentation_sdk::http::http_server\")) })"
1818
http.request.method: "Some(AnyValue { value: Some(StringValue(\"GET\")) })"
1919
http.response.status_code: "Some(AnyValue { value: Some(StringValue(\"404\")) })"
2020
http.route: "Some(AnyValue { value: Some(StringValue(\"\")) })"
2121
idle_ns: ignore
2222
network.protocol.version: "Some(AnyValue { value: Some(StringValue(\"1.1\")) })"
2323
server.address: "Some(AnyValue { value: Some(StringValue(\"\")) })"
2424
span.type: "Some(AnyValue { value: Some(StringValue(\"web\")) })"
25+
target: "Some(AnyValue { value: Some(StringValue(\"otel::tracing\")) })"
2526
thread.id: ignore
2627
thread.name: "Some(AnyValue { value: Some(StringValue(\"middleware::trace_extractor::tests::check_span_event::case_2\")) })"
2728
url.path: "Some(AnyValue { value: Some(StringValue(\"/idontexist/123\")) })"
@@ -35,4 +36,3 @@ expression: otel_spans
3536
status:
3637
message: ""
3738
code: STATUS_CODE_UNSET
38-

0 commit comments

Comments
 (0)