Skip to content

Commit

Permalink
feat: clean up trace SDK APIs (#1755)
Browse files Browse the repository at this point in the history
Co-authored-by: Cijo Thomas <cijo.thomas@gmail.com>
  • Loading branch information
TommyCpp and cijothomas authored May 30, 2024
1 parent 84c23a3 commit 82fa485
Show file tree
Hide file tree
Showing 14 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion examples/tracing-jaeger/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ fn init_tracer_provider() -> Result<opentelemetry_sdk::trace::TracerProvider, Tr
.with_endpoint("http://localhost:4317"),
)
.with_trace_config(
sdktrace::config().with_resource(Resource::new(vec![KeyValue::new(
sdktrace::Config::default().with_resource(Resource::new(vec![KeyValue::new(
SERVICE_NAME,
"tracing-jaeger",
)])),
Expand Down
7 changes: 4 additions & 3 deletions opentelemetry-appender-tracing/src/layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,8 @@ mod tests {
use opentelemetry::{logs::AnyValue, Key};
use opentelemetry_sdk::logs::LoggerProvider;
use opentelemetry_sdk::testing::logs::InMemoryLogsExporter;
use opentelemetry_sdk::trace::{config, Sampler, TracerProvider};
use opentelemetry_sdk::trace;
use opentelemetry_sdk::trace::{Sampler, TracerProvider};
use tracing::error;
use tracing_subscriber::layer::SubscriberExt;

Expand Down Expand Up @@ -300,7 +301,7 @@ mod tests {

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

Expand Down Expand Up @@ -464,7 +465,7 @@ mod tests {

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

Expand Down
2 changes: 1 addition & 1 deletion opentelemetry-otlp/tests/integration_test/tests/traces.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {
.tracing()
.with_exporter(opentelemetry_otlp::new_exporter().tonic())
.with_trace_config(
sdktrace::config().with_resource(Resource::new(vec![KeyValue::new(
sdktrace::Config::default().with_resource(Resource::new(vec![KeyValue::new(
opentelemetry_semantic_conventions::resource::SERVICE_NAME,
"basic-otlp-tracing-example",
)])),
Expand Down
4 changes: 4 additions & 0 deletions opentelemetry-sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@
reference or owned`LogData`. If the exporter needs to process the log data
asynchronously, it should clone the log data to ensure it can be safely processed without
lifetime issues.
- Clean up public methods in SDK.
- [`TracerProvider::span_processors`] and [`TracerProvider::config`] was removed as it's not part of the spec.
- Added `non_exhaustive` annotation to [`trace::Config`]. Marked [`config`] as deprecated since it's only a wrapper for `Config::default`
- Removed [`Tracer::tracer_provder`] and [`Tracer::instrument_libraries`] as it's not part of the spec.

- **Breaking** [#1830](https://github.com/open-telemetry/opentelemetry-rust/pull/1830/files) [Traces SDK] Improves
performance by sending Resource information to processors (and exporters) once, instead of sending with every log. If you are an author
Expand Down
7 changes: 5 additions & 2 deletions opentelemetry-sdk/benches/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ use opentelemetry::{
};
use opentelemetry_sdk::{
export::trace::{ExportResult, SpanData, SpanExporter},
trace::{config, Sampler, TracerProvider},
trace,
trace::{Sampler, TracerProvider},
};
#[cfg(not(target_os = "windows"))]
use pprof::criterion::{Output, PProfProfiler};
Expand Down Expand Up @@ -126,7 +127,9 @@ impl Display for Environment {

fn parent_sampled_tracer(inner_sampler: Sampler) -> (TracerProvider, BoxedTracer) {
let provider = TracerProvider::builder()
.with_config(config().with_sampler(Sampler::ParentBased(Box::new(inner_sampler))))
.with_config(
trace::Config::default().with_sampler(Sampler::ParentBased(Box::new(inner_sampler))),
)
.with_simple_exporter(NoopExporter)
.build();
let tracer = provider.tracer(module_path!());
Expand Down
5 changes: 3 additions & 2 deletions opentelemetry-sdk/benches/log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ use opentelemetry::trace::TracerProvider as _;
use opentelemetry::Key;
use opentelemetry_sdk::export::logs::{LogData, LogExporter};
use opentelemetry_sdk::logs::{Logger, LoggerProvider};
use opentelemetry_sdk::trace::{config, Sampler, TracerProvider};
use opentelemetry_sdk::trace;
use opentelemetry_sdk::trace::{Sampler, TracerProvider};

#[derive(Debug)]
struct VoidExporter;
Expand Down Expand Up @@ -51,7 +52,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(config().with_sampler(Sampler::AlwaysOn))
.with_config(trace::Config::default().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().with_sampler(sdktrace::Sampler::AlwaysOff))
.with_config(sdktrace::Config::default().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().with_sampler(sdktrace::Sampler::AlwaysOn))
.with_config(sdktrace::Config::default().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().with_sampler(sdktrace::Sampler::AlwaysOff))
.with_config(sdktrace::Config::default().with_sampler(sdktrace::Sampler::AlwaysOff))
.with_simple_exporter(VoidExporter)
.build();
let never_sample = provider.tracer("never-sample");
Expand Down
2 changes: 2 additions & 0 deletions opentelemetry-sdk/src/trace/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ use std::env;
use std::str::FromStr;

/// Default trace configuration
#[deprecated(since = "0.23.0", note = "Use Config::default() instead")]
pub fn config() -> Config {
Config::default()
}

/// Tracer configuration
#[derive(Debug)]
#[non_exhaustive]
pub struct Config {
/// The sampler that the sdk should use
pub sampler: Box<dyn ShouldSample>,
Expand Down
4 changes: 2 additions & 2 deletions opentelemetry-sdk/src/trace/provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,12 @@ impl TracerProvider {
}

/// Span processors associated with this provider
pub fn span_processors(&self) -> &[Box<dyn SpanProcessor>] {
pub(crate) fn span_processors(&self) -> &[Box<dyn SpanProcessor>] {
&self.inner.processors
}

/// Config associated with this tracer
pub fn config(&self) -> &crate::trace::Config {
pub(crate) fn config(&self) -> &crate::trace::Config {
&self.inner.config
}

Expand Down
4 changes: 2 additions & 2 deletions opentelemetry-sdk/src/trace/tracer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ impl Tracer {
}

/// TracerProvider associated with this tracer.
pub fn provider(&self) -> Option<TracerProvider> {
pub(crate) fn provider(&self) -> Option<TracerProvider> {
self.provider.upgrade().map(TracerProvider::new)
}

/// Instrumentation library information of this tracer.
pub fn instrumentation_library(&self) -> &InstrumentationLibrary {
pub(crate) fn instrumentation_library(&self) -> &InstrumentationLibrary {
&self.instrumentation_lib
}

Expand Down
11 changes: 2 additions & 9 deletions opentelemetry-zipkin/src/exporter/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,7 @@ impl ZipkinPipelineBuilder {
));
cfg
} else {
Config {
resource: Cow::Owned(Resource::empty()),
..Default::default()
}
Config::default().with_resource(Resource::empty())
};
(config, Endpoint::new(service_name, self.service_addr))
} else {
Expand All @@ -119,11 +116,7 @@ impl ZipkinPipelineBuilder {
.unwrap()
.to_string();
(
Config {
// use a empty resource to prevent TracerProvider to assign a service name.
resource: Cow::Owned(Resource::empty()),
..Default::default()
},
Config::default().with_resource(Resource::empty()),
Endpoint::new(service_name, self.service_addr),
)
}
Expand Down
4 changes: 0 additions & 4 deletions scripts/integration_tests.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
#COMPOSE_FILE=./opentelemetry-jaeger/tests/docker-compose.yaml
#docker-compose -f $COMPOSE_FILE down -v &&
#docker-compose -f $COMPOSE_FILE up --build --abort-on-container-exit --exit-code-from opentelemetry-jaeger

cargo test ./opentelemetry-otlp/tests/integration_test/tests -- --ignored
2 changes: 1 addition & 1 deletion stress/src/traces.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ mod throughput;

lazy_static! {
static ref PROVIDER: sdktrace::TracerProvider = sdktrace::TracerProvider::builder()
.with_config(sdktrace::config().with_sampler(sdktrace::Sampler::AlwaysOn))
.with_config(sdktrace::Config::default().with_sampler(sdktrace::Sampler::AlwaysOn))
.with_span_processor(NoOpSpanProcessor {})
.build();
static ref TRACER: sdktrace::Tracer = PROVIDER.tracer("stress");
Expand Down

0 comments on commit 82fa485

Please sign in to comment.