Add support for opentelemetry 0.17
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
0c66c31d3c
commit
aa8c1500f5
29
.drone.yml
29
.drone.yml
|
@ -27,8 +27,9 @@ steps:
|
|||
- cargo clippy --features opentelemetry_0_14 -- -D warnings
|
||||
- cargo clippy --features opentelemetry_0_15 -- -D warnings
|
||||
- cargo clippy --features opentelemetry_0_16 -- -D warnings
|
||||
- cargo clippy --example client --features opentelemetry_0_16 -- -D warnings
|
||||
- cargo clippy --example server --features opentelemetry_0_16 -- -D warnings
|
||||
- cargo clippy --features opentelemetry_0_17 -- -D warnings
|
||||
- cargo clippy --example client --features opentelemetry_0_17 -- -D warnings
|
||||
- cargo clippy --example server --features opentelemetry_0_17 -- -D warnings
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
@ -95,8 +96,8 @@ steps:
|
|||
pull: always
|
||||
commands:
|
||||
- cargo check --target=$TARGET
|
||||
- cargo check --target=$TARGET --example client --features opentelemetry_0_16
|
||||
- cargo check --target=$TARGET --example server --features opentelemetry_0_16
|
||||
- cargo check --target=$TARGET --example client --features opentelemetry_0_17
|
||||
- cargo check --target=$TARGET --example server --features opentelemetry_0_17
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
@ -129,8 +130,8 @@ steps:
|
|||
pull: always
|
||||
commands:
|
||||
- cargo check --target=$TARGET
|
||||
- cargo check --target=$TARGET --example client --features opentelemetry_0_16
|
||||
- cargo check --target=$TARGET --example server --features opentelemetry_0_16
|
||||
- cargo check --target=$TARGET --example client --features opentelemetry_0_17
|
||||
- cargo check --target=$TARGET --example server --features opentelemetry_0_17
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
@ -163,8 +164,8 @@ steps:
|
|||
pull: always
|
||||
commands:
|
||||
- cargo check --target=$TARGET
|
||||
- cargo check --target=$TARGET --example client --features opentelemetry_0_16
|
||||
- cargo check --target=$TARGET --example server --features opentelemetry_0_16
|
||||
- cargo check --target=$TARGET --example client --features opentelemetry_0_17
|
||||
- cargo check --target=$TARGET --example server --features opentelemetry_0_17
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
@ -196,8 +197,8 @@ steps:
|
|||
pull: always
|
||||
commands:
|
||||
- cargo build --target=$TARGET
|
||||
- cargo build --target=$TARGET --example client --features opentelemetry_0_16
|
||||
- cargo build --target=$TARGET --example server --features opentelemetry_0_16
|
||||
- cargo build --target=$TARGET --example client --features opentelemetry_0_17
|
||||
- cargo build --target=$TARGET --example server --features opentelemetry_0_17
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
@ -229,8 +230,8 @@ steps:
|
|||
pull: always
|
||||
commands:
|
||||
- cargo build --target=$TARGET
|
||||
- cargo build --target=$TARGET --example client --features opentelemetry_0_16
|
||||
- cargo build --target=$TARGET --example server --features opentelemetry_0_16
|
||||
- cargo build --target=$TARGET --example client --features opentelemetry_0_17
|
||||
- cargo build --target=$TARGET --example server --features opentelemetry_0_17
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
@ -262,8 +263,8 @@ steps:
|
|||
pull: always
|
||||
commands:
|
||||
- cargo build --target=$TARGET
|
||||
- cargo build --target=$TARGET --example client --features opentelemetry_0_16
|
||||
- cargo build --target=$TARGET --example server --features opentelemetry_0_16
|
||||
- cargo build --target=$TARGET --example client --features opentelemetry_0_17
|
||||
- cargo build --target=$TARGET --example server --features opentelemetry_0_17
|
||||
|
||||
trigger:
|
||||
event:
|
||||
|
|
22
Cargo.toml
22
Cargo.toml
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "tracing-awc"
|
||||
description = "Tracing instrumentation for the awc http client"
|
||||
version = "0.1.0-beta.21"
|
||||
version = "0.1.0-beta.22"
|
||||
authors = ["asonix <asonix@asonix.dog"]
|
||||
edition = "2018"
|
||||
license = "AGPL-3.0"
|
||||
|
@ -10,11 +10,11 @@ readme = "README.md"
|
|||
|
||||
[[example]]
|
||||
name = "client"
|
||||
required-features = ["opentelemetry_0_16"]
|
||||
required-features = ["opentelemetry_0_17"]
|
||||
|
||||
[[example]]
|
||||
name = "server"
|
||||
required-features = ["opentelemetry_0_16"]
|
||||
required-features = ["opentelemetry_0_17"]
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
[features]
|
||||
|
@ -36,6 +36,10 @@ opentelemetry_0_16 = [
|
|||
"opentelemetry_0_16_pkg",
|
||||
"tracing-opentelemetry_0_16_pkg",
|
||||
]
|
||||
opentelemetry_0_17 = [
|
||||
"opentelemetry_0_17_pkg",
|
||||
"tracing-opentelemetry_0_17_pkg",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
actix-http = { version = "=3.0.0-rc.1", default-features = false }
|
||||
|
@ -47,23 +51,25 @@ opentelemetry_0_13_pkg = { package = "opentelemetry", version = "0.13", optional
|
|||
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 }
|
||||
pin-project-lite = "0.2.7"
|
||||
tracing = "0.1"
|
||||
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 }
|
||||
|
||||
[dev-dependencies]
|
||||
actix-rt = "2.5"
|
||||
actix-web = { version = "4.0.0-rc.1", default-features = false }
|
||||
opentelemetry-otlp = "0.9"
|
||||
opentelemetry_0_16_pkg = { package = "opentelemetry", version = "0.16", features = [
|
||||
opentelemetry-otlp = "0.10"
|
||||
opentelemetry_0_17_pkg = { package = "opentelemetry", version = "0.17", features = [
|
||||
"rt-tokio",
|
||||
] }
|
||||
tracing-actix-web = { version = "0.5.0-rc.1", features = [
|
||||
"opentelemetry_0_16",
|
||||
] }
|
||||
tracing-actix-web = { version = "0.5.0-rc.2", features = [
|
||||
"opentelemetry_0_17",
|
||||
], git = "https://github.com/asonix/tracing-actix-web", branch = "asonix/opentelemetry-17" }
|
||||
tracing-subscriber = { version = "0.3", features = [
|
||||
"ansi",
|
||||
"env-filter",
|
||||
|
|
|
@ -5,8 +5,8 @@ use tracing::instrument::Instrument;
|
|||
use tracing_awc::{root_span, Tracing};
|
||||
use tracing_subscriber::{fmt::format::FmtSpan, layer::SubscriberExt, EnvFilter, Registry};
|
||||
|
||||
use opentelemetry_0_16_pkg as opentelemetry;
|
||||
use tracing_opentelemetry_0_16_pkg as tracing_opentelemetry;
|
||||
use opentelemetry_0_17_pkg as opentelemetry;
|
||||
use tracing_opentelemetry_0_17_pkg as tracing_opentelemetry;
|
||||
|
||||
use opentelemetry::{
|
||||
sdk::{propagation::TraceContextPropagator, Resource},
|
||||
|
|
|
@ -7,8 +7,8 @@ use std::error::Error;
|
|||
use tracing_actix_web::TracingLogger;
|
||||
use tracing_subscriber::{fmt::format::FmtSpan, layer::SubscriberExt, EnvFilter, Registry};
|
||||
|
||||
use opentelemetry_0_16_pkg as opentelemetry;
|
||||
use tracing_opentelemetry_0_16_pkg as tracing_opentelemetry;
|
||||
use opentelemetry_0_17_pkg as opentelemetry;
|
||||
use tracing_opentelemetry_0_17_pkg as tracing_opentelemetry;
|
||||
|
||||
use opentelemetry::{
|
||||
sdk::{propagation::TraceContextPropagator, Resource},
|
||||
|
|
21
src/lib.rs
21
src/lib.rs
|
@ -18,6 +18,8 @@ use opentelemetry_0_14_pkg as opentelemetry;
|
|||
use opentelemetry_0_15_pkg as opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_16")]
|
||||
use opentelemetry_0_16_pkg as opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_17")]
|
||||
use opentelemetry_0_17_pkg as opentelemetry;
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_13")]
|
||||
use tracing_opentelemetry_0_12_pkg as tracing_opentelemetry;
|
||||
|
@ -27,19 +29,30 @@ use tracing_opentelemetry_0_13_pkg as tracing_opentelemetry;
|
|||
use tracing_opentelemetry_0_14_pkg as tracing_opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_16")]
|
||||
use tracing_opentelemetry_0_16_pkg as tracing_opentelemetry;
|
||||
#[cfg(feature = "opentelemetry_0_17")]
|
||||
use tracing_opentelemetry_0_17_pkg as tracing_opentelemetry;
|
||||
|
||||
#[cfg(any(
|
||||
feature = "opentelemetry_0_13",
|
||||
feature = "opentelemetry_0_14",
|
||||
feature = "opentelemetry_0_15",
|
||||
feature = "opentelemetry_0_16"
|
||||
feature = "opentelemetry_0_16",
|
||||
feature = "opentelemetry_0_17"
|
||||
))]
|
||||
pub fn root_span() -> Span {
|
||||
let span = tracing::info_span!("Root span", trace_id = tracing::field::Empty,);
|
||||
{
|
||||
use opentelemetry::trace::TraceContextExt;
|
||||
use tracing_opentelemetry::OpenTelemetrySpanExt;
|
||||
#[cfg(not(feature = "opentelemetry_0_17"))]
|
||||
let trace_id = span.context().span().span_context().trace_id().to_hex();
|
||||
|
||||
#[cfg(feature = "opentelemetry_0_17")]
|
||||
let trace_id = {
|
||||
let id = span.context().span().span_context().trace_id();
|
||||
format!("{:032x}", id)
|
||||
};
|
||||
|
||||
span.record("trace_id", &tracing::field::display(trace_id));
|
||||
}
|
||||
|
||||
|
@ -251,7 +264,8 @@ struct RequestHeaderCarrier<'a> {
|
|||
feature = "opentelemetry_0_13",
|
||||
feature = "opentelemetry_0_14",
|
||||
feature = "opentelemetry_0_15",
|
||||
feature = "opentelemetry_0_16"
|
||||
feature = "opentelemetry_0_16",
|
||||
feature = "opentelemetry_0_17"
|
||||
))]
|
||||
impl<'a> opentelemetry::propagation::Injector for RequestHeaderCarrier<'a> {
|
||||
fn set(&mut self, key: &str, value: String) {
|
||||
|
@ -283,7 +297,8 @@ fn record_otel(_headers: &mut HeaderMap, _span: &Span) {
|
|||
feature = "opentelemetry_0_13",
|
||||
feature = "opentelemetry_0_14",
|
||||
feature = "opentelemetry_0_15",
|
||||
feature = "opentelemetry_0_16"
|
||||
feature = "opentelemetry_0_16",
|
||||
feature = "opentelemetry_0_17"
|
||||
))]
|
||||
{
|
||||
let span = _span;
|
||||
|
|
Loading…
Reference in a new issue