diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index f128ed3..6d4b69e 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -53,6 +53,7 @@ jobs: - opentelemetry_0_15 - opentelemetry_0_16 - opentelemetry_0_17 + - opentelemetry_0_18 steps: - uses: actions/checkout@v2 - name: Cache dependencies diff --git a/Cargo.toml b/Cargo.toml index e7e1399..1aafdc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,24 +25,26 @@ opentelemetry_0_14 = ["opentelemetry_0_14_pkg", "tracing-opentelemetry_0_13_pkg" opentelemetry_0_15 = ["opentelemetry_0_15_pkg", "tracing-opentelemetry_0_14_pkg"] opentelemetry_0_16 = ["opentelemetry_0_16_pkg", "tracing-opentelemetry_0_16_pkg"] opentelemetry_0_17 = ["opentelemetry_0_17_pkg", "tracing-opentelemetry_0_17_pkg"] +opentelemetry_0_18 = ["opentelemetry_0_18_pkg", "tracing-opentelemetry_0_18_pkg"] emit_event_on_error = [] [dependencies] actix-web = { version = "4", default-features = false } pin-project = "1.0.0" tracing = "0.1.19" -tracing-futures = "0.2.4" uuid = { version = "1", features = ["v4"] } opentelemetry_0_13_pkg = { package = "opentelemetry", version = "0.13", optional = true } opentelemetry_0_14_pkg = { package = "opentelemetry", version = "0.14", optional = true } opentelemetry_0_15_pkg = { package = "opentelemetry", version = "0.15", optional = true } opentelemetry_0_16_pkg = { package = "opentelemetry", version = "0.16", optional = true } opentelemetry_0_17_pkg = { package = "opentelemetry", version = "0.17", optional = true } +opentelemetry_0_18_pkg = { package = "opentelemetry", version = "0.18", optional = true } tracing-opentelemetry_0_12_pkg = { package = "tracing-opentelemetry",version = "0.12", optional = true } tracing-opentelemetry_0_13_pkg = { package = "tracing-opentelemetry", version = "0.13", optional = true } tracing-opentelemetry_0_14_pkg = { package = "tracing-opentelemetry",version = "0.14", optional = true } tracing-opentelemetry_0_16_pkg = { package = "tracing-opentelemetry",version = "0.16", optional = true } tracing-opentelemetry_0_17_pkg = { package = "tracing-opentelemetry",version = "0.17", optional = true } +tracing-opentelemetry_0_18_pkg = { package = "tracing-opentelemetry",version = "0.18", optional = true } [dev-dependencies] actix-web = { version = "4", default-features = false, features = ["macros"] } diff --git a/src/lib.rs b/src/lib.rs index 6d934d1..9cd225d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -252,7 +252,8 @@ pub mod root_span_macro; feature = "opentelemetry_0_14", feature = "opentelemetry_0_15", feature = "opentelemetry_0_16", - feature = "opentelemetry_0_17" + feature = "opentelemetry_0_17", + feature = "opentelemetry_0_18" ))] mod otel; @@ -268,6 +269,9 @@ compile_error!("feature \"opentelemetry_0_13\" and feature \"opentelemetry_0_16\ #[cfg(all(feature = "opentelemetry_0_13", feature = "opentelemetry_0_17"))] compile_error!("feature \"opentelemetry_0_13\" and feature \"opentelemetry_0_17\" cannot be enabled at the same time"); +#[cfg(all(feature = "opentelemetry_0_13", feature = "opentelemetry_0_18"))] +compile_error!("feature \"opentelemetry_0_13\" and feature \"opentelemetry_0_18\" cannot be enabled at the same time"); + #[cfg(all(feature = "opentelemetry_0_14", feature = "opentelemetry_0_15"))] compile_error!("feature \"opentelemetry_0_14\" and feature \"opentelemetry_0_15\" cannot be enabled at the same time"); @@ -277,11 +281,23 @@ compile_error!("feature \"opentelemetry_0_14\" and feature \"opentelemetry_0_16\ #[cfg(all(feature = "opentelemetry_0_14", feature = "opentelemetry_0_17"))] compile_error!("feature \"opentelemetry_0_14\" and feature \"opentelemetry_0_17\" cannot be enabled at the same time"); +#[cfg(all(feature = "opentelemetry_0_14", feature = "opentelemetry_0_18"))] +compile_error!("feature \"opentelemetry_0_14\" and feature \"opentelemetry_0_18\" cannot be enabled at the same time"); + #[cfg(all(feature = "opentelemetry_0_15", feature = "opentelemetry_0_16"))] compile_error!("feature \"opentelemetry_0_15\" and feature \"opentelemetry_0_16\" cannot be enabled at the same time"); #[cfg(all(feature = "opentelemetry_0_15", feature = "opentelemetry_0_17"))] compile_error!("feature \"opentelemetry_0_15\" and feature \"opentelemetry_0_17\" cannot be enabled at the same time"); +#[cfg(all(feature = "opentelemetry_0_15", feature = "opentelemetry_0_18"))] +compile_error!("feature \"opentelemetry_0_15\" and feature \"opentelemetry_0_18\" cannot be enabled at the same time"); + #[cfg(all(feature = "opentelemetry_0_16", feature = "opentelemetry_0_17"))] compile_error!("feature \"opentelemetry_0_16\" and feature \"opentelemetry_0_17\" cannot be enabled at the same time"); + +#[cfg(all(feature = "opentelemetry_0_16", feature = "opentelemetry_0_18"))] +compile_error!("feature \"opentelemetry_0_16\" and feature \"opentelemetry_0_18\" cannot be enabled at the same time"); + +#[cfg(all(feature = "opentelemetry_0_17", feature = "opentelemetry_0_18"))] +compile_error!("feature \"opentelemetry_0_17\" and feature \"opentelemetry_0_18\" cannot be enabled at the same time"); diff --git a/src/otel.rs b/src/otel.rs index 0b7adec..ec5e8d1 100644 --- a/src/otel.rs +++ b/src/otel.rs @@ -10,6 +10,8 @@ use opentelemetry_0_15_pkg as opentelemetry; use opentelemetry_0_16_pkg as opentelemetry; #[cfg(feature = "opentelemetry_0_17")] use opentelemetry_0_17_pkg as opentelemetry; +#[cfg(feature = "opentelemetry_0_18")] +use opentelemetry_0_18_pkg as opentelemetry; #[cfg(feature = "opentelemetry_0_13")] use tracing_opentelemetry_0_12_pkg as tracing_opentelemetry; @@ -21,6 +23,8 @@ use tracing_opentelemetry_0_14_pkg as tracing_opentelemetry; use tracing_opentelemetry_0_16_pkg as tracing_opentelemetry; #[cfg(feature = "opentelemetry_0_17")] use tracing_opentelemetry_0_17_pkg as tracing_opentelemetry; +#[cfg(feature = "opentelemetry_0_18")] +use tracing_opentelemetry_0_18_pkg as tracing_opentelemetry; use opentelemetry::propagation::Extractor; @@ -54,10 +58,10 @@ pub(crate) fn set_otel_parent(req: &ServiceRequest, span: &tracing::Span) { 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. - #[cfg(not(feature = "opentelemetry_0_17"))] + #[cfg(not(any(feature = "opentelemetry_0_17", feature = "opentelemetry_0_18")))] let trace_id = span.context().span().span_context().trace_id().to_hex(); - #[cfg(feature = "opentelemetry_0_17")] + #[cfg(any(feature = "opentelemetry_0_17", feature = "opentelemetry_0_18"))] let trace_id = { let id = span.context().span().span_context().trace_id(); format!("{:032x}", id) diff --git a/src/root_span_macro.rs b/src/root_span_macro.rs index 7e04114..b23b73f 100644 --- a/src/root_span_macro.rs +++ b/src/root_span_macro.rs @@ -134,7 +134,8 @@ pub mod private { feature = "opentelemetry_0_14", feature = "opentelemetry_0_15", feature = "opentelemetry_0_16", - feature = "opentelemetry_0_17" + feature = "opentelemetry_0_17", + feature = "opentelemetry_0_18" ))] crate::otel::set_otel_parent(req, span); }