Skip to content

Commit 5935cca

Browse files
authored
Move span exporter module (#2540)
1 parent a0e5061 commit 5935cca

File tree

34 files changed

+65
-64
lines changed

34 files changed

+65
-64
lines changed

opentelemetry-otlp/src/exporter/http/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ use opentelemetry_proto::transform::common::tonic::ResourceAttributesWithSchema;
1313
use opentelemetry_proto::transform::logs::tonic::group_logs_by_resource_and_scope;
1414
#[cfg(feature = "trace")]
1515
use opentelemetry_proto::transform::trace::tonic::group_spans_by_resource_and_scope;
16-
#[cfg(feature = "trace")]
17-
use opentelemetry_sdk::export::trace::SpanData;
1816
#[cfg(feature = "logs")]
1917
use opentelemetry_sdk::logs::LogBatch;
18+
#[cfg(feature = "trace")]
19+
use opentelemetry_sdk::trace::SpanData;
2020
use prost::Message;
2121
use std::collections::HashMap;
2222
use std::env;

opentelemetry-otlp/src/exporter/http/trace.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::sync::Arc;
33
use futures_core::future::BoxFuture;
44
use http::{header::CONTENT_TYPE, Method};
55
use opentelemetry::{otel_debug, trace::TraceError};
6-
use opentelemetry_sdk::export::trace::{ExportResult, SpanData, SpanExporter};
6+
use opentelemetry_sdk::trace::{ExportResult, SpanData, SpanExporter};
77

88
use super::OtlpHttpClient;
99

opentelemetry-otlp/src/exporter/tonic/trace.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use opentelemetry::{otel_debug, trace::TraceError};
55
use opentelemetry_proto::tonic::collector::trace::v1::{
66
trace_service_client::TraceServiceClient, ExportTraceServiceRequest,
77
};
8-
use opentelemetry_sdk::export::trace::{ExportResult, SpanData, SpanExporter};
8+
use opentelemetry_sdk::trace::{ExportResult, SpanData, SpanExporter};
99
use tonic::{codegen::CompressionEncoding, service::Interceptor, transport::Channel, Request};
1010

1111
use opentelemetry_proto::transform::trace::tonic::group_spans_by_resource_and_scope;

opentelemetry-otlp/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ pub use crate::exporter::{
262262
OTEL_EXPORTER_OTLP_TIMEOUT_DEFAULT,
263263
};
264264

265-
use opentelemetry_sdk::export::ExportError;
265+
use opentelemetry_sdk::ExportError;
266266

267267
/// Type to indicate the builder does not have a client set.
268268
#[derive(Debug, Default, Clone)]

opentelemetry-otlp/src/span.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use std::fmt::Debug;
66

77
use futures_core::future::BoxFuture;
8-
use opentelemetry_sdk::export::trace::{ExportResult, SpanData};
8+
use opentelemetry_sdk::trace::{ExportResult, SpanData};
99

1010
#[cfg(feature = "grpc-tonic")]
1111
use crate::{
@@ -107,7 +107,7 @@ impl HasHttpConfig for SpanExporterBuilder<HttpExporterBuilderSet> {
107107

108108
/// OTLP exporter that sends tracing information
109109
#[derive(Debug)]
110-
pub struct SpanExporter(Box<dyn opentelemetry_sdk::export::trace::SpanExporter>);
110+
pub struct SpanExporter(Box<dyn opentelemetry_sdk::trace::SpanExporter>);
111111

112112
impl SpanExporter {
113113
/// Obtain a builder to configure a [SpanExporter].
@@ -116,12 +116,12 @@ impl SpanExporter {
116116
}
117117

118118
/// Build a new span exporter from a client
119-
pub fn new(client: impl opentelemetry_sdk::export::trace::SpanExporter + 'static) -> Self {
119+
pub fn new(client: impl opentelemetry_sdk::trace::SpanExporter + 'static) -> Self {
120120
SpanExporter(Box::new(client))
121121
}
122122
}
123123

124-
impl opentelemetry_sdk::export::trace::SpanExporter for SpanExporter {
124+
impl opentelemetry_sdk::trace::SpanExporter for SpanExporter {
125125
fn export(&mut self, batch: Vec<SpanData>) -> BoxFuture<'static, ExportResult> {
126126
self.0.export(batch)
127127
}

opentelemetry-proto/src/transform/trace.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ pub mod tonic {
88
};
99
use opentelemetry::trace;
1010
use opentelemetry::trace::{Link, SpanId, SpanKind};
11-
use opentelemetry_sdk::export::trace::SpanData;
11+
use opentelemetry_sdk::trace::SpanData;
1212
use std::collections::HashMap;
1313

1414
impl From<SpanKind> for span::SpanKind {
@@ -45,8 +45,8 @@ pub mod tonic {
4545
}
4646
}
4747
}
48-
impl From<opentelemetry_sdk::export::trace::SpanData> for Span {
49-
fn from(source_span: opentelemetry_sdk::export::trace::SpanData) -> Self {
48+
impl From<opentelemetry_sdk::trace::SpanData> for Span {
49+
fn from(source_span: opentelemetry_sdk::trace::SpanData) -> Self {
5050
let span_kind: span::SpanKind = source_span.span_kind.into();
5151
Span {
5252
trace_id: source_span.span_context.trace_id().to_bytes().to_vec(),
@@ -198,8 +198,8 @@ mod tests {
198198
};
199199
use opentelemetry::InstrumentationScope;
200200
use opentelemetry::KeyValue;
201-
use opentelemetry_sdk::export::trace::SpanData;
202201
use opentelemetry_sdk::resource::Resource;
202+
use opentelemetry_sdk::trace::SpanData;
203203
use opentelemetry_sdk::trace::{SpanEvents, SpanLinks};
204204
use std::borrow::Cow;
205205
use std::time::{Duration, SystemTime};

opentelemetry-proto/src/transform/tracez.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#[cfg(all(feature = "gen-tonic-messages", feature = "zpages"))]
22
mod tonic {
33
use opentelemetry::trace::{Event, Status};
4-
use opentelemetry_sdk::export::trace::SpanData;
4+
use opentelemetry_sdk::trace::SpanData;
55

66
use crate::proto::tonic::{
77
trace::v1::{span::Event as SpanEvent, Status as SpanStatus},

opentelemetry-sdk/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,13 @@ hardcoded limit of 2000 and no ability to change it. This feature will be
268268
re-introduced in a future date, along with the ability to change the cardinality
269269
limit.
270270

271+
- *Breaking* (Affects custom Exporter authors only) Moved `ExportError` trait from `opentelemetry::export::ExportError` to `opentelemetry_sdk::ExportError`
272+
- *Breaking (Affects custom SpanExporter, SpanProcessor authors only)*: Rename namespaces
273+
before:
274+
`opentelemetry_sdk::export::spans::{ExportResult, SpanData, SpanExporter};`
275+
now:
276+
`opentelemetry_sdk::logs::{ExportResult, SpanData, SpanExporter};`
277+
271278
- *Breaking (Affects custom LogExporter, LogProcessor authors only)*: Rename namespaces
272279
before:
273280
`opentelemetry_sdk::export::logs::{ExportResult, LogBatch, LogExporter};`

opentelemetry-sdk/benches/batch_span_processor.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
22
use opentelemetry::trace::{
33
SpanContext, SpanId, SpanKind, Status, TraceFlags, TraceId, TraceState,
44
};
5-
use opentelemetry_sdk::export::trace::SpanData;
65
use opentelemetry_sdk::testing::trace::NoopSpanExporter;
6+
use opentelemetry_sdk::trace::SpanData;
77
use opentelemetry_sdk::trace::{
88
BatchConfigBuilder, BatchSpanProcessor, SpanEvents, SpanLinks, SpanProcessor,
99
};

opentelemetry-sdk/benches/context.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use opentelemetry::{
99
Context, ContextGuard,
1010
};
1111
use opentelemetry_sdk::{
12-
export::trace::{ExportResult, SpanData, SpanExporter},
12+
trace::{ExportResult, SpanData, SpanExporter},
1313
trace::{Sampler, TracerProvider},
1414
};
1515
#[cfg(not(target_os = "windows"))]

opentelemetry-sdk/benches/span_builder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use opentelemetry::{
55
KeyValue,
66
};
77
use opentelemetry_sdk::{
8-
export::trace::{ExportResult, SpanData, SpanExporter},
98
trace as sdktrace,
9+
trace::{ExportResult, SpanData, SpanExporter},
1010
};
1111
#[cfg(not(target_os = "windows"))]
1212
use pprof::criterion::{Output, PProfProfiler};

opentelemetry-sdk/benches/trace.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use opentelemetry::{
55
KeyValue,
66
};
77
use opentelemetry_sdk::{
8-
export::trace::{ExportResult, SpanData, SpanExporter},
98
trace as sdktrace,
9+
trace::{ExportResult, SpanData, SpanExporter},
1010
};
1111
#[cfg(not(target_os = "windows"))]
1212
use pprof::criterion::{Output, PProfProfiler};

opentelemetry-sdk/src/error.rs

+6
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,9 @@ impl<T> From<PoisonError<T>> for Error {
4444
Error::Other(err.to_string())
4545
}
4646
}
47+
48+
/// Trait for errors returned by exporters
49+
pub trait ExportError: std::error::Error + Send + Sync + 'static {
50+
/// The name of exporter that returned this error
51+
fn exporter_name(&self) -> &'static str;
52+
}

opentelemetry-sdk/src/export/mod.rs

-11
This file was deleted.

opentelemetry-sdk/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
//!
1717
//! fn main() {
1818
//! // Choose an exporter like `opentelemetry_stdout::SpanExporter`
19-
//! # fn example<T: opentelemetry_sdk::export::trace::SpanExporter + 'static>(new_exporter: impl Fn() -> T) {
19+
//! # fn example<T: opentelemetry_sdk::trace::SpanExporter + 'static>(new_exporter: impl Fn() -> T) {
2020
//! let exporter = new_exporter();
2121
//!
2222
//! // Create a new trace pipeline that prints to stdout
@@ -118,7 +118,6 @@
118118
)]
119119
#![cfg_attr(test, deny(warnings))]
120120

121-
pub mod export;
122121
pub(crate) mod growable_array;
123122

124123
#[cfg(feature = "logs")]
@@ -149,3 +148,4 @@ pub mod util;
149148
pub use resource::Resource;
150149

151150
pub mod error;
151+
pub use error::ExportError;

opentelemetry-sdk/src/logs/error.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::export::ExportError;
1+
use crate::ExportError;
22

33
use std::{sync::PoisonError, time::Duration};
44
use thiserror::Error;

opentelemetry-sdk/src/metrics/error.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::result;
22
use std::sync::PoisonError;
33
use thiserror::Error;
44

5-
use crate::export::ExportError;
5+
use crate::ExportError;
66

77
/// A specialized `Result` type for metric operations.
88
pub type MetricResult<T> = result::Result<T, MetricError>;

opentelemetry-sdk/src/testing/trace/in_memory_exporter.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use crate::export::trace::{ExportResult, SpanData, SpanExporter};
21
use crate::resource::Resource;
2+
use crate::trace::{ExportResult, SpanData, SpanExporter};
33
use futures_util::future::BoxFuture;
44
use opentelemetry::trace::{TraceError, TraceResult};
55
use std::sync::{Arc, Mutex};

opentelemetry-sdk/src/testing/trace/span_exporters.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::{
2-
export::trace::{ExportResult, SpanData, SpanExporter},
2+
trace::{ExportResult, SpanData, SpanExporter},
33
trace::{SpanEvents, SpanLinks},
44
};
55
use futures_util::future::BoxFuture;
@@ -98,7 +98,7 @@ impl<T> From<tokio::sync::mpsc::error::SendError<T>> for TestExportError {
9898

9999
/// A no-op instance of an [`SpanExporter`].
100100
///
101-
/// [`SpanExporter`]: crate::export::trace::SpanExporter
101+
/// [`SpanExporter`]: crate::trace::SpanExporter
102102
#[derive(Debug, Default)]
103103
pub struct NoopSpanExporter {
104104
_private: (),
File renamed without changes.

opentelemetry-sdk/src/trace/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
//! * The [`TracerProvider`] struct which configures and produces [`Tracer`]s.
99
mod config;
1010
mod events;
11+
mod export;
1112
mod id_generator;
1213
mod links;
1314
mod provider;
@@ -22,6 +23,7 @@ mod tracer;
2223

2324
pub use config::{config, Config};
2425
pub use events::SpanEvents;
26+
pub use export::{ExportResult, SpanData, SpanExporter};
2527

2628
pub use id_generator::{IdGenerator, RandomIdGenerator};
2729
pub use links::SpanLinks;

opentelemetry-sdk/src/trace/provider.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ use crate::trace::{
6666
BatchSpanProcessor, Config, RandomIdGenerator, Sampler, SimpleSpanProcessor, SpanLimits, Tracer,
6767
};
6868
use crate::Resource;
69-
use crate::{export::trace::SpanExporter, trace::SpanProcessor};
69+
use crate::{trace::SpanExporter, trace::SpanProcessor};
7070
use opentelemetry::trace::TraceError;
7171
use opentelemetry::{otel_debug, trace::TraceResult};
7272
use opentelemetry::{otel_info, InstrumentationScope};
@@ -443,11 +443,11 @@ impl Builder {
443443

444444
#[cfg(test)]
445445
mod tests {
446-
use crate::export::trace::SpanData;
447446
use crate::resource::{
448447
SERVICE_NAME, TELEMETRY_SDK_LANGUAGE, TELEMETRY_SDK_NAME, TELEMETRY_SDK_VERSION,
449448
};
450449
use crate::trace::provider::TracerProviderInner;
450+
use crate::trace::SpanData;
451451
use crate::trace::{Config, Span, SpanProcessor};
452452
use crate::Resource;
453453
use opentelemetry::trace::{TraceError, TraceResult, Tracer, TracerProvider};

opentelemetry-sdk/src/trace/runtime_tests.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
// need to run those tests one by one as the GlobalTracerProvider is a shared object between
33
// threads Use cargo test -- --ignored --test-threads=1 to run those tests.
44
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
5-
use crate::export::trace::{ExportResult, SpanExporter};
6-
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
75
use crate::runtime;
86
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
97
use crate::runtime::RuntimeChannel;
108
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
9+
use crate::trace::{ExportResult, SpanExporter};
10+
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
1111
use futures_util::future::BoxFuture;
1212
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
1313
use opentelemetry::global::*;
@@ -28,10 +28,7 @@ struct SpanCountExporter {
2828

2929
#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))]
3030
impl SpanExporter for SpanCountExporter {
31-
fn export(
32-
&mut self,
33-
batch: Vec<crate::export::trace::SpanData>,
34-
) -> BoxFuture<'static, ExportResult> {
31+
fn export(&mut self, batch: Vec<crate::trace::SpanData>) -> BoxFuture<'static, ExportResult> {
3532
self.span_count.fetch_add(batch.len(), Ordering::SeqCst);
3633
Box::pin(async { Ok(()) })
3734
}

opentelemetry-sdk/src/trace/sampler.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ use opentelemetry_http::HttpClient;
5757
/// [OpenTelemetry SDK]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#sampling
5858
/// [`SpanContext`]: opentelemetry::trace::SpanContext
5959
/// [`SpanContext::trace_flags()`]: opentelemetry::trace::SpanContext#method.trace_flags
60-
/// [`SpanExporter`]: crate::export::trace::SpanExporter
60+
/// [`SpanExporter`]: crate::trace::SpanExporter
6161
/// [`SpanProcessor`]: crate::trace::SpanProcessor
6262
/// [`Span`]: opentelemetry::trace::Span
6363
/// [`Span::is_recording()`]: opentelemetry::trace::Span#tymethod.is_recording

opentelemetry-sdk/src/trace/span.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ impl Span {
7474
/// Convert information in this span into `exporter::trace::SpanData`.
7575
/// This function copies all data from the current span, which will create a
7676
/// overhead.
77-
pub fn exported_data(&self) -> Option<crate::export::trace::SpanData> {
77+
pub fn exported_data(&self) -> Option<crate::trace::SpanData> {
7878
let (span_context, tracer) = (self.span_context.clone(), &self.tracer);
7979

8080
self.data
@@ -250,8 +250,8 @@ fn build_export_data(
250250
data: SpanData,
251251
span_context: SpanContext,
252252
tracer: &crate::trace::Tracer,
253-
) -> crate::export::trace::SpanData {
254-
crate::export::trace::SpanData {
253+
) -> crate::trace::SpanData {
254+
crate::trace::SpanData {
255255
span_context,
256256
parent_span_id: data.parent_span_id,
257257
span_kind: data.span_kind,

opentelemetry-sdk/src/trace/span_processor.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
//! [`is_recording`]: opentelemetry::trace::Span::is_recording()
3535
//! [`TracerProvider`]: opentelemetry::trace::TracerProvider
3636
37-
use crate::export::trace::{SpanData, SpanExporter};
3837
use crate::resource::Resource;
3938
use crate::trace::Span;
39+
use crate::trace::{SpanData, SpanExporter};
4040
use opentelemetry::{otel_debug, otel_warn};
4141
use opentelemetry::{otel_error, otel_info};
4242
use opentelemetry::{
@@ -175,7 +175,7 @@ impl SpanProcessor for SimpleSpanProcessor {
175175
}
176176
}
177177

178-
use crate::export::trace::ExportResult;
178+
use crate::trace::ExportResult;
179179
/// The `BatchSpanProcessor` collects finished spans in a buffer and exports them
180180
/// in batches to the configured `SpanExporter`. This processor is ideal for
181181
/// high-throughput environments, as it minimizes the overhead of exporting spans
@@ -814,13 +814,13 @@ mod tests {
814814
OTEL_BSP_MAX_EXPORT_BATCH_SIZE, OTEL_BSP_MAX_QUEUE_SIZE, OTEL_BSP_MAX_QUEUE_SIZE_DEFAULT,
815815
OTEL_BSP_SCHEDULE_DELAY, OTEL_BSP_SCHEDULE_DELAY_DEFAULT,
816816
};
817-
use crate::export::trace::{ExportResult, SpanData, SpanExporter};
818817
use crate::testing::trace::{new_test_export_span_data, InMemorySpanExporterBuilder};
819818
use crate::trace::span_processor::{
820819
OTEL_BSP_EXPORT_TIMEOUT_DEFAULT, OTEL_BSP_MAX_CONCURRENT_EXPORTS,
821820
OTEL_BSP_MAX_CONCURRENT_EXPORTS_DEFAULT, OTEL_BSP_MAX_EXPORT_BATCH_SIZE_DEFAULT,
822821
};
823822
use crate::trace::{BatchConfig, BatchConfigBuilder, SpanEvents, SpanLinks};
823+
use crate::trace::{ExportResult, SpanData, SpanExporter};
824824
use opentelemetry::trace::{SpanContext, SpanId, SpanKind, Status};
825825
use std::fmt::Debug;
826826
use std::time::Duration;

0 commit comments

Comments
 (0)