diff --git a/Cargo.lock b/Cargo.lock
index 48ce690..6b8b6db 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -164,7 +164,7 @@ dependencies = [
"log",
"parking",
"polling",
- "rustix 0.37.23",
+ "rustix 0.37.27",
"slab",
"socket2 0.4.9",
"waker-fn",
@@ -584,9 +584,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "concurrent-queue"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
dependencies = [
"crossbeam-utils",
]
@@ -684,7 +684,7 @@ dependencies = [
"criterion-plot",
"futures",
"is-terminal",
- "itertools",
+ "itertools 0.10.5",
"num-traits",
"once_cell",
"oorandom",
@@ -706,7 +706,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
dependencies = [
"cast",
- "itertools",
+ "itertools 0.10.5",
]
[[package]]
@@ -1509,6 +1509,15 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
version = "1.0.9"
@@ -2093,28 +2102,35 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "opentelemetry"
-version = "0.20.0"
+version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54"
+checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
dependencies = [
- "opentelemetry_api",
- "opentelemetry_sdk",
+ "futures-core",
+ "futures-sink",
+ "indexmap 2.0.0",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
]
[[package]]
name = "opentelemetry-datadog"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5f4ecf595095d3b641dd2761a0c3d1f175d3d6c28f38e65418d8004ea3255dd"
+checksum = "3e09667367cb509f10d7cf5960a83f9c4d96e93715f750b164b4b98d46c3cbf4"
dependencies = [
"futures-core",
"http",
- "indexmap 1.9.3",
- "itertools",
+ "indexmap 2.0.0",
+ "itertools 0.11.0",
"once_cell",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
"reqwest",
"rmp",
"thiserror",
@@ -2123,62 +2139,47 @@ dependencies = [
[[package]]
name = "opentelemetry-http"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7594ec0e11d8e33faf03530a4c49af7064ebba81c1480e01be67d90b356508b"
+checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
dependencies = [
"async-trait",
"bytes 1.5.0",
"http",
- "opentelemetry_api",
+ "opentelemetry",
"reqwest",
]
[[package]]
name = "opentelemetry-jaeger"
-version = "0.19.0"
+version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876958ba9084f390f913fcf04ddf7bbbb822898867bb0a51cc28f2b9e5c1b515"
+checksum = "e617c66fd588e40e0dbbd66932fdc87393095b125d4459b1a3a10feb1712f8a1"
dependencies = [
"async-trait",
"futures-core",
"futures-util",
"opentelemetry",
"opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
"thrift",
"tokio",
]
[[package]]
name = "opentelemetry-semantic-conventions"
-version = "0.12.0"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269"
+checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
dependencies = [
"opentelemetry",
]
-[[package]]
-name = "opentelemetry_api"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b"
-dependencies = [
- "futures-channel",
- "futures-util",
- "indexmap 1.9.3",
- "js-sys",
- "once_cell",
- "pin-project-lite",
- "thiserror",
- "urlencoding",
-]
-
[[package]]
name = "opentelemetry_sdk"
-version = "0.20.0"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026"
+checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5"
dependencies = [
"async-trait",
"crossbeam-channel",
@@ -2186,8 +2187,8 @@ dependencies = [
"futures-executor",
"futures-util",
"once_cell",
- "opentelemetry_api",
- "ordered-float 3.9.1",
+ "opentelemetry",
+ "ordered-float 4.1.1",
"percent-encoding",
"rand 0.8.5",
"thiserror",
@@ -2206,9 +2207,9 @@ dependencies = [
[[package]]
name = "ordered-float"
-version = "3.9.1"
+version = "4.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a54938017eacd63036332b4ae5c8a49fc8c0c1d6d629893057e4f13609edd06"
+checksum = "536900a8093134cf9ccf00a27deb3532421099e958d9dd431135d0c7543ca1e8"
dependencies = [
"num-traits",
]
@@ -2239,9 +2240,9 @@ dependencies = [
[[package]]
name = "parking"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
[[package]]
name = "parking_lot"
@@ -2449,7 +2450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32"
dependencies = [
"anyhow",
- "itertools",
+ "itertools 0.11.0",
"proc-macro2",
"quote",
"syn 2.0.37",
@@ -2769,9 +2770,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.37.23"
+version = "0.37.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
dependencies = [
"bitflags 1.3.2",
"errno",
@@ -3151,6 +3152,7 @@ dependencies = [
"opentelemetry",
"opentelemetry-datadog",
"opentelemetry-jaeger",
+ "opentelemetry_sdk",
"pprof",
"rand 0.8.5",
"serde",
@@ -3691,9 +3693,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
[[package]]
name = "walkdir"
diff --git a/Cargo.toml b/Cargo.toml
index 3cf5013..9d6c0fe 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -27,9 +27,11 @@ http = "0.2.8"
hyper = "0.14.23"
log = "0.4.17"
moka = { version = "0.11.0", features = ["future"] }
-opentelemetry = { version = "0.20.0", features = ["rt-tokio"] }
-opentelemetry-datadog = { version = "0.8.0", features = ["reqwest-client"] }
-opentelemetry-jaeger = { version = "0.19.0", features = ["rt-tokio"] }
+opentelemetry = { version = "0.21.0" }
+opentelemetry-datadog = { version = "0.9.0", features = ["reqwest-client"] }
+opentelemetry-jaeger = { version = "0.20.0", features = ["rt-tokio"] }
+opentelemetry_sdk = { version = "0.21.1", features = ["rt-tokio", "trace"] }
+
rand = "0.8.5"
serde = "1.0.152"
serde_json = "1.0.92"
diff --git a/config.yml b/config.yml
index eb1629f..3021803 100644
--- a/config.yml
+++ b/config.yml
@@ -1,4 +1,4 @@
-extensions:
+extensions:
client:
endpoints:
- wss://acala-rpc.dwellir.com
diff --git a/src/extensions/telemetry/mod.rs b/src/extensions/telemetry/mod.rs
index 5b425bf..4426deb 100644
--- a/src/extensions/telemetry/mod.rs
+++ b/src/extensions/telemetry/mod.rs
@@ -1,7 +1,8 @@
use std::env;
use async_trait::async_trait;
-use opentelemetry::{global, sdk::trace::Tracer, trace::TraceError};
+use opentelemetry::{global, trace::TraceError};
+use opentelemetry_sdk::trace::Tracer;
use serde::Deserialize;
use super::{Extension, ExtensionRegistry};
@@ -64,7 +65,7 @@ pub fn setup_telemetry(options: &TelemetryConfig) -> Result