feat: update opentelemetry family to 0.32 series (#8776)

* feat: update openetelemtry family to 0.32 series

* chore: resolve warning

* fix: update tests
This commit is contained in:
Ning Sun
2026-08-10 11:42:53 +08:00
committed by GitHub
parent 5d4699db1c
commit 606e5fd6a0
13 changed files with 112 additions and 128 deletions
Generated
+58 -117
View File
@@ -2262,7 +2262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
dependencies = [
"lazy_static",
"windows-sys 0.48.0",
"windows-sys 0.59.0",
]
[[package]]
@@ -2897,10 +2897,10 @@ dependencies = [
"humantime-serde",
"lazy_static",
"once_cell",
"opentelemetry 0.30.0",
"opentelemetry",
"opentelemetry-otlp",
"opentelemetry-semantic-conventions 0.30.0",
"opentelemetry_sdk 0.30.0",
"opentelemetry_sdk",
"parking_lot 0.12.4",
"prometheus 0.14.0",
"serde",
@@ -5599,7 +5599,7 @@ dependencies = [
"meta-client",
"meta-srv",
"num_cpus",
"opentelemetry-proto 0.31.0",
"opentelemetry-proto",
"opentelemetry-semantic-conventions 0.31.0",
"operator",
"otel-arrow-rust",
@@ -6662,7 +6662,7 @@ dependencies = [
"js-sys",
"log",
"wasm-bindgen",
"windows-core 0.57.0",
"windows-core 0.61.2",
]
[[package]]
@@ -7831,7 +7831,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
dependencies = [
"cfg-if",
"windows-targets 0.48.5",
"windows-targets 0.53.5",
]
[[package]]
@@ -9795,23 +9795,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
[[package]]
name = "opentelemetry"
version = "0.30.0"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6"
dependencies = [
"futures-core",
"futures-sink",
"js-sys",
"pin-project-lite",
"thiserror 2.0.17",
"tracing",
]
[[package]]
name = "opentelemetry"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0"
checksum = "b0142c63252a9e054e68a4c61a5778f7b14f576274d593f8ce883d191a099682"
dependencies = [
"futures-core",
"futures-sink",
@@ -9823,61 +9809,48 @@ dependencies = [
[[package]]
name = "opentelemetry-http"
version = "0.30.0"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d"
checksum = "5683015d09e2df236ef005b17f6f196f0d5f6313c4fa43a7b6a53b52776e4331"
dependencies = [
"async-trait",
"bytes",
"http 1.3.1",
"opentelemetry 0.30.0",
"reqwest 0.12.24",
"opentelemetry",
"reqwest 0.13.4",
]
[[package]]
name = "opentelemetry-otlp"
version = "0.30.0"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b"
checksum = "9966929966d17620d7c316c643ba62631826e10021409357772d5eea84f62c35"
dependencies = [
"http 1.3.1",
"opentelemetry 0.30.0",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-proto 0.30.0",
"opentelemetry_sdk 0.30.0",
"prost 0.13.5",
"reqwest 0.12.24",
"opentelemetry-proto",
"opentelemetry_sdk",
"prost 0.14.1",
"reqwest 0.13.4",
"thiserror 2.0.17",
"tokio",
"tonic 0.13.1",
"tracing",
"tonic 0.14.2",
"tonic-types",
]
[[package]]
name = "opentelemetry-proto"
version = "0.30.0"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc"
dependencies = [
"opentelemetry 0.30.0",
"opentelemetry_sdk 0.30.0",
"prost 0.13.5",
"tonic 0.13.1",
]
[[package]]
name = "opentelemetry-proto"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f"
checksum = "56d658ba1faf63f7b9c492cfbe6e0ec365440a16132d3270c1065f7b33f1b638"
dependencies = [
"base64 0.22.1",
"const-hex",
"opentelemetry 0.31.0",
"opentelemetry_sdk 0.31.0",
"opentelemetry",
"opentelemetry_sdk",
"prost 0.14.1",
"serde",
"serde_json",
"tonic 0.14.2",
"tonic-prost",
]
@@ -9896,37 +9869,22 @@ checksum = "e62e29dfe041afb8ed2a6c9737ab57db4907285d999ef8ad3a59092a36bdc846"
[[package]]
name = "opentelemetry_sdk"
version = "0.30.0"
version = "0.32.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b"
checksum = "9b59f80e1ac4d5ff7a2db8fb6c80badb7f0f3f858211fba08dd9aaec750894f9"
dependencies = [
"futures-channel",
"futures-executor",
"futures-util",
"opentelemetry 0.30.0",
"opentelemetry",
"percent-encoding",
"portable-atomic",
"rand 0.9.4",
"serde_json",
"thiserror 2.0.17",
"tokio",
"tokio-stream",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd"
dependencies = [
"futures-channel",
"futures-executor",
"futures-util",
"opentelemetry 0.31.0",
"percent-encoding",
"rand 0.9.4",
"thiserror 2.0.17",
]
[[package]]
name = "operator"
version = "1.3.0"
@@ -11287,7 +11245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1"
dependencies = [
"heck 0.5.0",
"itertools 0.11.0",
"itertools 0.14.0",
"log",
"multimap",
"once_cell",
@@ -11335,7 +11293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d"
dependencies = [
"anyhow",
"itertools 0.11.0",
"itertools 0.14.0",
"proc-macro2",
"quote",
"syn 2.0.117",
@@ -11348,7 +11306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425"
dependencies = [
"anyhow",
"itertools 0.11.0",
"itertools 0.14.0",
"proc-macro2",
"quote",
"syn 2.0.117",
@@ -12247,7 +12205,6 @@ checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f"
dependencies = [
"base64 0.22.1",
"bytes",
"futures-channel",
"futures-core",
"futures-util",
"h2 0.4.11",
@@ -12291,6 +12248,7 @@ checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3"
dependencies = [
"base64 0.22.1",
"bytes",
"futures-channel",
"futures-core",
"futures-util",
"http 1.3.1",
@@ -13349,7 +13307,7 @@ dependencies = [
"once_cell",
"openmetrics-parser",
"opensrv-mysql",
"opentelemetry-proto 0.31.0",
"opentelemetry-proto",
"operator",
"otel-arrow-rust",
"parking_lot 0.12.4",
@@ -14857,7 +14815,7 @@ dependencies = [
"mito2",
"mysql_async",
"object-store",
"opentelemetry-proto 0.31.0",
"opentelemetry-proto",
"operator",
"otel-arrow-rust",
"partition",
@@ -15318,32 +15276,6 @@ dependencies = [
"tracing",
]
[[package]]
name = "tonic"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9"
dependencies = [
"async-trait",
"base64 0.22.1",
"bytes",
"http 1.3.1",
"http-body 1.0.1",
"http-body-util",
"hyper 1.6.0",
"hyper-timeout 0.5.2",
"hyper-util",
"percent-encoding",
"pin-project",
"prost 0.13.5",
"tokio",
"tokio-stream",
"tower 0.5.2",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
name = "tonic"
version = "0.14.2"
@@ -15430,6 +15362,17 @@ dependencies = [
"tonic-prost",
]
[[package]]
name = "tonic-types"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a875a902255423d34c1f20838ab374126db8eb41625b7947a1d54113b0b7399"
dependencies = [
"prost 0.14.1",
"prost-types 0.14.1",
"tonic 0.14.2",
]
[[package]]
name = "tonic-web"
version = "0.14.5"
@@ -15552,9 +15495,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
version = "0.1.41"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
dependencies = [
"log",
"pin-project-lite",
@@ -15576,9 +15519,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
version = "0.1.28"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
@@ -15587,9 +15530,9 @@ dependencies = [
[[package]]
name = "tracing-core"
version = "0.1.34"
version = "0.1.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
dependencies = [
"once_cell",
"valuable",
@@ -15608,14 +15551,12 @@ dependencies = [
[[package]]
name = "tracing-opentelemetry"
version = "0.31.0"
version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c"
checksum = "adbc64cba7137545b8044cb1fe9814f7aacf3c6b5f9b45be8bb5db538befdb26"
dependencies = [
"js-sys",
"once_cell",
"opentelemetry 0.30.0",
"opentelemetry_sdk 0.30.0",
"opentelemetry",
"smallvec",
"tracing",
"tracing-core",
@@ -15636,9 +15577,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
version = "0.3.20"
version = "0.3.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319"
dependencies = [
"matchers",
"nu-ansi-term",
@@ -16462,7 +16403,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
"windows-sys 0.48.0",
"windows-sys 0.59.0",
]
[[package]]
+2 -2
View File
@@ -182,7 +182,7 @@ notify = "8.0"
num_cpus = "1.16"
object_store_opendal = "0.57"
once_cell = "1.18"
opentelemetry-proto = { version = "0.31", features = [
opentelemetry-proto = { version = "0.32", features = [
"gen-tonic",
"metrics",
"trace",
@@ -260,7 +260,7 @@ tower = "0.5"
tower-http = "0.6"
tracing = "0.1"
tracing-appender = "0.2"
tracing-opentelemetry = "0.31.0"
tracing-opentelemetry = "0.33.0"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "fmt"] }
typetag = "0.2"
uuid = { version = "1.17", features = ["serde", "v4", "v7", "fast-rng"] }
+3 -3
View File
@@ -21,12 +21,12 @@ greptime-proto.workspace = true
humantime-serde.workspace = true
lazy_static.workspace = true
once_cell.workspace = true
opentelemetry = { version = "0.30.0", default-features = false, features = [
opentelemetry = { version = "0.32.0", default-features = false, features = [
"trace",
] }
opentelemetry-otlp = { version = "0.30.0", features = ["trace", "grpc-tonic", "http-proto"] }
opentelemetry-otlp = { version = "0.32.0", features = ["trace", "grpc-tonic", "http-proto"] }
opentelemetry-semantic-conventions = { version = "0.30.0", features = ["semconv_experimental"] }
opentelemetry_sdk = { version = "0.30.0", features = ["rt-tokio", "trace"] }
opentelemetry_sdk = { version = "0.32.1", features = ["rt-tokio", "trace"] }
parking_lot.workspace = true
prometheus.workspace = true
serde.workspace = true
+1 -1
View File
@@ -73,7 +73,7 @@ impl TracingContext {
/// Attach the given span as a child of the context. Returns the attached span.
pub fn attach(&self, span: tracing::Span) -> tracing::Span {
span.set_parent(self.0.clone());
let _ = span.set_parent(self.0.clone());
span
}
+2 -4
View File
@@ -15,10 +15,8 @@
use std::collections::HashSet;
use opentelemetry::KeyValue;
use opentelemetry::trace::{
Link, SamplingDecision, SamplingResult, SpanKind, TraceContextExt, TraceId, TraceState,
};
use opentelemetry_sdk::trace::{Sampler, ShouldSample};
use opentelemetry::trace::{Link, SpanKind, TraceContextExt, TraceId, TraceState};
use opentelemetry_sdk::trace::{Sampler, SamplingDecision, SamplingResult, ShouldSample};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
+1
View File
@@ -291,6 +291,7 @@ mod tests {
value: Some(AnyValue {
value: Some(any_value::Value::StringValue("frontend".to_string())),
}),
..Default::default()
}],
..Default::default()
}),
@@ -234,6 +234,7 @@ fn trace_attribute(key: &str, value: OtlpValue) -> KeyValue {
KeyValue {
key: key.to_string(),
value: Some(AnyValue { value: Some(value) }),
..Default::default()
}
}
+1 -1
View File
@@ -410,7 +410,7 @@ impl LocalGcWorker {
region_present = region.is_some()
)
)]
pub async fn do_region_gc(
pub(crate) async fn do_region_gc(
&self,
region_id: RegionId,
region: Option<MitoRegionRef>,
+12
View File
@@ -24,6 +24,7 @@ use api::v1::{
RowInsertRequest, Rows, SemanticType, Value as GreptimeValue,
};
use bytes::Bytes;
use common_telemetry::warn;
use common_time::Timestamp;
use common_time::timestamp::TimeUnit;
use jsonb::{Number as JsonbNumber, Value as JsonbValue};
@@ -1031,6 +1032,16 @@ fn any_value_to_vrl_value(value: any_value::Value) -> VrlValue {
VrlValue::Object(key_value_to_map(key_value_list.values))
}
any_value::Value::BytesValue(items) => VrlValue::Bytes(Bytes::from(items)),
// `StringValueStrindex` references the Profiling signal's
// `ProfilesDictionary.string_table`, which is unavailable to logs/traces.
// Per the OTLP spec, non-Profiling receivers must treat it as a non-fatal
// issue and process the value as if it were absent.
any_value::Value::StringValueStrindex(_) => {
warn!(
"encountered a profiling-only `StringValueStrindex` value in a non-profiling signal; ignoring"
);
VrlValue::Null
}
}
}
@@ -1082,6 +1093,7 @@ mod tests {
KeyValue {
key: key.to_string(),
value: Some(AnyValue { value: Some(value) }),
..Default::default()
}
}
+12
View File
@@ -16,6 +16,7 @@ use std::fmt::Display;
use opentelemetry_proto::tonic::common::v1::any_value::Value::{
ArrayValue, BoolValue, BytesValue, DoubleValue, IntValue, KvlistValue, StringValue,
StringValueStrindex,
};
use opentelemetry_proto::tonic::common::v1::{AnyValue, KeyValue};
use serde::Serialize;
@@ -78,6 +79,11 @@ impl Serialize for OtlpAnyValue<'_> {
map.end()
}
BytesValue(v) => zer.serialize_bytes(v),
// `StringValueStrindex` is profiling-signal-only and references the
// Profiling `ProfilesDictionary.string_table`, which is unavailable
// here. Per the OTLP spec, non-Profiling receivers must treat it as
// a non-fatal issue and process the value as if it were absent.
StringValueStrindex(_) => zer.serialize_none(),
},
None => zer.serialize_none(),
}
@@ -293,6 +299,7 @@ mod tests {
vec![KeyValue {
key: "key1".into(),
value: None,
..Default::default()
}],
),
(
@@ -300,6 +307,7 @@ mod tests {
vec![KeyValue {
key: "key1".into(),
value: Some(AnyValue { value: None }),
..Default::default()
}],
),
(
@@ -309,6 +317,7 @@ mod tests {
value: Some(AnyValue {
value: Some(Value::StringValue(String::from("val1"))),
}),
..Default::default()
}],
),
];
@@ -331,6 +340,7 @@ mod tests {
vec![KeyValue {
key: "key1".into(),
value: None,
..Default::default()
}],
),
(
@@ -338,6 +348,7 @@ mod tests {
vec![KeyValue {
key: "key1".into(),
value: Some(AnyValue { value: None }),
..Default::default()
}],
),
(
@@ -347,6 +358,7 @@ mod tests {
value: Some(AnyValue {
value: Some(Value::StringValue(String::from("val1"))),
}),
..Default::default()
}],
),
];
+1
View File
@@ -319,6 +319,7 @@ mod tests {
value: Some(AnyValue {
value: Some(any_value::Value::StringValue(value.to_string())),
}),
..Default::default()
}
}
+7
View File
@@ -633,6 +633,12 @@ fn write_attributes_with_schema(
row,
);
}
// `StringValueStrindex` is profiling-signal-only and references the
// Profiling `ProfilesDictionary.string_table`, which is unavailable to
// traces. Per the OTLP spec, non-Profiling receivers must treat it as a
// non-fatal issue and process the value as if it were absent. Like the
// `None` arm, no field is written for the attribute.
Some(OtlpValue::StringValueStrindex(_)) => {}
None => {}
}
}
@@ -656,6 +662,7 @@ mod tests {
KeyValue {
key: key.to_string(),
value: Some(AnyValue { value: Some(value) }),
..Default::default()
}
}
+11
View File
@@ -14,6 +14,7 @@
use api::v1::ColumnDataType;
use api::v1::value::ValueData;
use common_telemetry::warn;
use jsonb::{Number as JsonbNumber, Value as JsonbValue};
use opentelemetry_proto::tonic::common::v1::{KeyValue, any_value};
@@ -40,6 +41,16 @@ pub fn any_value_to_jsonb(value: any_value::Value) -> JsonbValue<'static> {
}
any_value::Value::KvlistValue(kv) => key_value_to_jsonb(kv.values),
any_value::Value::BytesValue(b) => JsonbValue::String(bytes_to_hex_string(&b).into()),
// `StringValueStrindex` references the Profiling signal's
// `ProfilesDictionary.string_table`, which is unavailable to logs/traces.
// Per the OTLP spec, non-Profiling receivers must treat it as a non-fatal
// issue and process the value as if it were absent.
any_value::Value::StringValueStrindex(_) => {
warn!(
"encountered a profiling-only `StringValueStrindex` value in a non-profiling signal; ignoring"
);
JsonbValue::Null
}
}
}