This commit is contained in:
Mark Sinclair
2025-08-01 12:58:52 +01:00
parent 18f7ba92bb
commit fc76c2d7a0
9 changed files with 116 additions and 92 deletions
Generated
+42 -73
View File
@@ -5171,13 +5171,13 @@ dependencies = [
"clap_complete_fig",
"const-str",
"log",
"opentelemetry 0.19.0",
"opentelemetry 0.30.0",
"opentelemetry-jaeger",
"schemars 0.8.22",
"serde",
"serde_json",
"tracing",
"tracing-opentelemetry 0.19.0",
"tracing-opentelemetry",
"tracing-subscriber",
"tracing-tree",
"utoipa",
@@ -6015,6 +6015,7 @@ dependencies = [
"nym-validator-client 0.1.0",
"nym-wireguard",
"nym-wireguard-types 0.1.0",
"opentelemetry 0.30.0",
"rand 0.8.5",
"sha2 0.10.9",
"sqlx",
@@ -6025,6 +6026,7 @@ dependencies = [
"tokio-tungstenite",
"tokio-util",
"tracing",
"tracing-opentelemetry",
"url",
"zeroize",
]
@@ -6083,6 +6085,7 @@ dependencies = [
"nym-sphinx 0.1.0",
"nym-statistics-common 0.1.0",
"nym-task 0.1.0",
"opentelemetry 0.30.0",
"rand 0.8.5",
"serde",
"serde_json",
@@ -7091,10 +7094,9 @@ dependencies = [
"tokio-stream",
"tokio-util",
"toml 0.8.23",
"tonic 0.13.1",
"tracing",
"tracing-core",
"tracing-opentelemetry 0.31.0",
"tracing-opentelemetry",
"tracing-subscriber",
"url",
"uuid",
@@ -8256,12 +8258,16 @@ dependencies = [
[[package]]
name = "opentelemetry"
version = "0.19.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f4b8347cc26099d3aeee044065ecc3ae11469796b4d65d065a23a584ed92a6f"
checksum = "1b69a91d4893e713e06f724597ad630f1fa76057a5e1026c0ca67054a9032a76"
dependencies = [
"opentelemetry_api",
"opentelemetry_sdk 0.19.0",
"futures-core",
"futures-sink",
"js-sys",
"once_cell",
"pin-project-lite",
"thiserror 1.0.69",
]
[[package]]
@@ -8280,15 +8286,15 @@ dependencies = [
[[package]]
name = "opentelemetry-http"
version = "0.8.0"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a819b71d6530c4297b49b3cae2939ab3a8cc1b9f382826a1bc29dd0ca3864906"
checksum = "b0ba633e55c5ea6f431875ba55e71664f2fa5d3a90bd34ec9302eecc41c865dd"
dependencies = [
"async-trait",
"bytes",
"http 0.2.12",
"isahc",
"opentelemetry_api",
"opentelemetry 0.23.0",
]
[[package]]
@@ -8306,20 +8312,19 @@ dependencies = [
[[package]]
name = "opentelemetry-jaeger"
version = "0.18.0"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08e028dc9f4f304e9320ce38c80e7cf74067415b1ad5a8750a38bae54a4d450d"
checksum = "501b471b67b746d9a07d4c29f8be00f952d1a2eca356922ede0098cbaddff19f"
dependencies = [
"async-trait",
"futures",
"futures-executor",
"futures-core",
"futures-util",
"http 0.2.12",
"isahc",
"once_cell",
"opentelemetry 0.19.0",
"opentelemetry-http 0.8.0",
"opentelemetry-semantic-conventions 0.11.0",
"thiserror 1.0.69",
"opentelemetry 0.23.0",
"opentelemetry-http 0.12.0",
"opentelemetry-semantic-conventions 0.15.0",
"opentelemetry_sdk 0.23.0",
"thrift",
"tokio",
]
@@ -8357,12 +8362,9 @@ dependencies = [
[[package]]
name = "opentelemetry-semantic-conventions"
version = "0.11.0"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24e33428e6bf08c6f7fcea4ddb8e358fab0fe48ab877a87c70c6ebe20f673ce5"
dependencies = [
"opentelemetry 0.19.0",
]
checksum = "1869fb4bb9b35c5ba8a1e40c9b128a7b4c010d07091e864a29da19e4fe2ca4d7"
[[package]]
name = "opentelemetry-semantic-conventions"
@@ -8381,42 +8383,23 @@ dependencies = [
"opentelemetry_sdk 0.30.0",
]
[[package]]
name = "opentelemetry_api"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed41783a5bf567688eb38372f2b7a8530f5a607a4b49d38dd7573236c23ca7e2"
dependencies = [
"fnv",
"futures-channel",
"futures-util",
"indexmap 1.9.3",
"once_cell",
"pin-project-lite",
"thiserror 1.0.69",
"urlencoding",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.19.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b3a2a91fdbfdd4d212c0dcc2ab540de2c2bcbbd90be17de7a7daf8822d010c1"
checksum = "ae312d58eaa90a82d2e627fd86e075cf5230b3f11794e2ed74199ebbe572d4fd"
dependencies = [
"async-trait",
"crossbeam-channel",
"dashmap",
"fnv",
"futures-channel",
"futures-executor",
"futures-util",
"lazy_static",
"once_cell",
"opentelemetry_api",
"opentelemetry 0.23.0",
"ordered-float 4.6.0",
"percent-encoding",
"rand 0.8.5",
"thiserror 1.0.69",
"tokio",
"tokio-stream",
]
[[package]]
@@ -8450,6 +8433,15 @@ dependencies = [
"num-traits",
]
[[package]]
name = "ordered-float"
version = "4.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
dependencies = [
"num-traits",
]
[[package]]
name = "overload"
version = "0.1.1"
@@ -11145,7 +11137,7 @@ dependencies = [
"byteorder",
"integer-encoding",
"log",
"ordered-float",
"ordered-float 2.10.1",
"threadpool",
]
@@ -11470,10 +11462,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9"
dependencies = [
"async-trait",
"axum 0.8.4",
"base64 0.22.1",
"bytes",
"h2 0.4.11",
"http 1.3.1",
"http-body 1.0.1",
"http-body-util",
@@ -11483,7 +11473,6 @@ dependencies = [
"percent-encoding",
"pin-project",
"prost 0.13.5",
"socket2",
"tokio",
"tokio-rustls 0.26.2",
"tokio-stream",
@@ -11667,20 +11656,6 @@ dependencies = [
"tracing-core",
]
[[package]]
name = "tracing-opentelemetry"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00a39dcf9bfc1742fa4d6215253b33a6e474be78275884c216fc2a06267b3600"
dependencies = [
"once_cell",
"opentelemetry 0.19.0",
"tracing",
"tracing-core",
"tracing-log 0.1.4",
"tracing-subscriber",
]
[[package]]
name = "tracing-opentelemetry"
version = "0.31.0"
@@ -12112,12 +12087,6 @@ dependencies = [
"serde",
]
[[package]]
name = "urlencoding"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
[[package]]
name = "utf-8"
version = "0.7.6"
+8 -3
View File
@@ -281,8 +281,12 @@ nix = "0.27.1"
notify = "5.1.0"
okapi = "0.7.0"
once_cell = "1.21.3"
opentelemetry = "0.19.0"
opentelemetry-jaeger = "0.18.0"
opentelemetry = "0.30.0"
opentelemetry-otlp = "0.30.0"
opentelemetry-semantic-conventions = "0.30.0"
opentelemetry_sdk = "0.30.0"
opentelemetry-stdout = "0.30.0"
opentelemetry-jaeger = "0.22.0"
parking_lot = "0.12.3"
pem = "0.8"
petgraph = "0.6.5"
@@ -338,8 +342,9 @@ toml = "0.8.22"
tower = "0.5.2"
tower-http = "0.5.2"
tracing = "0.1.41"
tracing-core = "0.1.33"
tracing-log = "0.2"
tracing-opentelemetry = "0.19.0"
tracing-opentelemetry = "0.31.0"
tracing-subscriber = "0.3.19"
tracing-tree = "0.2.2"
tracing-indicatif = "0.3.9"
+2 -2
View File
@@ -21,10 +21,10 @@ serde_json = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, features = ["env-filter"], optional = true }
tracing-tree = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
opentelemetry-jaeger = { workspace = true, features = ["rt-tokio", "collector_client", "isahc_collector_client"], optional = true }
opentelemetry-jaeger = { workspace = true, features = ["tokio", "collector_client", "isahc_collector_client"], optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
utoipa = { workspace = true, optional = true }
opentelemetry = { workspace = true, features = ["rt-tokio"], optional = true }
opentelemetry = { workspace = true, optional = true }
[build-dependencies]
+4 -1
View File
@@ -19,7 +19,6 @@ serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
strum = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true, features = ["log"] }
time = { workspace = true }
subtle = { workspace = true }
zeroize = { workspace = true }
@@ -34,6 +33,9 @@ nym-task = { path = "../task" }
nym-credentials = { path = "../credentials" }
nym-credentials-interface = { path = "../credentials-interface" }
opentelemetry = { workspace = true, features = ["trace"] }
tracing = { workspace = true, features = ["std", "attributes", "tracing-attributes"] }
[target."cfg(not(target_arch = \"wasm32\"))".dependencies.tokio]
workspace = true
features = ["time"]
@@ -48,3 +50,4 @@ default-features = false
[dev-dependencies]
nym-compact-ecash = { path = "../nym_offline_compact_ecash" } # we need specific imports in tests
@@ -20,7 +20,7 @@ use rand::{thread_rng, CryptoRng, RngCore};
use std::any::{type_name, Any};
use std::str::FromStr;
use std::time::Duration;
use tracing::log::*;
use tracing::{error, trace};
use tungstenite::Message as WsMessage;
#[cfg(not(target_arch = "wasm32"))]
@@ -12,6 +12,7 @@ use nym_credentials_interface::CredentialSpendingData;
use nym_crypto::asymmetric::ed25519;
use nym_sphinx::DestinationAddressBytes;
use nym_statistics_common::types::SessionType;
use opentelemetry::trace::TraceContextExt;
use serde::{Deserialize, Serialize};
use std::str::FromStr;
use tungstenite::Message;
@@ -76,6 +77,11 @@ pub enum ClientControlRequest {
address: String,
enc_address: String,
iv: String,
/// this is a trace id that is used in testing and performance verification
/// in mainnet, this will always be set to None
#[serde(default)]
debug_trace_id: Option<String>,
},
AuthenticateV2(Box<AuthenticateRequest>),
@@ -127,11 +133,17 @@ impl ClientControlRequest {
let nonce = shared_key.random_nonce_or_iv();
let ciphertext = shared_key.encrypt_naive(address.as_bytes_ref(), Some(&nonce))?;
let otel_context = opentelemetry::Context::current();
let span = otel_context.span();
let context = span.span_context();
let trace_id = context.trace_id();
Ok(ClientControlRequest::Authenticate {
protocol_version,
address: address.as_base58_string(),
enc_address: bs58::encode(&ciphertext).into_string(),
iv: bs58::encode(&nonce).into_string(),
debug_trace_id: Some(trace_id.to_string()),
})
}
+5 -1
View File
@@ -40,7 +40,7 @@ tokio = { workspace = true, features = [
tokio-stream = { workspace = true, features = ["fs"] }
tokio-tungstenite = { workspace = true }
tokio-util = { workspace = true, features = ["codec"] }
tracing = { workspace = true }
#tracing = { workspace = true }
url = { workspace = true, features = ["serde"] }
zeroize = { workspace = true }
@@ -72,6 +72,10 @@ nym-wireguard = { path = "../common/wireguard" }
nym-wireguard-types = { path = "../common/wireguard-types", default-features = false }
defguard_wireguard_rs = { workspace = true }
opentelemetry = { workspace = true, features = ["trace"] }
tracing = { workspace = true, features = ["std", "attributes", "tracing-attributes"] }
tracing-opentelemetry = { workspace = true }
[build-dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
@@ -33,6 +33,7 @@ use nym_gateway_storage::traits::SharedKeyGatewayStorage;
use nym_node_metrics::events::MetricsEvent;
use nym_sphinx::DestinationAddressBytes;
use nym_task::TaskClient;
use opentelemetry::trace::TraceContextExt;
use rand::CryptoRng;
use std::net::SocketAddr;
use std::time::Duration;
@@ -41,7 +42,8 @@ use time::OffsetDateTime;
use tokio::io::{AsyncRead, AsyncWrite};
use tokio::time::timeout;
use tokio_tungstenite::tungstenite::{protocol::Message, Error as WsError};
use tracing::*;
use tracing::{debug, error, info, info_span, instrument, warn};
use tracing_opentelemetry::OpenTelemetrySpanExt;
#[derive(Debug, Error)]
pub(crate) enum InitialAuthenticationError {
@@ -861,7 +863,36 @@ impl<R, S> FreshHandler<R, S> {
address,
enc_address,
iv,
debug_trace_id,
} => {
if let Some(trace_id) = debug_trace_id {
let span = info_span!("authenticate_v1");
let _enter = span.enter();
// let otel_context = span.context();
// let otel_span = otel_context.span();
// let otel_span_context = otel_span.span_context();
//
// let trace_id = opentelemetry::trace::TraceId::from_hex(&trace_id).unwrap();
// let span_id = otel_span_context.span_id().clone();
//
// let span_context = opentelemetry::trace::SpanContext::new(
// trace_id,
// span_id,
// opentelemetry::trace::TraceFlags::SAMPLED,
// true, // is_remote
// Default::default(),
// );
//
// let new_context = opentelemetry::Context::try_into(span_context).unwrap();
//
// span.set_parent(new_context);
let mut cx = tracing::Span::current().context();
tracing::span::Span::current().set_parent(cx);
}
self.handle_legacy_authenticate(protocol_version, address, enc_address, iv)
.await
}
+10 -10
View File
@@ -74,13 +74,13 @@ serde = { workspace = true, features = ["derive"] }
#tracing-subscriber = { workspace = true, features = ["env-filter", "registry", "std"] }
dirs.workspace = true
opentelemetry = { version = "0.30.0", default-features = true }
opentelemetry_sdk = { version = "0.30.0", default-features = true }
tracing = { version = "0.1.35", default-features = false, features = ["std"] }
tracing-subscriber = { version = "0.3.0", default-features = false, features = ["registry", "std"] }
tracing-core = "0.1.28"
tonic = { version = "0.13.1", features = ["tls-webpki-roots"] }
tracing-opentelemetry = "0.31.0"
opentelemetry = { workspace = true }
opentelemetry_sdk = { workspace = true }
tracing = { workspace = true, features = ["std"] }
tracing-subscriber = { workspace = true, features = ["registry", "std"] }
tracing-core = { workspace = true }
tracing-opentelemetry = { workspace = true }
[dev-dependencies]
anyhow = { workspace = true }
@@ -91,10 +91,10 @@ tokio = { workspace = true, features = ["full"] }
time = { workspace = true }
nym-bin-common = { path = "../../../common/bin-common", features = ["basic_tracing"] }
opentelemetry-semantic-conventions = { version = "0.30.0", features = ["semconv_experimental"] }
opentelemetry-otlp = { version = "0.30.0", features = ["metrics", "grpc-tonic", "tls",
opentelemetry-semantic-conventions = { workspace = true, features = ["semconv_experimental"] }
opentelemetry-otlp = { workspace = true, features = ["metrics", "grpc-tonic", "tls",
"tls-webpki-roots", ] }
opentelemetry-stdout = { version = "0.30.0", features = ["trace", "metrics"] }
opentelemetry-stdout = { workspace = true, features = ["trace", "metrics"] }
# extra dependencies for libp2p examples
#libp2p = { git = "https://github.com/ChainSafe/rust-libp2p.git", rev = "e3440d25681df380c9f0f8cfdcfd5ecc0a4f2fb6", features = [ "identify", "macros", "ping", "tokio", "tcp", "dns", "websocket", "noise", "mplex", "yamux", "gossipsub" ]}