Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions examples/tracing-jaeger/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use opentelemetry::{
KeyValue,
};
use opentelemetry_sdk::trace::TracerProvider;
use opentelemetry_sdk::{runtime, trace as sdktrace, Resource};
use opentelemetry_sdk::{runtime, Resource};
use opentelemetry_semantic_conventions::resource::SERVICE_NAME;

use std::error::Error;
Expand All @@ -17,12 +17,10 @@ fn init_tracer_provider() -> Result<opentelemetry_sdk::trace::TracerProvider, Tr

Ok(TracerProvider::builder()
.with_batch_exporter(exporter, runtime::Tokio)
.with_config(
sdktrace::Config::default().with_resource(Resource::new(vec![KeyValue::new(
SERVICE_NAME,
"tracing-jaeger",
)])),
)
.with_resource(Resource::new(vec![KeyValue::new(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we could potentially offer an easier ways for users who is just trying to add service name. For another time!

SERVICE_NAME,
"tracing-jaeger",
)]))
.build())
}

Expand Down
5 changes: 2 additions & 3 deletions opentelemetry-appender-tracing/src/layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,6 @@ mod tests {
use opentelemetry_sdk::export::logs::{LogBatch, LogExporter};
use opentelemetry_sdk::logs::{LogRecord, LogResult, LoggerProvider};
use opentelemetry_sdk::testing::logs::InMemoryLogExporter;
use opentelemetry_sdk::trace;
use opentelemetry_sdk::trace::{Sampler, TracerProvider};
use tracing::{error, warn};
use tracing_subscriber::prelude::__tracing_subscriber_SubscriberExt;
Expand Down Expand Up @@ -402,7 +401,7 @@ mod tests {

// setup tracing as well.
let tracer_provider = TracerProvider::builder()
.with_config(trace::Config::default().with_sampler(Sampler::AlwaysOn))
.with_sampler(Sampler::AlwaysOn)
.build();
let tracer = tracer_provider.tracer("test-tracer");

Expand Down Expand Up @@ -579,7 +578,7 @@ mod tests {

// setup tracing as well.
let tracer_provider = TracerProvider::builder()
.with_config(trace::Config::default().with_sampler(Sampler::AlwaysOn))
.with_sampler(Sampler::AlwaysOn)
.build();
let tracer = tracer_provider.tracer("test-tracer");

Expand Down
4 changes: 2 additions & 2 deletions opentelemetry-otlp/examples/basic-otlp-http/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use opentelemetry_sdk::{
logs::LoggerProvider,
metrics::{MetricError, PeriodicReader, SdkMeterProvider},
runtime,
trace::{self as sdktrace, Config, TracerProvider},
trace::{self as sdktrace, TracerProvider},
};
use opentelemetry_sdk::{
logs::{self as sdklogs},
Expand Down Expand Up @@ -52,7 +52,7 @@ fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {

Ok(TracerProvider::builder()
.with_batch_exporter(exporter, runtime::Tokio)
.with_config(Config::default().with_resource(RESOURCE.clone()))
.with_resource(RESOURCE.clone())
.build())
}

Expand Down
3 changes: 1 addition & 2 deletions opentelemetry-otlp/examples/basic-otlp/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ use opentelemetry_sdk::logs::LogError;
use opentelemetry_sdk::logs::LoggerProvider;
use opentelemetry_sdk::metrics::MetricError;
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
use opentelemetry_sdk::trace::Config;
use opentelemetry_sdk::{runtime, trace as sdktrace, Resource};
use std::error::Error;
use tracing::info;
Expand All @@ -28,7 +27,7 @@ fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {
.with_endpoint("http://localhost:4317")
.build()?;
Ok(sdktrace::TracerProvider::builder()
.with_config(Config::default().with_resource(RESOURCE.clone()))
.with_resource(RESOURCE.clone())
.with_batch_exporter(exporter, runtime::Tokio)
.build())
}
Expand Down
10 changes: 4 additions & 6 deletions opentelemetry-otlp/tests/integration_test/tests/traces.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,10 @@ fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {
.build()?;
Ok(opentelemetry_sdk::trace::TracerProvider::builder()
.with_batch_exporter(exporter, runtime::Tokio)
.with_config(
sdktrace::Config::default().with_resource(Resource::new(vec![KeyValue::new(
opentelemetry_semantic_conventions::resource::SERVICE_NAME,
"basic-otlp-tracing-example",
)])),
)
.with_resource(Resource::new(vec![KeyValue::new(
opentelemetry_semantic_conventions::resource::SERVICE_NAME,
"basic-otlp-tracing-example",
)]))
.build())
}

Expand Down
16 changes: 16 additions & 0 deletions opentelemetry-sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

## vNext

- **DEPRECATED**:
- `trace::Config` methods are moving onto `TracerProvider` Builder to be consistent with other signals. See https://github.com/open-telemetry/opentelemetry-rust/pull/2303 for migration guide.
`trace::Config` is scheduled to be removed from public API in `v0.28.0`.
example:
```rust
// old
let tracer_provider: TracerProvider = TracerProvider::builder()
.with_config(Config::default().with_resource(Resource::empty()))
.build();

// new
let tracer_provider: TracerProvider = TracerProvider::builder()
.with_resource(Resource::empty())
.build();
```

## 0.27.0

Released 2024-Nov-11
Expand Down
5 changes: 1 addition & 4 deletions opentelemetry-sdk/benches/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ use opentelemetry::{
};
use opentelemetry_sdk::{
export::trace::{ExportResult, SpanData, SpanExporter},
trace,
trace::{Sampler, TracerProvider},
};
#[cfg(not(target_os = "windows"))]
Expand Down Expand Up @@ -127,9 +126,7 @@ impl Display for Environment {

fn parent_sampled_tracer(inner_sampler: Sampler) -> (TracerProvider, BoxedTracer) {
let provider = TracerProvider::builder()
.with_config(
trace::Config::default().with_sampler(Sampler::ParentBased(Box::new(inner_sampler))),
)
.with_sampler(Sampler::ParentBased(Box::new(inner_sampler)))
.with_simple_exporter(NoopExporter)
.build();
let tracer = provider.tracer(module_path!());
Expand Down
3 changes: 1 addition & 2 deletions opentelemetry-sdk/benches/log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ use opentelemetry::trace::Tracer;
use opentelemetry::trace::TracerProvider as _;
use opentelemetry::{InstrumentationScope, Key};
use opentelemetry_sdk::logs::{LogProcessor, LogRecord, LogResult, Logger, LoggerProvider};
use opentelemetry_sdk::trace;
use opentelemetry_sdk::trace::{Sampler, TracerProvider};

#[derive(Debug)]
Expand Down Expand Up @@ -65,7 +64,7 @@ fn log_benchmark_group<F: Fn(&Logger)>(c: &mut Criterion, name: &str, f: F) {

// setup tracing as well.
let tracer_provider = TracerProvider::builder()
.with_config(trace::Config::default().with_sampler(Sampler::AlwaysOn))
.with_sampler(Sampler::AlwaysOn)
.build();
let tracer = tracer_provider.tracer("bench-tracer");

Expand Down
2 changes: 1 addition & 1 deletion opentelemetry-sdk/benches/span_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ fn span_builder_benchmark_group(c: &mut Criterion) {

fn not_sampled_provider() -> (sdktrace::TracerProvider, sdktrace::Tracer) {
let provider = sdktrace::TracerProvider::builder()
.with_config(sdktrace::Config::default().with_sampler(sdktrace::Sampler::AlwaysOff))
.with_sampler(sdktrace::Sampler::AlwaysOff)
.with_simple_exporter(NoopExporter)
.build();
let tracer = provider.tracer("not-sampled");
Expand Down
4 changes: 2 additions & 2 deletions opentelemetry-sdk/benches/trace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ fn trace_benchmark_group<F: Fn(&sdktrace::Tracer)>(c: &mut Criterion, name: &str

group.bench_function("always-sample", |b| {
let provider = sdktrace::TracerProvider::builder()
.with_config(sdktrace::Config::default().with_sampler(sdktrace::Sampler::AlwaysOn))
.with_sampler(sdktrace::Sampler::AlwaysOn)
.with_simple_exporter(VoidExporter)
.build();
let always_sample = provider.tracer("always-sample");
Expand All @@ -80,7 +80,7 @@ fn trace_benchmark_group<F: Fn(&sdktrace::Tracer)>(c: &mut Criterion, name: &str

group.bench_function("never-sample", |b| {
let provider = sdktrace::TracerProvider::builder()
.with_config(sdktrace::Config::default().with_sampler(sdktrace::Sampler::AlwaysOff))
.with_sampler(sdktrace::Sampler::AlwaysOff)
.with_simple_exporter(VoidExporter)
.build();
let never_sample = provider.tracer("never-sample");
Expand Down
8 changes: 8 additions & 0 deletions opentelemetry-sdk/src/resource/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,14 @@ impl Resource {
}
}

/// Create a new `Resource::default()` and merge with provided key value pairs.
///
/// Values are de-duplicated by key, and the first key-value pair with a non-empty string value
/// will be retained
pub fn new_with_defaults<T: IntoIterator<Item = KeyValue>>(keys: T) -> Self {
Resource::default().merge(&mut Resource::new(keys))
}

/// Create a new `Resource` from a key value pairs and [schema url].
///
/// Values are de-duplicated by key, and the first key-value pair with a non-empty string value
Expand Down
46 changes: 41 additions & 5 deletions opentelemetry-sdk/src/trace/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,54 +34,90 @@ pub struct Config {

impl Config {
/// Specify the sampler to be used.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_sampler(...) instead."
)]
pub fn with_sampler<T: crate::trace::ShouldSample + 'static>(mut self, sampler: T) -> Self {
self.sampler = Box::new(sampler);
self
}

/// Specify the id generator to be used.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_id_generator(...) instead."
)]
pub fn with_id_generator<T: IdGenerator + 'static>(mut self, id_generator: T) -> Self {
self.id_generator = Box::new(id_generator);
self
}

/// Specify the number of events to be recorded per span.
/// Specify the maximum number of events that can be recorded per span.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_max_events_per_span(...) instead."
)]
pub fn with_max_events_per_span(mut self, max_events: u32) -> Self {
self.span_limits.max_events_per_span = max_events;
self
}

/// Specify the number of attributes to be recorded per span.
/// Specify the maximum number of attributes that can be recorded per span.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_max_attributes_per_span(...) instead."
)]
pub fn with_max_attributes_per_span(mut self, max_attributes: u32) -> Self {
self.span_limits.max_attributes_per_span = max_attributes;
self
}

/// Specify the number of events to be recorded per span.
/// Specify the maximum number of links that can be recorded per span.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_max_links_per_span(...) instead."
)]
pub fn with_max_links_per_span(mut self, max_links: u32) -> Self {
self.span_limits.max_links_per_span = max_links;
self
}

/// Specify the number of attributes one event can have.
/// Specify the maximum number of attributes one event can have.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_max_attributes_per_event(...) instead."
)]
pub fn with_max_attributes_per_event(mut self, max_attributes: u32) -> Self {
self.span_limits.max_attributes_per_event = max_attributes;
self
}

/// Specify the number of attributes one link can have.
/// Specify the maximum number of attributes one link can have.
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_max_attributes_per_link(...) instead."
)]
pub fn with_max_attributes_per_link(mut self, max_attributes: u32) -> Self {
self.span_limits.max_attributes_per_link = max_attributes;
self
}

