Skip to content

Commit e914898

Browse files
authored
Move off of opentelemetry in favor of separate crates. (#48)
## Motivation `opentelemetry::sdk` is going to be deprecated in favor of a dedicated crate. ## Solution Use the `opentelemetry_sdk` crate for SDK calls instead of `opentelemetry::sdk` Signed-off-by: Harold Dost <[email protected]>
1 parent 473a500 commit e914898

File tree

9 files changed

+37
-42
lines changed

9 files changed

+37
-42
lines changed

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ rust-version = "1.60.0"
2222
[features]
2323
default = ["tracing-log", "metrics"]
2424
# Enables support for exporting OpenTelemetry metrics
25-
metrics = ["opentelemetry/metrics", "smallvec"]
25+
metrics = ["opentelemetry/metrics","opentelemetry_sdk/metrics", "smallvec"]
2626

2727
[dependencies]
2828
opentelemetry = { version = "0.20.0", default-features = false, features = ["trace"] }
29+
opentelemetry_sdk = { version = "0.20.0", default-features = false, features = ["trace"] }
2930
tracing = { version = "0.1.35", default-features = false, features = ["std"] }
3031
tracing-core = "0.1.28"
3132
tracing-subscriber = { version = "0.3.0", default-features = false, features = ["registry", "std"] }

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,17 @@ The crate provides the following types:
5959
### Basic Usage
6060

6161
```rust
62-
use opentelemetry::sdk::trace::TracerProvider;
6362
use opentelemetry::trace::TracerProvider as _;
63+
use opentelemetry_sdk::trace::TracerProvider;
64+
use opentelemetry_stdout as stdout;
6465
use tracing::{error, span};
6566
use tracing_subscriber::layer::SubscriberExt;
6667
use tracing_subscriber::Registry;
6768

6869
fn main() {
6970
// Create a new OpenTelemetry trace pipeline that prints to stdout
7071
let provider = TracerProvider::builder()
71-
.with_simple_exporter(opentelemetry_stdout::SpanExporter::default())
72+
.with_simple_exporter(stdout::SpanExporter::default())
7273
.build();
7374
let tracer = provider.tracer("readme_example");
7475

examples/opentelemetry-remote-context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use opentelemetry::sdk::propagation::TraceContextPropagator;
21
use opentelemetry::{global, Context};
2+
use opentelemetry_sdk::propagation::TraceContextPropagator;
33
use std::collections::HashMap;
44
use tracing::span;
55
use tracing_opentelemetry::OpenTelemetrySpanExt;

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
//! ## Examples
5252
//!
5353
//! ```
54-
//! use opentelemetry::sdk::trace::TracerProvider;
54+
//! use opentelemetry_sdk::trace::TracerProvider;
5555
//! use opentelemetry::trace::{Tracer, TracerProvider as _};
5656
//! use tracing::{error, span};
5757
//! use tracing_subscriber::layer::SubscriberExt;

src/metrics.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ impl<'a> Visit for MetricVisitor<'a> {
230230
/// use tracing_opentelemetry::MetricsLayer;
231231
/// use tracing_subscriber::layer::SubscriberExt;
232232
/// use tracing_subscriber::Registry;
233-
/// # use opentelemetry::sdk::metrics::MeterProvider;
233+
/// # use opentelemetry_sdk::metrics::MeterProvider;
234234
///
235235
/// // Constructing a MeterProvider is out-of-scope for the docs here, but there
236236
/// // are examples in the opentelemetry repository. See:

src/span_ext.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub trait OpenTelemetrySpanExt {
1717
///
1818
/// ```rust
1919
/// use opentelemetry::{propagation::TextMapPropagator, trace::TraceContextExt};
20-
/// use opentelemetry::sdk::propagation::TraceContextPropagator;
20+
/// use opentelemetry_sdk::propagation::TraceContextPropagator;
2121
/// use tracing_opentelemetry::OpenTelemetrySpanExt;
2222
/// use std::collections::HashMap;
2323
/// use tracing::Span;
@@ -51,7 +51,7 @@ pub trait OpenTelemetrySpanExt {
5151
///
5252
/// ```rust
5353
/// use opentelemetry::{propagation::TextMapPropagator, trace::TraceContextExt};
54-
/// use opentelemetry::sdk::propagation::TraceContextPropagator;
54+
/// use opentelemetry_sdk::propagation::TraceContextPropagator;
5555
/// use tracing_opentelemetry::OpenTelemetrySpanExt;
5656
/// use std::collections::HashMap;
5757
/// use tracing::Span;

src/tracer.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use opentelemetry::sdk::trace::{Tracer, TracerProvider};
21
use opentelemetry::trace::OrderMap;
32
use opentelemetry::{
43
trace as otel,
@@ -8,6 +7,7 @@ use opentelemetry::{
87
},
98
Context as OtelContext,
109
};
10+
use opentelemetry_sdk::trace::{Tracer as SdkTracer, TracerProvider as SdkTracerProvider};
1111

1212
/// An interface for authors of OpenTelemetry SDKs to build pre-sampled tracers.
1313
///
@@ -64,7 +64,7 @@ impl PreSampledTracer for noop::NoopTracer {
6464
}
6565
}
6666

67-
impl PreSampledTracer for Tracer {
67+
impl PreSampledTracer for SdkTracer {
6868
fn sampled_context(&self, data: &mut crate::OtelData) -> OtelContext {
6969
// Ensure tracing pipeline is still installed.
7070
if self.provider().is_none() {
@@ -118,7 +118,7 @@ impl PreSampledTracer for Tracer {
118118
fn current_trace_state(
119119
builder: &SpanBuilder,
120120
parent_cx: &OtelContext,
121-
provider: &TracerProvider,
121+
provider: &SdkTracerProvider,
122122
) -> (TraceId, TraceFlags) {
123123
if parent_cx.has_active_span() {
124124
let span = parent_cx.span();
@@ -160,8 +160,8 @@ fn process_sampling_result(
160160
mod tests {
161161
use super::*;
162162
use crate::OtelData;
163-
use opentelemetry::sdk::trace::{config, Sampler, TracerProvider};
164163
use opentelemetry::trace::{SpanBuilder, SpanId, TracerProvider as _};
164+
use opentelemetry_sdk::trace::{config, Sampler, TracerProvider};
165165

166166
#[test]
167167
fn assigns_default_trace_id_if_missing() {
@@ -194,7 +194,7 @@ mod tests {
194194
// Existing sampling result defers
195195
("previous_drop_result_always_on", Sampler::AlwaysOn, OtelContext::new(), Some(SamplingResult { decision: SamplingDecision::Drop, attributes: vec![], trace_state: Default::default() }), false),
196196
("previous_record_and_sample_result_always_off", Sampler::AlwaysOff, OtelContext::new(), Some(SamplingResult { decision: SamplingDecision::RecordAndSample, attributes: vec![], trace_state: Default::default() }), true),
197-
197+
198198
// Existing local parent, defers
199199
("previous_drop_result_always_on", Sampler::AlwaysOn, OtelContext::new(), Some(SamplingResult { decision: SamplingDecision::Drop, attributes: vec![], trace_state: Default::default() }), false),
200200
("previous_record_and_sample_result_always_off", Sampler::AlwaysOff, OtelContext::new(), Some(SamplingResult { decision: SamplingDecision::RecordAndSample, attributes: vec![], trace_state: Default::default() }), true),

tests/metrics_publishing.rs

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
use opentelemetry::{
2-
metrics::MetricsError,
3-
sdk::{
4-
metrics::{
5-
data::{Histogram, ResourceMetrics, Sum},
6-
reader::{
7-
AggregationSelector, DefaultAggregationSelector, DefaultTemporalitySelector,
8-
MetricReader, TemporalitySelector,
9-
},
10-
InstrumentKind, ManualReader, MeterProvider,
1+
use opentelemetry::{metrics::MetricsError, Context, KeyValue};
2+
use opentelemetry_sdk::{
3+
metrics::{
4+
data,
5+
data::{Histogram, Sum},
6+
reader::{
7+
AggregationSelector, DefaultAggregationSelector, DefaultTemporalitySelector,
8+
MetricProducer, MetricReader, TemporalitySelector,
119
},
12-
AttributeSet, Resource,
10+
InstrumentKind, ManualReader, MeterProvider,
1311
},
14-
Context, KeyValue,
12+
AttributeSet, Resource,
1513
};
14+
1615
use std::{fmt::Debug, sync::Arc};
1716
use tracing::Subscriber;
1817
use tracing_opentelemetry::MetricsLayer;
@@ -425,33 +424,27 @@ struct TestReader {
425424
}
426425

427426
impl AggregationSelector for TestReader {
428-
fn aggregation(&self, kind: InstrumentKind) -> opentelemetry::sdk::metrics::Aggregation {
427+
fn aggregation(&self, kind: InstrumentKind) -> opentelemetry_sdk::metrics::Aggregation {
429428
self.inner.aggregation(kind)
430429
}
431430
}
432431

433432
impl TemporalitySelector for TestReader {
434-
fn temporality(&self, kind: InstrumentKind) -> opentelemetry::sdk::metrics::data::Temporality {
433+
fn temporality(&self, kind: InstrumentKind) -> opentelemetry_sdk::metrics::data::Temporality {
435434
self.inner.temporality(kind)
436435
}
437436
}
438437

439438
impl MetricReader for TestReader {
440-
fn register_pipeline(&self, pipeline: std::sync::Weak<opentelemetry::sdk::metrics::Pipeline>) {
439+
fn register_pipeline(&self, pipeline: std::sync::Weak<opentelemetry_sdk::metrics::Pipeline>) {
441440
self.inner.register_pipeline(pipeline);
442441
}
443442

444-
fn register_producer(
445-
&self,
446-
producer: Box<dyn opentelemetry::sdk::metrics::reader::MetricProducer>,
447-
) {
443+
fn register_producer(&self, producer: Box<dyn MetricProducer>) {
448444
self.inner.register_producer(producer);
449445
}
450446

451-
fn collect(
452-
&self,
453-
rm: &mut opentelemetry::sdk::metrics::data::ResourceMetrics,
454-
) -> opentelemetry::metrics::Result<()> {
447+
fn collect(&self, rm: &mut data::ResourceMetrics) -> opentelemetry::metrics::Result<()> {
455448
self.inner.collect(rm)
456449
}
457450

@@ -478,7 +471,7 @@ where
478471
T: Debug + PartialEq + Copy + std::iter::Sum + 'static,
479472
{
480473
fn export(&self) -> Result<(), MetricsError> {
481-
let mut rm = ResourceMetrics {
474+
let mut rm = data::ResourceMetrics {
482475
resource: Resource::default(),
483476
scope_metrics: Vec::new(),
484477
};

tests/trace_state_propagation.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
use futures_util::future::BoxFuture;
22
use opentelemetry::{
33
propagation::TextMapPropagator,
4-
sdk::{
5-
export::trace::{ExportResult, SpanData, SpanExporter},
6-
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
7-
trace::{Tracer, TracerProvider},
8-
},
94
trace::{SpanContext, TraceContextExt, Tracer as _, TracerProvider as _},
105
Context,
116
};
7+
use opentelemetry_sdk::{
8+
export::trace::{ExportResult, SpanData, SpanExporter},
9+
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
10+
trace::{Tracer, TracerProvider},
11+
};
1212
use std::collections::{HashMap, HashSet};
1313
use std::sync::{Arc, Mutex};
1414
use tracing::Subscriber;

0 commit comments

Comments
 (0)