mirror of
https://github.com/actix/actix-extras.git
synced 2025-02-23 10:53:02 +01:00
use import alias for otel versions (#29)
This commit is contained in:
parent
2bea16dd27
commit
431788e4d7
10
src/lib.rs
10
src/lib.rs
@ -244,11 +244,5 @@ pub use root_span_builder::{DefaultRootSpanBuilder, RootSpanBuilder};
|
||||
#[doc(hidden)]
|
||||
pub mod root_span_macro;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_13")]
|
||||
mod otel_0_13;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_14")]
|
||||
mod otel_0_14;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_15")]
|
||||
mod otel_0_15;
|
||||
#[cfg(any(feature = "opentelemetry_0_13", feature = "opentelemetry_0_14", feature = "opentelemetry_0_15"))]
|
||||
mod otel;
|
||||
|
@ -1,5 +1,20 @@
|
||||
use actix_web::dev::ServiceRequest;
|
||||
use opentelemetry_0_13_pkg::propagation::Extractor;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_13")]
|
||||
use opentelemetry_0_13_pkg as opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_14")]
|
||||
use opentelemetry_0_14_pkg as opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_15")]
|
||||
use opentelemetry_0_15_pkg as opentelemetry;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_13")]
|
||||
use tracing_opentelemetry_0_12_pkg as tracing_opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_14")]
|
||||
use tracing_opentelemetry_0_13_pkg as tracing_opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_15")]
|
||||
use tracing_opentelemetry_0_14_pkg as tracing_opentelemetry;
|
||||
|
||||
use opentelemetry::propagation::Extractor;
|
||||
|
||||
pub(crate) struct RequestHeaderCarrier<'a> {
|
||||
headers: &'a actix_web::http::HeaderMap,
|
||||
@ -22,11 +37,11 @@ impl<'a> Extractor for RequestHeaderCarrier<'a> {
|
||||
}
|
||||
|
||||
pub(crate) fn set_otel_parent(req: &ServiceRequest, span: &tracing::Span) {
|
||||
use opentelemetry_0_13_pkg::trace::TraceContextExt as _;
|
||||
use tracing_opentelemetry_0_12_pkg::OpenTelemetrySpanExt as _;
|
||||
use opentelemetry::trace::TraceContextExt as _;
|
||||
use tracing_opentelemetry::OpenTelemetrySpanExt as _;
|
||||
|
||||
let parent_context = opentelemetry_0_13_pkg::global::get_text_map_propagator(|propagator| {
|
||||
propagator.extract(&crate::otel_0_13::RequestHeaderCarrier::new(req.headers()))
|
||||
let parent_context = opentelemetry::global::get_text_map_propagator(|propagator| {
|
||||
propagator.extract(&RequestHeaderCarrier::new(req.headers()))
|
||||
});
|
||||
span.set_parent(parent_context);
|
||||
// If we have a remote parent span, this will be the parent's trace identifier.
|
@ -1,36 +0,0 @@
|
||||
use actix_web::dev::ServiceRequest;
|
||||
use opentelemetry_0_14_pkg::propagation::Extractor;
|
||||
|
||||
pub(crate) struct RequestHeaderCarrier<'a> {
|
||||
headers: &'a actix_web::http::HeaderMap,
|
||||
}
|
||||
|
||||
impl<'a> RequestHeaderCarrier<'a> {
|
||||
pub(crate) fn new(headers: &'a actix_web::http::HeaderMap) -> Self {
|
||||
RequestHeaderCarrier { headers }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Extractor for RequestHeaderCarrier<'a> {
|
||||
fn get(&self, key: &str) -> Option<&str> {
|
||||
self.headers.get(key).and_then(|v| v.to_str().ok())
|
||||
}
|
||||
|
||||
fn keys(&self) -> Vec<&str> {
|
||||
self.headers.keys().map(|header| header.as_str()).collect()
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn set_otel_parent(req: &ServiceRequest, span: &tracing::Span) {
|
||||
use opentelemetry_0_14_pkg::trace::TraceContextExt as _;
|
||||
use tracing_opentelemetry_0_13_pkg::OpenTelemetrySpanExt as _;
|
||||
|
||||
let parent_context = opentelemetry_0_14_pkg::global::get_text_map_propagator(|propagator| {
|
||||
propagator.extract(&crate::otel_0_14::RequestHeaderCarrier::new(req.headers()))
|
||||
});
|
||||
span.set_parent(parent_context);
|
||||
// If we have a remote parent span, this will be the parent's trace identifier.
|
||||
// If not, it will be the newly generated trace identifier with this request as root span.
|
||||
let trace_id = span.context().span().span_context().trace_id().to_hex();
|
||||
span.record("trace_id", &tracing::field::display(trace_id));
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
use actix_web::dev::ServiceRequest;
|
||||
use opentelemetry_0_15_pkg::propagation::Extractor;
|
||||
|
||||
pub(crate) struct RequestHeaderCarrier<'a> {
|
||||
headers: &'a actix_web::http::HeaderMap,
|
||||
}
|
||||
|
||||
impl<'a> RequestHeaderCarrier<'a> {
|
||||
pub(crate) fn new(headers: &'a actix_web::http::HeaderMap) -> Self {
|
||||
RequestHeaderCarrier { headers }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Extractor for RequestHeaderCarrier<'a> {
|
||||
fn get(&self, key: &str) -> Option<&str> {
|
||||
self.headers.get(key).and_then(|v| v.to_str().ok())
|
||||
}
|
||||
|
||||
fn keys(&self) -> Vec<&str> {
|
||||
self.headers.keys().map(|header| header.as_str()).collect()
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn set_otel_parent(req: &ServiceRequest, span: &tracing::Span) {
|
||||
use opentelemetry_0_15_pkg::trace::TraceContextExt as _;
|
||||
use tracing_opentelemetry_0_14_pkg::OpenTelemetrySpanExt as _;
|
||||
|
||||
let parent_context = opentelemetry_0_15_pkg::global::get_text_map_propagator(|propagator| {
|
||||
propagator.extract(&crate::otel_0_15::RequestHeaderCarrier::new(req.headers()))
|
||||
});
|
||||
span.set_parent(parent_context);
|
||||
// If we have a remote parent span, this will be the parent's trace identifier.
|
||||
// If not, it will be the newly generated trace identifier with this request as root span.
|
||||
let trace_id = span.context().span().span_context().trace_id().to_hex();
|
||||
span.record("trace_id", &tracing::field::display(trace_id));
|
||||
}
|
@ -97,14 +97,8 @@ macro_rules! root_span {
|
||||
);
|
||||
std::mem::drop(connection_info);
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_13")]
|
||||
$crate::root_span_macro::private::set_otel_parent_0_13(&$request, &span);
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_14")]
|
||||
$crate::root_span_macro::private::set_otel_parent_0_14(&$request, &span);
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_15")]
|
||||
$crate::root_span_macro::private::set_otel_parent_0_15(&$request, &span);
|
||||
#[cfg(any(feature = "opentelemetry_0_13", feature = "opentelemetry_0_14", feature = "opentelemetry_0_15"))]
|
||||
$crate::root_span_macro::private::set_otel_parent(&$request, &span);
|
||||
|
||||
span
|
||||
}
|
||||
@ -124,22 +118,10 @@ pub mod private {
|
||||
|
||||
pub use tracing;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_13")]
|
||||
#[cfg(any(feature = "opentelemetry_0_13", feature = "opentelemetry_0_14", feature = "opentelemetry_0_15"))]
|
||||
#[doc(hidden)]
|
||||
pub fn set_otel_parent_0_13(req: &ServiceRequest, span: &tracing::Span) {
|
||||
crate::otel_0_13::set_otel_parent(req, span);
|
||||
}
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_14")]
|
||||
#[doc(hidden)]
|
||||
pub fn set_otel_parent_0_14(req: &ServiceRequest, span: &tracing::Span) {
|
||||
crate::otel_0_14::set_otel_parent(req, span);
|
||||
}
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_15")]
|
||||
#[doc(hidden)]
|
||||
pub fn set_otel_parent_0_15(req: &ServiceRequest, span: &tracing::Span) {
|
||||
crate::otel_0_15::set_otel_parent(req, span);
|
||||
pub fn set_otel_parent(req: &ServiceRequest, span: &tracing::Span) {
|
||||
crate::otel::set_otel_parent(req, span);
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user