/// Specify all limit via the span_limits
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_span_limits(...) instead."
)]
pub fn with_span_limits(mut self, span_limits: SpanLimits) -> Self {
self.span_limits = span_limits;
self
}

/// Specify the attributes representing the entity that produces telemetry
#[deprecated(
since = "0.27.1",
note = "Config is becoming private. Please use Builder::with_resource(...) instead."
)]
pub fn with_resource(mut self, resource: Resource) -> Self {
self.resource = Cow::Owned(resource);
self
Expand Down
4 changes: 2 additions & 2 deletions opentelemetry-sdk/src/trace/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ mod tests {
fn trace_state_for_dropped_sampler() {
let exporter = InMemorySpanExporterBuilder::new().build();
let provider = TracerProvider::builder()
.with_config(Config::default().with_sampler(Sampler::AlwaysOff))
.with_sampler(Sampler::AlwaysOff)
.with_span_processor(SimpleSpanProcessor::new(Box::new(exporter.clone())))
.build();

Expand Down Expand Up @@ -293,7 +293,7 @@ mod tests {
fn trace_state_for_record_only_sampler() {
let exporter = InMemorySpanExporterBuilder::new().build();
let provider = TracerProvider::builder()
.with_config(Config::default().with_sampler(TestRecordOnlySampler::default()))
.with_sampler(TestRecordOnlySampler::default())
.with_span_processor(SimpleSpanProcessor::new(Box::new(exporter.clone())))
.build();

Expand Down
Loading
Loading