diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 7fd1c2134ae..455d5a74f75 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -170,7 +170,7 @@ jobs:
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run metrics tests
run: |
- cargo test --locked -p linera-base --features metrics,opentelemetry
+ cargo test --locked -p linera-base --features metrics
wasm-application-test:
needs: changed-files
diff --git a/Cargo.lock b/Cargo.lock
index 4986908b339..007bbeb6df2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5097,14 +5097,10 @@ dependencies = [
"futures",
"getrandom 0.2.16",
"hex",
- "is-terminal",
"k256",
"linera-base",
"linera-kywasmtime",
"linera-witty",
- "opentelemetry",
- "opentelemetry-otlp",
- "opentelemetry_sdk",
"port-selector",
"prometheus",
"proptest",
@@ -5124,9 +5120,6 @@ dependencies = [
"tokio-stream",
"tokio-util",
"tracing",
- "tracing-chrome",
- "tracing-opentelemetry",
- "tracing-subscriber 0.3.19",
"tracing-web",
"trait-variant",
"wasm-bindgen",
@@ -5707,6 +5700,7 @@ dependencies = [
"heck 0.4.1",
"http 1.3.1",
"insta",
+ "is-terminal",
"k8s-openapi",
"kube",
"linera-base",
@@ -5730,6 +5724,9 @@ dependencies = [
"mini-moka",
"native-fungible",
"non-fungible",
+ "opentelemetry",
+ "opentelemetry-otlp",
+ "opentelemetry_sdk",
"papaya",
"pathdiff",
"port-selector",
@@ -5763,6 +5760,8 @@ dependencies = [
"tower 0.4.13",
"tower-http 0.6.6",
"tracing",
+ "tracing-chrome",
+ "tracing-opentelemetry",
"tracing-subscriber 0.3.19",
]
@@ -5855,12 +5854,12 @@ dependencies = [
"clap",
"git2",
"humantime",
- "linera-base",
"linera-version",
"octocrab",
"serde",
"tokio",
"tracing",
+ "tracing-subscriber 0.3.19",
]
[[package]]
@@ -6104,6 +6103,8 @@ dependencies = [
"serde-wasm-bindgen 0.6.5",
"tokio-util",
"tracing",
+ "tracing-subscriber 0.3.19",
+ "tracing-web",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 556b1ba5214..f0fec8a77de 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -25,7 +25,7 @@ ARG binaries=
ARG copy=${binaries:+_copy}
ARG build_flag=--release
ARG build_folder=release
-ARG build_features=scylladb,metrics,memory-profiling,opentelemetry
+ARG build_features=scylladb,metrics,memory-profiling
ARG rustflags="-C force-frame-pointers=yes"
FROM rust:1.74-slim-bookworm AS builder
diff --git a/examples/Cargo.lock b/examples/Cargo.lock
index 0a51cb035df..c56fa421adc 100644
--- a/examples/Cargo.lock
+++ b/examples/Cargo.lock
@@ -2987,12 +2987,6 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
-[[package]]
-name = "hermit-abi"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
-
[[package]]
name = "hex"
version = "0.4.3"
@@ -3452,17 +3446,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "is-terminal"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
-dependencies = [
- "hermit-abi 0.4.0",
- "libc",
- "windows-sys 0.52.0",
-]
-
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@@ -3605,11 +3588,8 @@ dependencies = [
"ed25519-dalek",
"futures",
"hex",
- "is-terminal",
"k256",
"linera-witty",
- "opentelemetry",
- "opentelemetry_sdk",
"port-selector",
"prometheus",
"proptest",
@@ -3627,9 +3607,6 @@ dependencies = [
"tokio-stream",
"tokio-util",
"tracing",
- "tracing-chrome",
- "tracing-opentelemetry",
- "tracing-subscriber",
"trait-variant",
"zstd",
]
@@ -4284,7 +4261,7 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
- "hermit-abi 0.3.9",
+ "hermit-abi",
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.52.0",
@@ -4386,16 +4363,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
[[package]]
name = "num-bigint"
version = "0.4.6"
@@ -4447,7 +4414,7 @@ version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
- "hermit-abi 0.3.9",
+ "hermit-abi",
"libc",
]
@@ -4505,44 +4472,6 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e296cf87e61c9cfc1a61c3c63a0f7f286ed4554e0e22be84e8a38e1d264a2a29"
-[[package]]
-name = "opentelemetry"
-version = "0.30.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.9",
- "tracing",
-]
-
-[[package]]
-name = "opentelemetry_sdk"
-version = "0.30.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b"
-dependencies = [
- "futures-channel",
- "futures-executor",
- "futures-util",
- "opentelemetry",
- "percent-encoding",
- "rand 0.9.0",
- "serde_json",
- "thiserror 2.0.9",
- "tokio",
- "tokio-stream",
-]
-
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
[[package]]
name = "papaya"
version = "0.1.9"
@@ -6630,17 +6559,6 @@ dependencies = [
"syn 2.0.100",
]
-[[package]]
-name = "tracing-chrome"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724"
-dependencies = [
- "serde_json",
- "tracing-core",
- "tracing-subscriber",
-]
-
[[package]]
name = "tracing-core"
version = "0.1.32"
@@ -6648,7 +6566,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
"once_cell",
- "valuable",
]
[[package]]
@@ -6663,45 +6580,6 @@ dependencies = [
"tracing",
]
-[[package]]
-name = "tracing-log"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
-dependencies = [
- "log",
- "once_cell",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-opentelemetry"
-version = "0.31.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c"
-dependencies = [
- "js-sys",
- "once_cell",
- "opentelemetry",
- "opentelemetry_sdk",
- "smallvec",
- "tracing",
- "tracing-core",
- "tracing-log",
- "tracing-subscriber",
- "web-time",
-]
-
-[[package]]
-name = "tracing-serde"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
-dependencies = [
- "serde",
- "tracing-core",
-]
-
[[package]]
name = "tracing-subscriber"
version = "0.3.18"
@@ -6709,18 +6587,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [
"matchers",
- "nu-ansi-term",
"once_cell",
"regex",
- "serde",
- "serde_json",
"sharded-slab",
- "smallvec",
"thread_local",
"tracing",
"tracing-core",
- "tracing-log",
- "tracing-serde",
]
[[package]]
@@ -7104,16 +6976,6 @@ dependencies = [
"wasm-bindgen",
]
-[[package]]
-name = "web-time"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
[[package]]
name = "webpki-roots"
version = "0.25.4"
diff --git a/linera-base/Cargo.toml b/linera-base/Cargo.toml
index 00bb6bb9e5e..957ab27b707 100644
--- a/linera-base/Cargo.toml
+++ b/linera-base/Cargo.toml
@@ -18,7 +18,6 @@ workspace = true
metrics = ["prometheus"]
reqwest = ["dep:reqwest"]
revm = []
-opentelemetry = ["opentelemetry-otlp"]
test = ["test-strategy", "proptest"]
web = [
"getrandom/js",
@@ -49,7 +48,6 @@ ed25519-dalek.workspace = true
futures.workspace = true
getrandom = { workspace = true, optional = true }
hex.workspace = true
-is-terminal.workspace = true
k256.workspace = true
linera-kywasmtime = { workspace = true, optional = true }
linera-witty = { workspace = true, features = ["macros"] }
@@ -67,7 +65,6 @@ thiserror.workspace = true
tokio = { workspace = true, features = ["time"] }
tokio-stream.workspace = true
tracing.workspace = true
-tracing-subscriber = { workspace = true, features = ["json", "fmt", "ansi"] }
trait-variant.workspace = true
wasm-bindgen = { workspace = true, optional = true }
wasm-bindgen-futures = { workspace = true, optional = true }
@@ -81,11 +78,6 @@ tracing-web = { optional = true, workspace = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
chrono.workspace = true
-opentelemetry.workspace = true
-opentelemetry-otlp = { workspace = true, optional = true }
-opentelemetry_sdk = { workspace = true, features = ["testing"] }
-tracing-chrome.workspace = true
-tracing-opentelemetry.workspace = true
rand = { workspace = true, features = ["getrandom", "std", "std_rng"] }
tokio = { workspace = true, features = [
"process",
diff --git a/linera-base/src/lib.rs b/linera-base/src/lib.rs
index 39546ba23df..6e889eafada 100644
--- a/linera-base/src/lib.rs
+++ b/linera-base/src/lib.rs
@@ -38,10 +38,6 @@ pub mod vm;
#[cfg(not(chain))]
pub use task::Blocking;
pub mod time;
-#[cfg_attr(web, path = "tracing_web.rs")]
-pub mod tracing;
-#[cfg(not(target_arch = "wasm32"))]
-pub mod tracing_opentelemetry;
#[cfg(test)]
mod unit_tests;
diff --git a/linera-base/src/tracing_web.rs b/linera-base/src/tracing_web.rs
deleted file mode 100644
index a0f5dc6729a..00000000000
--- a/linera-base/src/tracing_web.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) Zefchain Labs, Inc.
-// SPDX-License-Identifier: Apache-2.0
-
-//! This module provides unified handling for tracing subscribers within Linera binaries.
-
-use tracing_subscriber::{
- prelude::__tracing_subscriber_SubscriberExt as _, util::SubscriberInitExt as _,
-};
-
-/// Initializes tracing for the browser, sending messages to the developer console and
-/// span events to the [Performance
-/// API](https://developer.mozilla.org/en-US/docs/Web/API/Performance).
-pub fn init() {
- tracing_subscriber::registry()
- .with(
- tracing_subscriber::fmt::layer()
- .with_ansi(false)
- .without_time()
- .with_writer(tracing_web::MakeWebConsoleWriter::new()),
- )
- .with(
- tracing_web::performance_layer()
- .with_details_from_fields(tracing_subscriber::fmt::format::Pretty::default()),
- )
- .init();
-}
diff --git a/linera-sdk/tests/fixtures/Cargo.lock b/linera-sdk/tests/fixtures/Cargo.lock
index beba55492c7..21f8638a028 100644
--- a/linera-sdk/tests/fixtures/Cargo.lock
+++ b/linera-sdk/tests/fixtures/Cargo.lock
@@ -1682,12 +1682,6 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-[[package]]
-name = "hermit-abi"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
-
[[package]]
name = "hex"
version = "0.4.3"
@@ -2033,17 +2027,6 @@ version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
-[[package]]
-name = "is-terminal"
-version = "0.4.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.59.0",
-]
-
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@@ -2149,11 +2132,8 @@ dependencies = [
"ed25519-dalek",
"futures",
"hex",
- "is-terminal",
"k256",
"linera-witty",
- "opentelemetry",
- "opentelemetry_sdk",
"port-selector",
"prometheus",
"proptest",
@@ -2171,9 +2151,6 @@ dependencies = [
"tokio-stream",
"tokio-util",
"tracing",
- "tracing-chrome",
- "tracing-opentelemetry",
- "tracing-subscriber",
"trait-variant",
"zstd",
]
@@ -2780,16 +2757,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
[[package]]
name = "num-conv"
version = "0.1.0"
@@ -2833,44 +2800,6 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ce411919553d3f9fa53a0880544cda985a112117a0444d5ff1e870a893d6ea"
-[[package]]
-name = "opentelemetry"
-version = "0.30.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.16",
- "tracing",
-]
-
-[[package]]
-name = "opentelemetry_sdk"
-version = "0.30.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b"
-dependencies = [
- "futures-channel",
- "futures-executor",
- "futures-util",
- "opentelemetry",
- "percent-encoding",
- "rand 0.9.2",
- "serde_json",
- "thiserror 2.0.16",
- "tokio",
- "tokio-stream",
-]
-
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
[[package]]
name = "papaya"
version = "0.1.9"
@@ -3283,7 +3212,6 @@ version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
dependencies = [
- "rand_chacha 0.9.0",
"rand_core 0.9.3",
"serde",
]
@@ -4550,17 +4478,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "tracing-chrome"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724"
-dependencies = [
- "serde_json",
- "tracing-core",
- "tracing-subscriber",
-]
-
[[package]]
name = "tracing-core"
version = "0.1.34"
@@ -4568,46 +4485,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
dependencies = [
"once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
-dependencies = [
- "log",
- "once_cell",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-opentelemetry"
-version = "0.31.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c"
-dependencies = [
- "js-sys",
- "once_cell",
- "opentelemetry",
- "opentelemetry_sdk",
- "smallvec",
- "tracing",
- "tracing-core",
- "tracing-log",
- "tracing-subscriber",
- "web-time",
-]
-
-[[package]]
-name = "tracing-serde"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1"
-dependencies = [
- "serde",
- "tracing-core",
]
[[package]]
@@ -4617,18 +4494,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
dependencies = [
"matchers",
- "nu-ansi-term",
"once_cell",
"regex",
- "serde",
- "serde_json",
"sharded-slab",
- "smallvec",
"thread_local",
"tracing",
"tracing-core",
- "tracing-log",
- "tracing-serde",
]
[[package]]
@@ -4962,16 +4833,6 @@ dependencies = [
"wasm-bindgen",
]
-[[package]]
-name = "web-time"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
[[package]]
name = "webpki-roots"
version = "0.25.4"
diff --git a/linera-service/Cargo.toml b/linera-service/Cargo.toml
index a0fa0c397e5..4e016bf0102 100644
--- a/linera-service/Cargo.toml
+++ b/linera-service/Cargo.toml
@@ -90,6 +90,7 @@ futures.workspace = true
heck.workspace = true
http.workspace = true
insta.workspace = true
+is-terminal.workspace = true
k8s-openapi = { workspace = true, optional = true }
kube = { workspace = true, optional = true }
linera-base.workspace = true
@@ -112,6 +113,9 @@ linera-storage-service = { workspace = true, optional = true }
linera-version.workspace = true
linera-views.workspace = true
mini-moka.workspace = true
+opentelemetry.workspace = true
+opentelemetry-otlp.workspace = true
+opentelemetry_sdk = { workspace = true, features = ["testing"] }
papaya.workspace = true
pathdiff = { workspace = true, optional = true }
port-selector.workspace = true
@@ -147,6 +151,9 @@ tonic-web.workspace = true
tower.workspace = true
tower-http = { workspace = true, features = ["cors"] }
tracing.workspace = true
+tracing-chrome.workspace = true
+tracing-opentelemetry.workspace = true
+tracing-subscriber = { workspace = true, features = ["json", "fmt", "ansi"] }
[build-dependencies]
cfg_aliases.workspace = true
diff --git a/linera-service/src/benchmark.rs b/linera-service/src/benchmark.rs
index 6684a363d87..f984d52db1c 100644
--- a/linera-service/src/benchmark.rs
+++ b/linera-service/src/benchmark.rs
@@ -55,7 +55,7 @@ enum Args {
#[tokio::main]
async fn main() -> Result<()> {
- linera_base::tracing::init("benchmark");
+ linera_service::tracing::init("benchmark");
let args = Args::parse();
match args {
diff --git a/linera-service/src/cli/main.rs b/linera-service/src/cli/main.rs
index 534ac12b946..a48f8341a4e 100644
--- a/linera-service/src/cli/main.rs
+++ b/linera-service/src/cli/main.rs
@@ -2137,9 +2137,9 @@ async fn kill_all_processes(pids: &[u32]) {
#[cfg(not(target_arch = "wasm32"))]
fn init_tracing(
options: &ClientOptions,
-) -> anyhow::Result