Skip to content

Commit

Permalink
temp
Browse files Browse the repository at this point in the history
  • Loading branch information
bryn committed Sep 7, 2023
1 parent 9bc2d4b commit fbac5d1
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 37 deletions.
3 changes: 0 additions & 3 deletions apollo-router/src/plugins/telemetry/metrics/layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ use std::collections::HashMap;
use std::fmt;
use std::sync::{Arc, OnceLock, RwLock};

use crate::plugins::telemetry::metrics::aggregation::AggregateMeterProvider;
use opentelemetry::metrics::Counter;
use opentelemetry::metrics::Histogram;
use opentelemetry::metrics::Meter;
Expand Down Expand Up @@ -492,8 +491,6 @@ impl MetricsLayer {
inner.public_meter = meter_provider.meter("apollo/router");
inner.public_instruments = Default::default();
}

AggregateMeterProvider::new(vec![Arc::new(MeterProviderBuilder::default().build())]);
}
}

Expand Down
42 changes: 8 additions & 34 deletions apollo-router/src/plugins/telemetry/tracing/jaeger.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
//! Configuration for jaeger tracing.
use opentelemetry::runtime;
use std::fmt::Debug;

use opentelemetry::sdk::export::trace::SpanData;
use opentelemetry::sdk::trace::BatchSpanProcessor;
use opentelemetry::sdk::trace::Builder;
use opentelemetry::sdk::trace::Span;
use opentelemetry::sdk::trace::SpanProcessor;
use opentelemetry::sdk::trace::TracerProvider;
use opentelemetry::trace::TraceResult;
use opentelemetry::Context;
use schemars::JsonSchema;
use serde::Deserialize;
use serde::Serialize;
Expand Down Expand Up @@ -102,42 +97,21 @@ impl TracingConfigurator for Config {
tracing::info!("Configuring Jaeger tracing: {}", batch_processor);
// We are waiting for a release of https://github.com/open-telemetry/opentelemetry-rust/issues/894
// Until that time we need to wrap a tracer provider with Jeager in.
let tracer_provider = opentelemetry_jaeger::new_collector_pipeline()
let exporter = opentelemetry_jaeger::new_collector_pipeline()
.with_trace_config(trace_config.into())
.with_service_name(trace_config.service_name.clone())
.with(&collector.username, |b, u| b.with_username(u))
.with(&collector.password, |b, p| b.with_password(p))
.with_endpoint(&collector.endpoint.to_string())
.with_reqwest()
.with_batch_processor_config(batch_processor.clone().into())
.build_batch(opentelemetry::runtime::Tokio)?;
Ok(builder
.with_span_processor(DelegateSpanProcessor { tracer_provider }.filtered()))
.build_collector_exporter::<runtime::Tokio>()?;
Ok(builder.with_span_processor(
BatchSpanProcessor::builder(exporter, opentelemetry::runtime::Tokio)
.with_batch_config(batch_processor.clone().into())
.build(),
))
}
}
}
}

#[derive(Debug)]
struct DelegateSpanProcessor {
tracer_provider: TracerProvider,
}

impl SpanProcessor for DelegateSpanProcessor {
fn on_start(&self, span: &mut Span, cx: &Context) {
self.tracer_provider.span_processors()[0].on_start(span, cx)
}

fn on_end(&self, span: SpanData) {
self.tracer_provider.span_processors()[0].on_end(span)
}

fn force_flush(&self) -> TraceResult<()> {
self.tracer_provider.span_processors()[0].force_flush()
}

fn shutdown(&mut self) -> TraceResult<()> {
// It's safe to not call shutdown as dropping tracer_provider will cause shutdown to happen separately.
Ok(())
}
}

0 comments on commit fbac5d1

Please sign in to comment.