You've already forked authentication-service
mirror of
https://github.com/matrix-org/matrix-authentication-service.git
synced 2025-08-06 06:02:40 +03:00
Propagate parent trace context
This commit is contained in:
@@ -18,12 +18,19 @@ use futures::stream::{Stream, StreamExt};
|
||||
use mas_config::{MetricsConfig, TelemetryConfig, TracingConfig};
|
||||
use opentelemetry::{
|
||||
global,
|
||||
sdk::{self, trace::Tracer, Resource},
|
||||
propagation::TextMapPropagator,
|
||||
sdk::{
|
||||
self,
|
||||
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
|
||||
trace::Tracer,
|
||||
Resource,
|
||||
},
|
||||
};
|
||||
use opentelemetry_semantic_conventions as semcov;
|
||||
|
||||
pub fn setup(config: &TelemetryConfig) -> anyhow::Result<Option<Tracer>> {
|
||||
global::set_error_handler(|e| tracing::error!("{}", e))?;
|
||||
global::set_text_map_propagator(propagator());
|
||||
|
||||
let tracer = tracer(&config.tracing)?;
|
||||
meter(&config.metrics)?;
|
||||
@@ -34,6 +41,17 @@ pub fn shutdown() {
|
||||
global::shutdown_tracer_provider();
|
||||
}
|
||||
|
||||
fn propagator() -> impl TextMapPropagator {
|
||||
// TODO: make this configurable
|
||||
let baggage_propagator = BaggagePropagator::new();
|
||||
let trace_context_propagator = TraceContextPropagator::new();
|
||||
|
||||
TextMapCompositePropagator::new(vec![
|
||||
Box::new(baggage_propagator),
|
||||
Box::new(trace_context_propagator),
|
||||
])
|
||||
}
|
||||
|
||||
#[cfg(feature = "otlp")]
|
||||
fn otlp_tracer(endpoint: &Option<url::Url>) -> anyhow::Result<Tracer> {
|
||||
use opentelemetry_otlp::WithExportConfig;
|
||||
|
Reference in New Issue
Block a user