Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit e1e4dc8

Browse files
author
Alexandcoats
authored
feat(telemetry): add jaeger support (#575)
Add jaeger support
1 parent 3bc2a78 commit e1e4dc8

File tree

3 files changed

+133
-1
lines changed

3 files changed

+133
-1
lines changed

Cargo.lock

Lines changed: 99 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ tonic = { version = "0.8", default-features = false, optional = true }
7575
metrics = { version = "0.20.0", default-features = false }
7676
metrics-exporter-prometheus = { version = "0.11.0", default-features = false, features = [ "http-listener", "tokio" ] }
7777
metrics-util = { version = "0.14.0", default-features = false }
78+
opentelemetry = { version = "0.17", default-features = false, features = ["trace", "rt-tokio"], optional = true }
79+
opentelemetry-jaeger = { version = "0.16", default-features = false, features = ["rt-tokio"], optional = true }
80+
tracing-opentelemetry = { version = "0.17", default-features = false, features = ["tracing-log"], optional = true }
7881

7982
# Stardust types
8083
bee-api-types-stardust = { package = "bee-api-types", version = "1.0.0-beta.7", default-features = false, features = ["axum"], optional = true }
@@ -118,7 +121,12 @@ inx = [
118121
"dep:bee-inx",
119122
"dep:tonic",
120123
]
121-
stardust = [
124+
opentelemetry = [
125+
"dep:opentelemetry",
126+
"dep:opentelemetry-jaeger",
127+
"dep:tracing-opentelemetry",
128+
]
129+
stardust = [
122130
"dep:bee-block-stardust",
123131
"dep:bee-api-types-stardust",
124132
]

src/bin/inx-chronicle/main.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,31 @@ async fn main() {
3737
}
3838

3939
fn set_up_logging() {
40+
#[cfg(feature = "opentelemetry")]
41+
{
42+
use tracing_subscriber::prelude::*;
43+
44+
let tracer = opentelemetry_jaeger::new_pipeline()
45+
.with_service_name("Chronicle")
46+
.install_batch(opentelemetry::runtime::Tokio)
47+
.unwrap();
48+
49+
let opentelemetry = tracing_opentelemetry::layer().with_tracer(tracer);
50+
51+
tracing_subscriber::registry()
52+
.with(opentelemetry)
53+
// This filter should not exist, but if I remove it,
54+
// it causes the buffer to overflow
55+
.with(EnvFilter::from_default_env())
56+
.with(
57+
tracing_subscriber::fmt::layer()
58+
.with_span_events(FmtSpan::CLOSE)
59+
// The filter should only be on the console logs
60+
//.with_filter(EnvFilter::from_default_env()),
61+
)
62+
.init();
63+
}
64+
#[cfg(not(feature = "opentelemetry"))]
4065
tracing_subscriber::fmt()
4166
.with_span_events(FmtSpan::CLOSE)
4267
.with_env_filter(EnvFilter::from_default_env())

0 commit comments

Comments
 (0)