Skip to content

Commit c3ae58b

Browse files
committed
try DatadogPropagator
1 parent 2aad6f2 commit c3ae58b

File tree

5 files changed

+35
-17
lines changed

5 files changed

+35
-17
lines changed

Cargo.lock

Lines changed: 13 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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,4 @@ tracing-opentelemetry = "0.32.0"
8686
reqwest = { version = "0.12", features = ["json"] }
8787
opentelemetry-datadog = { version = "0.19.0", features = ["reqwest-blocking-client", "reqwest-client"] }
8888
opentelemetry-semantic-conventions = { version = "0.31.0" }
89+
opentelemetry-appender-tracing = "0.31.1"

crates/ingress-rpc/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,4 @@ tracing-opentelemetry.workspace = true
4242
reqwest.workspace = true
4343
opentelemetry-datadog = { workspace = true, features = ["reqwest-client", "agent-sampling"]}
4444
opentelemetry-semantic-conventions.workspace = true
45+
opentelemetry-appender-tracing.workspace = true

crates/ingress-rpc/src/main.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use alloy_provider::{ProviderBuilder, RootProvider};
33
use clap::Parser;
44
use jsonrpsee::server::Server;
55
use op_alloy_network::Optimism;
6-
use opentelemetry::trace::{SamplingResult, Span, TraceContextExt, Tracer, TracerProvider};
6+
use opentelemetry::trace::{Span, TraceContextExt, Tracer, TracerProvider};
77
use opentelemetry::{Key, KeyValue, Value, global};
88
//use opentelemetry_otlp::WithExportConfig;
99
//use opentelemetry_sdk::Resource;
@@ -25,8 +25,9 @@ use url::Url;
2525
// InstrumentationScope, Key, KeyValue, Value,
2626
//};
2727
use opentelemetry::InstrumentationScope;
28-
use opentelemetry_datadog::{ApiVersion, DatadogTraceStateBuilder, new_pipeline};
29-
use opentelemetry_sdk::trace::{self, RandomIdGenerator, ShouldSample};
28+
//use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
29+
use opentelemetry_datadog::{ApiVersion, new_pipeline}; //DatadogTraceStateBuilder,
30+
use opentelemetry_sdk::trace::{self, RandomIdGenerator, Sampler}; //ShouldSample
3031
use opentelemetry_semantic_conventions as semcov;
3132

3233
mod queue;
@@ -101,7 +102,7 @@ fn bar() {
101102
span.end()
102103
}
103104

104-
#[derive(Debug, Clone)]
105+
/*#[derive(Debug, Clone)]
105106
struct AgentBasedSampler;
106107
107108
impl ShouldSample for AgentBasedSampler {
@@ -131,7 +132,7 @@ impl ShouldSample for AgentBasedSampler {
131132
trace_state,
132133
}
133134
}
134-
}
135+
}*/
135136

136137
#[tokio::main]
137138
async fn main() -> anyhow::Result<()> {
@@ -159,7 +160,7 @@ async fn main() -> anyhow::Result<()> {
159160

160161
let handle = std::thread::spawn(move || {
161162
// from: https://github.com/flashbots/rollup-boost/blob/08ebd3e75a8f4c7ebc12db13b042dee04e132c05/crates/rollup-boost/src/tracing.rs#L127
162-
let filter_name = "tips_ingress_rpc".to_string();
163+
let filter_name = "tips-ingress-rpc".to_string();
163164

164165
let global_filter = Targets::new()
165166
.with_default(LevelFilter::INFO)
@@ -173,11 +174,9 @@ async fn main() -> anyhow::Result<()> {
173174

174175
let writer = tracing_subscriber::fmt::writer::BoxMakeWriter::new(std::io::stdout);
175176

176-
global::set_text_map_propagator(
177-
opentelemetry_sdk::propagation::TraceContextPropagator::new(),
178-
);
177+
global::set_text_map_propagator(opentelemetry_datadog::DatadogPropagator::default());
179178
let mut trace_cfg = trace::Config::default();
180-
trace_cfg.sampler = Box::new(AgentBasedSampler);
179+
trace_cfg.sampler = Box::new(Sampler::AlwaysOn);
181180
trace_cfg.id_generator = Box::new(RandomIdGenerator::default());
182181

183182
let provider = new_pipeline()
@@ -186,7 +185,7 @@ async fn main() -> anyhow::Result<()> {
186185
.with_trace_config(trace_cfg)
187186
//.with_http_client(reqwest::Client::new())
188187
.with_agent_endpoint(&otlp_endpoint) // TODO: do we need to configure HTTP client?
189-
.install_simple()
188+
.install_batch()
190189
.expect("Failed to build provider"); // TODO: use batch exporter later
191190
global::set_tracer_provider(provider.clone());
192191
let scope = InstrumentationScope::builder(filter_name.clone())
@@ -325,7 +324,7 @@ mod tests {
325324

326325
fn build_provider() -> SdkTracerProvider {
327326
let mut trace_cfg = trace::Config::default();
328-
trace_cfg.sampler = Box::new(AgentBasedSampler);
327+
trace_cfg.sampler = Box::new(Sampler::AlwaysOn);
329328
trace_cfg.id_generator = Box::new(RandomIdGenerator::default());
330329

331330
let provider = new_pipeline()

crates/ingress-rpc/src/service.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use jsonrpsee::{
99
};
1010
use op_alloy_consensus::OpTxEnvelope;
1111
use op_alloy_network::Optimism;
12+
use opentelemetry::{global, trace::Tracer};
1213
use reth_rpc_eth_types::EthApiError;
1314
use std::time::{SystemTime, UNIX_EPOCH};
1415
use tracing::{Instrument, info, span, warn};
@@ -118,11 +119,14 @@ where
118119

119120
// queue the bundle
120121
let sender = transaction.signer();
121-
let span =
122-
span!(tracing::Level::INFO, "span_publish", transaction = %transaction.tx_hash());
123-
if let Err(e) = self.queue.publish(&bundle, sender).instrument(span).await {
124-
warn!(message = "Failed to publish Queue::enqueue_bundle", sender = %sender, error = %e);
125-
}
122+
let t = global::tracer("queue_publish");
123+
t.in_span("queue_publish_span", async |_| {
124+
let span =
125+
span!(tracing::Level::INFO, "span_publish", transaction = %transaction.tx_hash());
126+
if let Err(e) = self.queue.publish(&bundle, sender).instrument(span).await {
127+
warn!(message = "Failed to publish Queue::enqueue_bundle", sender = %sender, error = %e);
128+
}
129+
}).await;
126130

127131
info!(message="queued singleton bundle", txn_hash=%transaction.tx_hash());
128132

0 commit comments

Comments
 (0)