Skip to content

Commit 6f8aecd

Browse files
committed
feat: OpenTelemetry context activation POC
Right now this is completely focused on the Spans but there could be a feature that only propagates the context as well.
1 parent 85e28ac commit 6f8aecd

File tree

6 files changed

+580
-360
lines changed

6 files changed

+580
-360
lines changed

Cargo.toml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@ edition = "2021"
1616
rust-version = "1.75.0"
1717

1818
[features]
19-
default = ["tracing-log", "metrics"]
19+
default = ["tracing-log", "metrics", "activate_context"]
2020
# Enables support for exporting OpenTelemetry metrics
2121
metrics = ["opentelemetry/metrics","opentelemetry_sdk/metrics", "smallvec"]
2222
# Enables experimental support for OpenTelemetry gauge metrics
2323
metrics_gauge_unstable = []
24+
# Enables support for activating an OpenTelemetry Context on Span entry
25+
activate_context = []
2426

2527
[dependencies]
26-
opentelemetry = { version = "0.29.0", default-features = false, features = ["trace"] }
27-
opentelemetry_sdk = { version = "0.29.0", default-features = false, features = ["trace"] }
28+
opentelemetry = { version = "=0.29.0", default-features = false, features = ["trace"] }
29+
opentelemetry_sdk = { version = "=0.29.0", default-features = false, features = ["trace"] }
2830
tracing = { version = "0.1.35", default-features = false, features = ["std"] }
2931
tracing-core = "0.1.28"
3032
tracing-subscriber = { version = "0.3.0", default-features = false, features = ["registry", "std"] }
@@ -43,18 +45,25 @@ smallvec = { version = "1.0", optional = true }
4345
[dev-dependencies]
4446
async-trait = "0.1.56"
4547
criterion = { version = "0.5.1", default-features = false, features = ["html_reports"] }
46-
opentelemetry = { version = "0.29.0", features = ["trace", "metrics"] }
47-
opentelemetry_sdk = { version = "0.29.0", default-features = false, features = ["trace", "rt-tokio"] }
48-
opentelemetry-stdout = { version = "0.29.0", features = ["trace", "metrics"] }
49-
opentelemetry-otlp = { version = "0.29.0", features = ["metrics", "grpc-tonic"] }
50-
opentelemetry-semantic-conventions = { version = "0.29.0", features = ["semconv_experimental"] }
48+
opentelemetry = { version = "=0.29.0", features = ["trace", "metrics"] }
49+
opentelemetry_sdk = { version = "=0.29.0", default-features = false, features = ["trace", "rt-tokio", "testing"] }
50+
opentelemetry-stdout = { version = "=0.29.0", features = ["trace", "metrics"] }
51+
opentelemetry-otlp = { version = "=0.29.0", features = ["metrics", "grpc-tonic"] }
52+
opentelemetry-semantic-conventions = { version = "=0.29.0", features = ["semconv_experimental"] }
5153
futures-util = { version = "0.3.17", default-features = false }
5254
tokio = { version = "1", features = ["full"] }
5355
tokio-stream = "0.1"
5456
tracing = { version = "0.1.35", default-features = false, features = ["std", "attributes"] }
5557
tracing-error = "0.2.0"
5658
tracing-subscriber = { version = "0.3.0", default-features = false, features = ["registry", "std", "fmt"] }
5759

60+
[patch.crates-io]
61+
opentelemetry = { git = 'https://github.com/bantonsson/opentelemetry-rust.git', branch = 'ban/tracing-opentelemetry-base' }
62+
opentelemetry_sdk = { git = 'https://github.com/bantonsson/opentelemetry-rust.git', branch = 'ban/tracing-opentelemetry-base' }
63+
opentelemetry-stdout = { git = 'https://github.com/bantonsson/opentelemetry-rust.git', branch = 'ban/tracing-opentelemetry-base' }
64+
opentelemetry-otlp = { git = 'https://github.com/bantonsson/opentelemetry-rust.git', branch = 'ban/tracing-opentelemetry-base' }
65+
opentelemetry-semantic-conventions = { git = 'https://github.com/bantonsson/opentelemetry-rust.git', branch = 'ban/tracing-opentelemetry-base' }
66+
5867
[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
5968
pprof = { version = "0.14.0", features = ["flamegraph", "criterion"] }
6069

0 commit comments

Comments
 (0)