build(deps): upgrade to opentelemetry 0.30 (#10239)

This commit is contained in:
Thomas Eizinger
2025-08-21 22:47:39 +00:00
committed by GitHub
parent f76abfa656
commit c70c88c856
7 changed files with 68 additions and 66 deletions

73
rust/Cargo.lock generated
View File

@@ -658,7 +658,7 @@ dependencies = [
"serde_urlencoded",
"sync_wrapper",
"tokio",
"tower 0.5.2",
"tower",
"tower-layer",
"tower-service",
]
@@ -4983,9 +4983,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
[[package]]
name = "opentelemetry"
version = "0.29.1"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e87237e2775f74896f9ad219d26a2081751187eb7c9f5c58dde20a23b95d16c"
checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6"
dependencies = [
"futures-core",
"futures-sink",
@@ -4997,25 +4997,23 @@ dependencies = [
[[package]]
name = "opentelemetry-http"
version = "0.29.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46d7ab32b827b5b495bd90fa95a6cb65ccc293555dcc3199ae2937d2d237c8ed"
checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d"
dependencies = [
"async-trait",
"bytes",
"http 1.3.1",
"opentelemetry",
"reqwest",
"tracing",
]
[[package]]
name = "opentelemetry-otlp"
version = "0.29.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d899720fe06916ccba71c01d04ecd77312734e2de3467fd30d9d580c8ce85656"
checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b"
dependencies = [
"futures-core",
"http 1.3.1",
"opentelemetry",
"opentelemetry-http",
@@ -5031,9 +5029,9 @@ dependencies = [
[[package]]
name = "opentelemetry-proto"
version = "0.29.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c40da242381435e18570d5b9d50aca2a4f4f4d8e146231adb4e7768023309b3"
checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc"
dependencies = [
"opentelemetry",
"opentelemetry_sdk",
@@ -5043,26 +5041,24 @@ dependencies = [
[[package]]
name = "opentelemetry-stdout"
version = "0.29.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7e27d446dabd68610ef0b77d07b102ecde827a4596ea9c01a4d3811e945b286"
checksum = "447191061af41c3943e082ea359ab8b64ff27d6d34d30d327df309ddef1eef6f"
dependencies = [
"chrono",
"futures-util",
"opentelemetry",
"opentelemetry_sdk",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.29.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afdefb21d1d47394abc1ba6c57363ab141be19e27cc70d0e422b7f303e4d290b"
checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b"
dependencies = [
"futures-channel",
"futures-executor",
"futures-util",
"glob",
"opentelemetry",
"percent-encoding",
"rand 0.9.1",
@@ -5070,7 +5066,6 @@ dependencies = [
"thiserror 2.0.15",
"tokio",
"tokio-stream",
"tracing",
]
[[package]]
@@ -6028,7 +6023,7 @@ dependencies = [
"tokio",
"tokio-rustls",
"tokio-util",
"tower 0.5.2",
"tower",
"tower-http",
"tower-service",
"url",
@@ -8105,9 +8100,9 @@ checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076"
[[package]]
name = "tonic"
version = "0.12.3"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52"
checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9"
dependencies = [
"async-trait",
"base64 0.22.1",
@@ -8123,27 +8118,7 @@ dependencies = [
"prost",
"tokio",
"tokio-stream",
"tower 0.4.13",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
name = "tower"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
dependencies = [
"futures-core",
"futures-util",
"indexmap 1.9.3",
"pin-project",
"pin-project-lite",
"rand 0.8.5",
"slab",
"tokio",
"tokio-util",
"tower",
"tower-layer",
"tower-service",
"tracing",
@@ -8157,11 +8132,15 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
dependencies = [
"futures-core",
"futures-util",
"indexmap 2.9.0",
"pin-project-lite",
"slab",
"sync_wrapper",
"tokio",
"tokio-util",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
@@ -8177,7 +8156,7 @@ dependencies = [
"http-body",
"iri-string",
"pin-project-lite",
"tower 0.5.2",
"tower",
"tower-layer",
"tower-service",
]
@@ -8263,9 +8242,9 @@ dependencies = [
[[package]]
name = "tracing-opentelemetry"
version = "0.30.0"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd8e764bd6f5813fd8bebc3117875190c5b0415be8f7f8059bffb6ecd979c444"
checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c"
dependencies = [
"js-sys",
"once_cell",
@@ -8291,8 +8270,8 @@ dependencies = [
[[package]]
name = "tracing-stackdriver"
version = "0.11.0"
source = "git+https://github.com/thomaseizinger/tracing-stackdriver?branch=bump-otel-0.29#341b96b407d0e49e1f4e5708d8cf4d6a86380140"
version = "0.12.0"
source = "git+https://github.com/thomaseizinger/tracing-stackdriver?branch=bump-otel-0.30#0b86826d6229cefca4d567c04dce4ff18aaf534b"
dependencies = [
"Inflector",
"opentelemetry",

View File

@@ -117,10 +117,10 @@ nix = "0.30.1"
nu-ansi-term = "0.50"
num_cpus = "1.17.0"
once_cell = "1.21.3"
opentelemetry = "0.29.0"
opentelemetry-otlp = "0.29.0"
opentelemetry-stdout = "0.29.0"
opentelemetry_sdk = "0.29.0"
opentelemetry = "0.30.0"
opentelemetry-otlp = "0.30.0"
opentelemetry-stdout = "0.30.0"
opentelemetry_sdk = "0.30.0"
os_info = { version = "3", default-features = false }
output_vt100 = "0.1"
parking_lot = "0.12.4"
@@ -193,8 +193,8 @@ tracing-core = "0.1.34"
tracing-journald = "0.3.1"
tracing-log = "0.2.0"
tracing-macros = { git = "https://github.com/tokio-rs/tracing", branch = "v0.1.x" } # Contains `dbg!` but for `tracing`.
tracing-opentelemetry = "0.30.0"
tracing-stackdriver = "0.11.0"
tracing-opentelemetry = "0.31.0"
tracing-stackdriver = "0.12.0"
tracing-subscriber = { version = "0.3.19", features = ["parking_lot"] }
trackable = "1.3.0"
tun = { path = "connlib/tun" }
@@ -229,7 +229,7 @@ private-intra-doc-links = "allow" # We don't publish any of our docs but want to
boringtun = { git = "https://github.com/firezone/boringtun", branch = "master" }
ip_network = { git = "https://github.com/JakubOnderka/ip_network", branch = "master" } # Waiting for release.
ip_network_table = { git = "https://github.com/edmonds/ip_network_table", branch = "some-useful-traits" } # For `Debug` and `Clone`
tracing-stackdriver = { git = "https://github.com/thomaseizinger/tracing-stackdriver", branch = "bump-otel-0.29" } # Waiting for release.
tracing-stackdriver = { git = "https://github.com/thomaseizinger/tracing-stackdriver", branch = "bump-otel-0.30" } # Waiting for release.
softbuffer = { git = "https://github.com/rust-windowing/softbuffer" } # Waiting for release.
str0m = { git = "https://github.com/algesten/str0m", branch = "main" }
moka = { git = "https://github.com/moka-rs/moka", branch = "main" } # Waiting for release.

View File

@@ -277,7 +277,8 @@ mod tests {
use opentelemetry::global;
use opentelemetry_sdk::metrics::{
InMemoryMetricExporter, PeriodicReader, SdkMeterProvider, data::Sum,
InMemoryMetricExporter, PeriodicReader, SdkMeterProvider,
data::{AggregatedMetrics, MetricData},
};
use super::*;
@@ -366,10 +367,17 @@ mod tests {
fn get_num_buffers(exporter: &InMemoryMetricExporter) -> i64 {
let metrics = exporter.get_finished_metrics().unwrap();
let metric = &metrics.iter().last().unwrap().scope_metrics[0].metrics[0];
let sum = metric.data.as_any().downcast_ref::<Sum<i64>>().unwrap();
let metric = &metrics
.iter()
.last()
.and_then(|m| m.scope_metrics().next())
.and_then(|m| m.metrics().next())
.unwrap();
let AggregatedMetrics::I64(MetricData::Sum(sum)) = metric.data() else {
panic!("Not an i64 sum");
};
sum.data_points[0].value
sum.data_points().next().unwrap().value()
}
fn init_meter_provider() -> (SdkMeterProvider, InMemoryMetricExporter) {

View File

@@ -265,7 +265,6 @@ skip = [
"thiserror-impl",
"toml",
"toml_edit",
"tower",
"wasi",
"webpki-roots",
"windows-sys",

View File

@@ -3,7 +3,8 @@
use firezone_relay::{AllocationPort, ClientSocket, PeerSocket, ebpf};
use opentelemetry::global;
use opentelemetry_sdk::metrics::{
InMemoryMetricExporter, PeriodicReader, SdkMeterProvider, data::Sum,
InMemoryMetricExporter, PeriodicReader, SdkMeterProvider,
data::{AggregatedMetrics, MetricData},
};
use std::time::Duration;
use tokio::net::UdpSocket;
@@ -98,11 +99,18 @@ async fn ping_pong() {
assert!(!metrics.is_empty());
let metric = &metrics.iter().last().unwrap().scope_metrics[0].metrics[0];
let sum = metric.data.as_any().downcast_ref::<Sum<u64>>().unwrap();
let metric = &metrics
.iter()
.last()
.and_then(|m| m.scope_metrics().next())
.and_then(|m| m.metrics().next())
.unwrap();
let AggregatedMetrics::U64(MetricData::Sum(sum)) = metric.data() else {
panic!("Not an u64 sum");
};
assert_eq!(metric.name, "data_relayed_ebpf_bytes");
assert_eq!(sum.data_points[0].value, 4 + 4); // "ping" and "pong" are both 4 bytes.
assert_eq!(metric.name(), "data_relayed_ebpf_bytes");
assert_eq!(sum.data_points().next().unwrap().value(), 4 + 4); // "ping" and "pong" are both 4 bytes.
}
fn init_meter_provider() -> (SdkMeterProvider, InMemoryMetricExporter) {

View File

@@ -16,7 +16,7 @@ where
E: PushMetricExporter,
F: Fn() -> bool + Send + Sync + 'static,
{
fn export(&self, metrics: &mut ResourceMetrics) -> impl Future<Output = OTelSdkResult> + Send {
fn export(&self, metrics: &ResourceMetrics) -> impl Future<Output = OTelSdkResult> + Send {
if (self.should_export)() {
return Either::Left(self.inner.export(metrics));
}
@@ -35,4 +35,8 @@ where
fn temporality(&self) -> Temporality {
self.inner.temporality()
}
fn shutdown_with_timeout(&self, timeout: std::time::Duration) -> OTelSdkResult {
self.inner.shutdown_with_timeout(timeout)
}
}

View File

@@ -8,7 +8,7 @@ use opentelemetry_sdk::{
pub struct NoopPushMetricsExporter;
impl PushMetricExporter for NoopPushMetricsExporter {
fn export(&self, _: &mut ResourceMetrics) -> impl Future<Output = OTelSdkResult> + Send {
fn export(&self, _: &ResourceMetrics) -> impl Future<Output = OTelSdkResult> + Send {
std::future::ready(Ok(()))
}
@@ -23,4 +23,8 @@ impl PushMetricExporter for NoopPushMetricsExporter {
fn temporality(&self) -> Temporality {
Temporality::default()
}
fn shutdown_with_timeout(&self, _: std::time::Duration) -> OTelSdkResult {
Ok(())
}
}