From a0e50615cda523fd2d1542a43ec5a3eaeb792568 Mon Sep 17 00:00:00 2001 From: Utkarsh Umesan Pillai <66651184+utpilla@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:24:42 -0800 Subject: [PATCH 1/3] Update documentation for Metrics API (#2280) Co-authored-by: Cijo Thomas Co-authored-by: Zhongyang Wu --- opentelemetry/src/global/metrics.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/opentelemetry/src/global/metrics.rs b/opentelemetry/src/global/metrics.rs index 457bc662a6..19ead8ac40 100644 --- a/opentelemetry/src/global/metrics.rs +++ b/opentelemetry/src/global/metrics.rs @@ -15,6 +15,8 @@ fn global_meter_provider() -> &'static RwLock { /// Sets the given [`MeterProvider`] instance as the current global meter /// provider. +/// +/// **NOTE:** This function should be called before getting [`Meter`] instances via [`meter()`] or [`meter_with_scope()`]. Otherwise, you could get no-op [`Meter`] instances. pub fn set_meter_provider

(new_provider: P) where P: metrics::MeterProvider + Send + Sync + 'static, @@ -44,6 +46,9 @@ pub fn meter_provider() -> GlobalMeterProvider { /// Creates a named [`Meter`] via the currently configured global [`MeterProvider`]. /// /// This is a more convenient way of expressing `global::meter_provider().meter(name)`. +/// +/// **NOTE:** Calls to [`meter()`] return a [`Meter`] backed by the global [`MeterProvider`] configured during the method invocation. +/// If the global [`MeterProvider`] is changed after getting [`Meter`] instances from these calls, the [`Meter`] instances returned will not reflect the change. pub fn meter(name: &'static str) -> Meter { meter_provider().meter(name) } @@ -52,6 +57,9 @@ pub fn meter(name: &'static str) -> Meter { /// /// This is a simpler alternative to `global::meter_provider().meter_with_scope(...)` /// +/// **NOTE:** Calls to [`meter_with_scope()`] return a [`Meter`] backed by the global [`MeterProvider`] configured during the method invocation. +/// If the global [`MeterProvider`] is changed after getting [`Meter`] instances from these calls, the [`Meter`] instances returned will not reflect the change. +/// /// # Example /// /// ``` From 5935ccac9379c71202eb162b12d153b228c647ce Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Thu, 23 Jan 2025 11:34:10 -0800 Subject: [PATCH 2/3] Move span exporter module (#2540) --- opentelemetry-otlp/src/exporter/http/mod.rs | 4 ++-- opentelemetry-otlp/src/exporter/http/trace.rs | 2 +- opentelemetry-otlp/src/exporter/tonic/trace.rs | 2 +- opentelemetry-otlp/src/lib.rs | 2 +- opentelemetry-otlp/src/span.rs | 8 ++++---- opentelemetry-proto/src/transform/trace.rs | 8 ++++---- opentelemetry-proto/src/transform/tracez.rs | 2 +- opentelemetry-sdk/CHANGELOG.md | 7 +++++++ opentelemetry-sdk/benches/batch_span_processor.rs | 2 +- opentelemetry-sdk/benches/context.rs | 2 +- opentelemetry-sdk/benches/span_builder.rs | 2 +- opentelemetry-sdk/benches/trace.rs | 2 +- opentelemetry-sdk/src/error.rs | 6 ++++++ opentelemetry-sdk/src/export/mod.rs | 11 ----------- opentelemetry-sdk/src/lib.rs | 4 ++-- opentelemetry-sdk/src/logs/error.rs | 2 +- opentelemetry-sdk/src/metrics/error.rs | 2 +- .../src/testing/trace/in_memory_exporter.rs | 2 +- opentelemetry-sdk/src/testing/trace/span_exporters.rs | 4 ++-- .../src/{export/trace.rs => trace/export.rs} | 0 opentelemetry-sdk/src/trace/mod.rs | 2 ++ opentelemetry-sdk/src/trace/provider.rs | 4 ++-- opentelemetry-sdk/src/trace/runtime_tests.rs | 9 +++------ opentelemetry-sdk/src/trace/sampler.rs | 2 +- opentelemetry-sdk/src/trace/span.rs | 6 +++--- opentelemetry-sdk/src/trace/span_processor.rs | 6 +++--- .../src/trace/span_processor_with_async_runtime.rs | 4 ++-- opentelemetry-stdout/src/trace/exporter.rs | 8 ++++---- opentelemetry-zipkin/src/exporter/mod.rs | 4 ++-- opentelemetry-zipkin/src/exporter/model/mod.rs | 2 +- opentelemetry-zipkin/src/exporter/model/span.rs | 2 +- opentelemetry-zipkin/src/exporter/uploader.rs | 2 +- opentelemetry-zipkin/src/lib.rs | 2 +- stress/src/traces.rs | 2 +- 34 files changed, 65 insertions(+), 64 deletions(-) delete mode 100644 opentelemetry-sdk/src/export/mod.rs rename opentelemetry-sdk/src/{export/trace.rs => trace/export.rs} (100%) diff --git a/opentelemetry-otlp/src/exporter/http/mod.rs b/opentelemetry-otlp/src/exporter/http/mod.rs index 38dc978a29..07a70bf57d 100644 --- a/opentelemetry-otlp/src/exporter/http/mod.rs +++ b/opentelemetry-otlp/src/exporter/http/mod.rs @@ -13,10 +13,10 @@ use opentelemetry_proto::transform::common::tonic::ResourceAttributesWithSchema; use opentelemetry_proto::transform::logs::tonic::group_logs_by_resource_and_scope; #[cfg(feature = "trace")] use opentelemetry_proto::transform::trace::tonic::group_spans_by_resource_and_scope; -#[cfg(feature = "trace")] -use opentelemetry_sdk::export::trace::SpanData; #[cfg(feature = "logs")] use opentelemetry_sdk::logs::LogBatch; +#[cfg(feature = "trace")] +use opentelemetry_sdk::trace::SpanData; use prost::Message; use std::collections::HashMap; use std::env; diff --git a/opentelemetry-otlp/src/exporter/http/trace.rs b/opentelemetry-otlp/src/exporter/http/trace.rs index d188dc8911..cf3411e2e0 100644 --- a/opentelemetry-otlp/src/exporter/http/trace.rs +++ b/opentelemetry-otlp/src/exporter/http/trace.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use futures_core::future::BoxFuture; use http::{header::CONTENT_TYPE, Method}; use opentelemetry::{otel_debug, trace::TraceError}; -use opentelemetry_sdk::export::trace::{ExportResult, SpanData, SpanExporter}; +use opentelemetry_sdk::trace::{ExportResult, SpanData, SpanExporter}; use super::OtlpHttpClient; diff --git a/opentelemetry-otlp/src/exporter/tonic/trace.rs b/opentelemetry-otlp/src/exporter/tonic/trace.rs index 998acafad5..fb72cccf4e 100644 --- a/opentelemetry-otlp/src/exporter/tonic/trace.rs +++ b/opentelemetry-otlp/src/exporter/tonic/trace.rs @@ -5,7 +5,7 @@ use opentelemetry::{otel_debug, trace::TraceError}; use opentelemetry_proto::tonic::collector::trace::v1::{ trace_service_client::TraceServiceClient, ExportTraceServiceRequest, }; -use opentelemetry_sdk::export::trace::{ExportResult, SpanData, SpanExporter}; +use opentelemetry_sdk::trace::{ExportResult, SpanData, SpanExporter}; use tonic::{codegen::CompressionEncoding, service::Interceptor, transport::Channel, Request}; use opentelemetry_proto::transform::trace::tonic::group_spans_by_resource_and_scope; diff --git a/opentelemetry-otlp/src/lib.rs b/opentelemetry-otlp/src/lib.rs index 3e02ef16a8..88ca08f970 100644 --- a/opentelemetry-otlp/src/lib.rs +++ b/opentelemetry-otlp/src/lib.rs @@ -262,7 +262,7 @@ pub use crate::exporter::{ OTEL_EXPORTER_OTLP_TIMEOUT_DEFAULT, }; -use opentelemetry_sdk::export::ExportError; +use opentelemetry_sdk::ExportError; /// Type to indicate the builder does not have a client set. #[derive(Debug, Default, Clone)] diff --git a/opentelemetry-otlp/src/span.rs b/opentelemetry-otlp/src/span.rs index 190e3fdfce..b8c013f5d4 100644 --- a/opentelemetry-otlp/src/span.rs +++ b/opentelemetry-otlp/src/span.rs @@ -5,7 +5,7 @@ use std::fmt::Debug; use futures_core::future::BoxFuture; -use opentelemetry_sdk::export::trace::{ExportResult, SpanData}; +use opentelemetry_sdk::trace::{ExportResult, SpanData}; #[cfg(feature = "grpc-tonic")] use crate::{ @@ -107,7 +107,7 @@ impl HasHttpConfig for SpanExporterBuilder { /// OTLP exporter that sends tracing information #[derive(Debug)] -pub struct SpanExporter(Box); +pub struct SpanExporter(Box); impl SpanExporter { /// Obtain a builder to configure a [SpanExporter]. @@ -116,12 +116,12 @@ impl SpanExporter { } /// Build a new span exporter from a client - pub fn new(client: impl opentelemetry_sdk::export::trace::SpanExporter + 'static) -> Self { + pub fn new(client: impl opentelemetry_sdk::trace::SpanExporter + 'static) -> Self { SpanExporter(Box::new(client)) } } -impl opentelemetry_sdk::export::trace::SpanExporter for SpanExporter { +impl opentelemetry_sdk::trace::SpanExporter for SpanExporter { fn export(&mut self, batch: Vec) -> BoxFuture<'static, ExportResult> { self.0.export(batch) } diff --git a/opentelemetry-proto/src/transform/trace.rs b/opentelemetry-proto/src/transform/trace.rs index 8806af41c9..ab70bedd1e 100644 --- a/opentelemetry-proto/src/transform/trace.rs +++ b/opentelemetry-proto/src/transform/trace.rs @@ -8,7 +8,7 @@ pub mod tonic { }; use opentelemetry::trace; use opentelemetry::trace::{Link, SpanId, SpanKind}; - use opentelemetry_sdk::export::trace::SpanData; + use opentelemetry_sdk::trace::SpanData; use std::collections::HashMap; impl From for span::SpanKind { @@ -45,8 +45,8 @@ pub mod tonic { } } } - impl From for Span { - fn from(source_span: opentelemetry_sdk::export::trace::SpanData) -> Self { + impl From for Span { + fn from(source_span: opentelemetry_sdk::trace::SpanData) -> Self { let span_kind: span::SpanKind = source_span.span_kind.into(); Span { trace_id: source_span.span_context.trace_id().to_bytes().to_vec(), @@ -198,8 +198,8 @@ mod tests { }; use opentelemetry::InstrumentationScope; use opentelemetry::KeyValue; - use opentelemetry_sdk::export::trace::SpanData; use opentelemetry_sdk::resource::Resource; + use opentelemetry_sdk::trace::SpanData; use opentelemetry_sdk::trace::{SpanEvents, SpanLinks}; use std::borrow::Cow; use std::time::{Duration, SystemTime}; diff --git a/opentelemetry-proto/src/transform/tracez.rs b/opentelemetry-proto/src/transform/tracez.rs index 525064efc9..3147a82cbb 100644 --- a/opentelemetry-proto/src/transform/tracez.rs +++ b/opentelemetry-proto/src/transform/tracez.rs @@ -1,7 +1,7 @@ #[cfg(all(feature = "gen-tonic-messages", feature = "zpages"))] mod tonic { use opentelemetry::trace::{Event, Status}; - use opentelemetry_sdk::export::trace::SpanData; + use opentelemetry_sdk::trace::SpanData; use crate::proto::tonic::{ trace::v1::{span::Event as SpanEvent, Status as SpanStatus}, diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index dff61dddaa..45a4ff63e8 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -268,6 +268,13 @@ hardcoded limit of 2000 and no ability to change it. This feature will be re-introduced in a future date, along with the ability to change the cardinality limit. +- *Breaking* (Affects custom Exporter authors only) Moved `ExportError` trait from `opentelemetry::export::ExportError` to `opentelemetry_sdk::ExportError` +- *Breaking (Affects custom SpanExporter, SpanProcessor authors only)*: Rename namespaces + before: + `opentelemetry_sdk::export::spans::{ExportResult, SpanData, SpanExporter};` + now: + `opentelemetry_sdk::logs::{ExportResult, SpanData, SpanExporter};` + - *Breaking (Affects custom LogExporter, LogProcessor authors only)*: Rename namespaces before: `opentelemetry_sdk::export::logs::{ExportResult, LogBatch, LogExporter};` diff --git a/opentelemetry-sdk/benches/batch_span_processor.rs b/opentelemetry-sdk/benches/batch_span_processor.rs index d57ef26157..7cd9ff5c1c 100644 --- a/opentelemetry-sdk/benches/batch_span_processor.rs +++ b/opentelemetry-sdk/benches/batch_span_processor.rs @@ -2,8 +2,8 @@ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; use opentelemetry::trace::{ SpanContext, SpanId, SpanKind, Status, TraceFlags, TraceId, TraceState, }; -use opentelemetry_sdk::export::trace::SpanData; use opentelemetry_sdk::testing::trace::NoopSpanExporter; +use opentelemetry_sdk::trace::SpanData; use opentelemetry_sdk::trace::{ BatchConfigBuilder, BatchSpanProcessor, SpanEvents, SpanLinks, SpanProcessor, }; diff --git a/opentelemetry-sdk/benches/context.rs b/opentelemetry-sdk/benches/context.rs index 87f49942a6..8a9108639a 100644 --- a/opentelemetry-sdk/benches/context.rs +++ b/opentelemetry-sdk/benches/context.rs @@ -9,7 +9,7 @@ use opentelemetry::{ Context, ContextGuard, }; use opentelemetry_sdk::{ - export::trace::{ExportResult, SpanData, SpanExporter}, + trace::{ExportResult, SpanData, SpanExporter}, trace::{Sampler, TracerProvider}, }; #[cfg(not(target_os = "windows"))] diff --git a/opentelemetry-sdk/benches/span_builder.rs b/opentelemetry-sdk/benches/span_builder.rs index 6f0c828b07..7f78b738f9 100644 --- a/opentelemetry-sdk/benches/span_builder.rs +++ b/opentelemetry-sdk/benches/span_builder.rs @@ -5,8 +5,8 @@ use opentelemetry::{ KeyValue, }; use opentelemetry_sdk::{ - export::trace::{ExportResult, SpanData, SpanExporter}, trace as sdktrace, + trace::{ExportResult, SpanData, SpanExporter}, }; #[cfg(not(target_os = "windows"))] use pprof::criterion::{Output, PProfProfiler}; diff --git a/opentelemetry-sdk/benches/trace.rs b/opentelemetry-sdk/benches/trace.rs index 36f6acec4a..bdbd4a5ee3 100644 --- a/opentelemetry-sdk/benches/trace.rs +++ b/opentelemetry-sdk/benches/trace.rs @@ -5,8 +5,8 @@ use opentelemetry::{ KeyValue, }; use opentelemetry_sdk::{ - export::trace::{ExportResult, SpanData, SpanExporter}, trace as sdktrace, + trace::{ExportResult, SpanData, SpanExporter}, }; #[cfg(not(target_os = "windows"))] use pprof::criterion::{Output, PProfProfiler}; diff --git a/opentelemetry-sdk/src/error.rs b/opentelemetry-sdk/src/error.rs index 115da17b78..d656e59469 100644 --- a/opentelemetry-sdk/src/error.rs +++ b/opentelemetry-sdk/src/error.rs @@ -44,3 +44,9 @@ impl From> for Error { Error::Other(err.to_string()) } } + +/// Trait for errors returned by exporters +pub trait ExportError: std::error::Error + Send + Sync + 'static { + /// The name of exporter that returned this error + fn exporter_name(&self) -> &'static str; +} diff --git a/opentelemetry-sdk/src/export/mod.rs b/opentelemetry-sdk/src/export/mod.rs deleted file mode 100644 index 92f111c4e4..0000000000 --- a/opentelemetry-sdk/src/export/mod.rs +++ /dev/null @@ -1,11 +0,0 @@ -//! Telemetry Export - -#[cfg(feature = "trace")] -#[cfg_attr(docsrs, doc(cfg(feature = "trace")))] -pub mod trace; - -/// Trait for errors returned by exporters -pub trait ExportError: std::error::Error + Send + Sync + 'static { - /// The name of exporter that returned this error - fn exporter_name(&self) -> &'static str; -} diff --git a/opentelemetry-sdk/src/lib.rs b/opentelemetry-sdk/src/lib.rs index 3425dd17a3..bc57acff9f 100644 --- a/opentelemetry-sdk/src/lib.rs +++ b/opentelemetry-sdk/src/lib.rs @@ -16,7 +16,7 @@ //! //! fn main() { //! // Choose an exporter like `opentelemetry_stdout::SpanExporter` -//! # fn example(new_exporter: impl Fn() -> T) { +//! # fn example(new_exporter: impl Fn() -> T) { //! let exporter = new_exporter(); //! //! // Create a new trace pipeline that prints to stdout @@ -118,7 +118,6 @@ )] #![cfg_attr(test, deny(warnings))] -pub mod export; pub(crate) mod growable_array; #[cfg(feature = "logs")] @@ -149,3 +148,4 @@ pub mod util; pub use resource::Resource; pub mod error; +pub use error::ExportError; diff --git a/opentelemetry-sdk/src/logs/error.rs b/opentelemetry-sdk/src/logs/error.rs index 4f33ba6dbf..d9b1b42157 100644 --- a/opentelemetry-sdk/src/logs/error.rs +++ b/opentelemetry-sdk/src/logs/error.rs @@ -1,4 +1,4 @@ -use crate::export::ExportError; +use crate::ExportError; use std::{sync::PoisonError, time::Duration}; use thiserror::Error; diff --git a/opentelemetry-sdk/src/metrics/error.rs b/opentelemetry-sdk/src/metrics/error.rs index cb8afcab0e..9bf9e1d99d 100644 --- a/opentelemetry-sdk/src/metrics/error.rs +++ b/opentelemetry-sdk/src/metrics/error.rs @@ -2,7 +2,7 @@ use std::result; use std::sync::PoisonError; use thiserror::Error; -use crate::export::ExportError; +use crate::ExportError; /// A specialized `Result` type for metric operations. pub type MetricResult = result::Result; diff --git a/opentelemetry-sdk/src/testing/trace/in_memory_exporter.rs b/opentelemetry-sdk/src/testing/trace/in_memory_exporter.rs index 3645d9f6c2..8b7b1a5572 100644 --- a/opentelemetry-sdk/src/testing/trace/in_memory_exporter.rs +++ b/opentelemetry-sdk/src/testing/trace/in_memory_exporter.rs @@ -1,5 +1,5 @@ -use crate::export::trace::{ExportResult, SpanData, SpanExporter}; use crate::resource::Resource; +use crate::trace::{ExportResult, SpanData, SpanExporter}; use futures_util::future::BoxFuture; use opentelemetry::trace::{TraceError, TraceResult}; use std::sync::{Arc, Mutex}; diff --git a/opentelemetry-sdk/src/testing/trace/span_exporters.rs b/opentelemetry-sdk/src/testing/trace/span_exporters.rs index e9996e3fc8..4a90e4def4 100644 --- a/opentelemetry-sdk/src/testing/trace/span_exporters.rs +++ b/opentelemetry-sdk/src/testing/trace/span_exporters.rs @@ -1,5 +1,5 @@ use crate::{ - export::trace::{ExportResult, SpanData, SpanExporter}, + trace::{ExportResult, SpanData, SpanExporter}, trace::{SpanEvents, SpanLinks}, }; use futures_util::future::BoxFuture; @@ -98,7 +98,7 @@ impl From> for TestExportError { /// A no-op instance of an [`SpanExporter`]. /// -/// [`SpanExporter`]: crate::export::trace::SpanExporter +/// [`SpanExporter`]: crate::trace::SpanExporter #[derive(Debug, Default)] pub struct NoopSpanExporter { _private: (), diff --git a/opentelemetry-sdk/src/export/trace.rs b/opentelemetry-sdk/src/trace/export.rs similarity index 100% rename from opentelemetry-sdk/src/export/trace.rs rename to opentelemetry-sdk/src/trace/export.rs diff --git a/opentelemetry-sdk/src/trace/mod.rs b/opentelemetry-sdk/src/trace/mod.rs index e714364a85..fe5c99d7b8 100644 --- a/opentelemetry-sdk/src/trace/mod.rs +++ b/opentelemetry-sdk/src/trace/mod.rs @@ -8,6 +8,7 @@ //! * The [`TracerProvider`] struct which configures and produces [`Tracer`]s. mod config; mod events; +mod export; mod id_generator; mod links; mod provider; @@ -22,6 +23,7 @@ mod tracer; pub use config::{config, Config}; pub use events::SpanEvents; +pub use export::{ExportResult, SpanData, SpanExporter}; pub use id_generator::{IdGenerator, RandomIdGenerator}; pub use links::SpanLinks; diff --git a/opentelemetry-sdk/src/trace/provider.rs b/opentelemetry-sdk/src/trace/provider.rs index 43761c5107..449bc81349 100644 --- a/opentelemetry-sdk/src/trace/provider.rs +++ b/opentelemetry-sdk/src/trace/provider.rs @@ -66,7 +66,7 @@ use crate::trace::{ BatchSpanProcessor, Config, RandomIdGenerator, Sampler, SimpleSpanProcessor, SpanLimits, Tracer, }; use crate::Resource; -use crate::{export::trace::SpanExporter, trace::SpanProcessor}; +use crate::{trace::SpanExporter, trace::SpanProcessor}; use opentelemetry::trace::TraceError; use opentelemetry::{otel_debug, trace::TraceResult}; use opentelemetry::{otel_info, InstrumentationScope}; @@ -443,11 +443,11 @@ impl Builder { #[cfg(test)] mod tests { - use crate::export::trace::SpanData; use crate::resource::{ SERVICE_NAME, TELEMETRY_SDK_LANGUAGE, TELEMETRY_SDK_NAME, TELEMETRY_SDK_VERSION, }; use crate::trace::provider::TracerProviderInner; + use crate::trace::SpanData; use crate::trace::{Config, Span, SpanProcessor}; use crate::Resource; use opentelemetry::trace::{TraceError, TraceResult, Tracer, TracerProvider}; diff --git a/opentelemetry-sdk/src/trace/runtime_tests.rs b/opentelemetry-sdk/src/trace/runtime_tests.rs index ed1a8325d1..02273fcb68 100644 --- a/opentelemetry-sdk/src/trace/runtime_tests.rs +++ b/opentelemetry-sdk/src/trace/runtime_tests.rs @@ -2,12 +2,12 @@ // need to run those tests one by one as the GlobalTracerProvider is a shared object between // threads Use cargo test -- --ignored --test-threads=1 to run those tests. #[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] -use crate::export::trace::{ExportResult, SpanExporter}; -#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] use crate::runtime; #[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] use crate::runtime::RuntimeChannel; #[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] +use crate::trace::{ExportResult, SpanExporter}; +#[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] use futures_util::future::BoxFuture; #[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] use opentelemetry::global::*; @@ -28,10 +28,7 @@ struct SpanCountExporter { #[cfg(any(feature = "rt-tokio", feature = "rt-tokio-current-thread"))] impl SpanExporter for SpanCountExporter { - fn export( - &mut self, - batch: Vec, - ) -> BoxFuture<'static, ExportResult> { + fn export(&mut self, batch: Vec) -> BoxFuture<'static, ExportResult> { self.span_count.fetch_add(batch.len(), Ordering::SeqCst); Box::pin(async { Ok(()) }) } diff --git a/opentelemetry-sdk/src/trace/sampler.rs b/opentelemetry-sdk/src/trace/sampler.rs index 572a17b554..55b5838a0e 100644 --- a/opentelemetry-sdk/src/trace/sampler.rs +++ b/opentelemetry-sdk/src/trace/sampler.rs @@ -57,7 +57,7 @@ use opentelemetry_http::HttpClient; /// [OpenTelemetry SDK]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#sampling /// [`SpanContext`]: opentelemetry::trace::SpanContext /// [`SpanContext::trace_flags()`]: opentelemetry::trace::SpanContext#method.trace_flags -/// [`SpanExporter`]: crate::export::trace::SpanExporter +/// [`SpanExporter`]: crate::trace::SpanExporter /// [`SpanProcessor`]: crate::trace::SpanProcessor /// [`Span`]: opentelemetry::trace::Span /// [`Span::is_recording()`]: opentelemetry::trace::Span#tymethod.is_recording diff --git a/opentelemetry-sdk/src/trace/span.rs b/opentelemetry-sdk/src/trace/span.rs index 25a5df0da1..77d3d9b588 100644 --- a/opentelemetry-sdk/src/trace/span.rs +++ b/opentelemetry-sdk/src/trace/span.rs @@ -74,7 +74,7 @@ impl Span { /// Convert information in this span into `exporter::trace::SpanData`. /// This function copies all data from the current span, which will create a /// overhead. - pub fn exported_data(&self) -> Option { + pub fn exported_data(&self) -> Option { let (span_context, tracer) = (self.span_context.clone(), &self.tracer); self.data @@ -250,8 +250,8 @@ fn build_export_data( data: SpanData, span_context: SpanContext, tracer: &crate::trace::Tracer, -) -> crate::export::trace::SpanData { - crate::export::trace::SpanData { +) -> crate::trace::SpanData { + crate::trace::SpanData { span_context, parent_span_id: data.parent_span_id, span_kind: data.span_kind, diff --git a/opentelemetry-sdk/src/trace/span_processor.rs b/opentelemetry-sdk/src/trace/span_processor.rs index f41ddd178e..e95661e780 100644 --- a/opentelemetry-sdk/src/trace/span_processor.rs +++ b/opentelemetry-sdk/src/trace/span_processor.rs @@ -34,9 +34,9 @@ //! [`is_recording`]: opentelemetry::trace::Span::is_recording() //! [`TracerProvider`]: opentelemetry::trace::TracerProvider -use crate::export::trace::{SpanData, SpanExporter}; use crate::resource::Resource; use crate::trace::Span; +use crate::trace::{SpanData, SpanExporter}; use opentelemetry::{otel_debug, otel_warn}; use opentelemetry::{otel_error, otel_info}; use opentelemetry::{ @@ -175,7 +175,7 @@ impl SpanProcessor for SimpleSpanProcessor { } } -use crate::export::trace::ExportResult; +use crate::trace::ExportResult; /// The `BatchSpanProcessor` collects finished spans in a buffer and exports them /// in batches to the configured `SpanExporter`. This processor is ideal for /// high-throughput environments, as it minimizes the overhead of exporting spans @@ -814,13 +814,13 @@ mod tests { OTEL_BSP_MAX_EXPORT_BATCH_SIZE, OTEL_BSP_MAX_QUEUE_SIZE, OTEL_BSP_MAX_QUEUE_SIZE_DEFAULT, OTEL_BSP_SCHEDULE_DELAY, OTEL_BSP_SCHEDULE_DELAY_DEFAULT, }; - use crate::export::trace::{ExportResult, SpanData, SpanExporter}; use crate::testing::trace::{new_test_export_span_data, InMemorySpanExporterBuilder}; use crate::trace::span_processor::{ OTEL_BSP_EXPORT_TIMEOUT_DEFAULT, OTEL_BSP_MAX_CONCURRENT_EXPORTS, OTEL_BSP_MAX_CONCURRENT_EXPORTS_DEFAULT, OTEL_BSP_MAX_EXPORT_BATCH_SIZE_DEFAULT, }; use crate::trace::{BatchConfig, BatchConfigBuilder, SpanEvents, SpanLinks}; + use crate::trace::{ExportResult, SpanData, SpanExporter}; use opentelemetry::trace::{SpanContext, SpanId, SpanKind, Status}; use std::fmt::Debug; use std::time::Duration; diff --git a/opentelemetry-sdk/src/trace/span_processor_with_async_runtime.rs b/opentelemetry-sdk/src/trace/span_processor_with_async_runtime.rs index c3c241c776..8ba50d578f 100644 --- a/opentelemetry-sdk/src/trace/span_processor_with_async_runtime.rs +++ b/opentelemetry-sdk/src/trace/span_processor_with_async_runtime.rs @@ -1,9 +1,9 @@ -use crate::export::trace::{ExportResult, SpanData, SpanExporter}; use crate::resource::Resource; use crate::runtime::{RuntimeChannel, TrySend}; use crate::trace::BatchConfig; use crate::trace::Span; use crate::trace::SpanProcessor; +use crate::trace::{ExportResult, SpanData, SpanExporter}; use futures_channel::oneshot; use futures_util::{ future::{self, BoxFuture, Either}, @@ -420,7 +420,6 @@ where mod tests { // cargo test trace::span_processor::tests:: --features=testing use super::{BatchSpanProcessor, SpanProcessor}; - use crate::export::trace::{ExportResult, SpanData, SpanExporter}; use crate::runtime; use crate::testing::trace::{ new_test_export_span_data, new_tokio_test_exporter, InMemorySpanExporterBuilder, @@ -430,6 +429,7 @@ mod tests { OTEL_BSP_MAX_QUEUE_SIZE_DEFAULT, OTEL_BSP_SCHEDULE_DELAY, OTEL_BSP_SCHEDULE_DELAY_DEFAULT, }; use crate::trace::{BatchConfig, BatchConfigBuilder}; + use crate::trace::{ExportResult, SpanData, SpanExporter}; use futures_util::Future; use std::fmt::Debug; use std::time::Duration; diff --git a/opentelemetry-stdout/src/trace/exporter.rs b/opentelemetry-stdout/src/trace/exporter.rs index bf00909890..9653ae77f9 100644 --- a/opentelemetry-stdout/src/trace/exporter.rs +++ b/opentelemetry-stdout/src/trace/exporter.rs @@ -2,7 +2,7 @@ use chrono::{DateTime, Utc}; use core::fmt; use futures_util::future::BoxFuture; use opentelemetry::trace::TraceError; -use opentelemetry_sdk::export::{self, trace::ExportResult}; +use opentelemetry_sdk::trace::{ExportResult, SpanData}; use std::sync::atomic; use opentelemetry_sdk::resource::Resource; @@ -30,9 +30,9 @@ impl Default for SpanExporter { } } -impl opentelemetry_sdk::export::trace::SpanExporter for SpanExporter { +impl opentelemetry_sdk::trace::SpanExporter for SpanExporter { /// Write Spans to stdout - fn export(&mut self, batch: Vec) -> BoxFuture<'static, ExportResult> { + fn export(&mut self, batch: Vec) -> BoxFuture<'static, ExportResult> { if self.is_shutdown.load(atomic::Ordering::SeqCst) { Box::pin(std::future::ready(Err(TraceError::from( "exporter is shut down", @@ -68,7 +68,7 @@ impl opentelemetry_sdk::export::trace::SpanExporter for SpanExporter { } } -fn print_spans(batch: Vec) { +fn print_spans(batch: Vec) { for (i, span) in batch.into_iter().enumerate() { println!("Span #{}", i); println!("\tInstrumentation Scope"); diff --git a/opentelemetry-zipkin/src/exporter/mod.rs b/opentelemetry-zipkin/src/exporter/mod.rs index 53890c02f0..6af1206784 100644 --- a/opentelemetry-zipkin/src/exporter/mod.rs +++ b/opentelemetry-zipkin/src/exporter/mod.rs @@ -9,10 +9,10 @@ use model::endpoint::Endpoint; use opentelemetry::{global, trace::TraceError, InstrumentationScope, KeyValue}; use opentelemetry_http::HttpClient; use opentelemetry_sdk::{ - export::{trace, ExportError}, resource::{ResourceDetector, SdkProvidedResourceDetector}, + trace, trace::{Config, Tracer, TracerProvider}, - Resource, + ExportError, Resource, }; use opentelemetry_semantic_conventions as semcov; use std::borrow::Cow; diff --git a/opentelemetry-zipkin/src/exporter/model/mod.rs b/opentelemetry-zipkin/src/exporter/model/mod.rs index a78708a2ae..9f799e34d8 100644 --- a/opentelemetry-zipkin/src/exporter/model/mod.rs +++ b/opentelemetry-zipkin/src/exporter/model/mod.rs @@ -2,7 +2,7 @@ use opentelemetry::{ trace::{SpanKind, Status}, Key, KeyValue, }; -use opentelemetry_sdk::export::trace::SpanData; +use opentelemetry_sdk::trace::SpanData; use std::collections::HashMap; use std::time::{Duration, SystemTime}; diff --git a/opentelemetry-zipkin/src/exporter/model/span.rs b/opentelemetry-zipkin/src/exporter/model/span.rs index 51223be92b..fb19a93371 100644 --- a/opentelemetry-zipkin/src/exporter/model/span.rs +++ b/opentelemetry-zipkin/src/exporter/model/span.rs @@ -60,7 +60,7 @@ mod tests { use crate::exporter::model::span::{Kind, Span}; use crate::exporter::model::{into_zipkin_span, OTEL_ERROR_DESCRIPTION, OTEL_STATUS_CODE}; use opentelemetry::trace::{SpanContext, SpanId, SpanKind, Status, TraceFlags, TraceId}; - use opentelemetry_sdk::export::trace::SpanData; + use opentelemetry_sdk::trace::SpanData; use opentelemetry_sdk::trace::{SpanEvents, SpanLinks}; use std::collections::HashMap; use std::net::Ipv4Addr; diff --git a/opentelemetry-zipkin/src/exporter/uploader.rs b/opentelemetry-zipkin/src/exporter/uploader.rs index 84f0581dc5..7e8fe6ec7c 100644 --- a/opentelemetry-zipkin/src/exporter/uploader.rs +++ b/opentelemetry-zipkin/src/exporter/uploader.rs @@ -3,7 +3,7 @@ use crate::exporter::model::span::Span; use crate::exporter::Error; use http::{header::CONTENT_TYPE, Method, Request, Uri}; use opentelemetry_http::{HttpClient, ResponseExt}; -use opentelemetry_sdk::export::trace::ExportResult; +use opentelemetry_sdk::trace::ExportResult; use std::fmt::Debug; use std::sync::Arc; diff --git a/opentelemetry-zipkin/src/lib.rs b/opentelemetry-zipkin/src/lib.rs index 8d414db8a8..1bc9d3ecc9 100644 --- a/opentelemetry-zipkin/src/lib.rs +++ b/opentelemetry-zipkin/src/lib.rs @@ -87,7 +87,7 @@ //! ```no_run //! use opentelemetry::{global, KeyValue, trace::Tracer}; //! use opentelemetry_sdk::{trace::{self, RandomIdGenerator, Sampler}, Resource}; -//! use opentelemetry_sdk::export::trace::ExportResult; +//! use opentelemetry_sdk::trace::ExportResult; //! use opentelemetry_http::{HttpClient, HttpError}; //! use async_trait::async_trait; //! use bytes::Bytes; diff --git a/stress/src/traces.rs b/stress/src/traces.rs index 73b5563c36..95dfd88eb3 100644 --- a/stress/src/traces.rs +++ b/stress/src/traces.rs @@ -15,7 +15,7 @@ use opentelemetry::{ Context, KeyValue, }; use opentelemetry_sdk::{ - export::trace::SpanData, + trace::SpanData, trace::{self as sdktrace, SpanProcessor}, }; From fdf4a63a5b0b1d2cbc4351e4a373c665c4f08d30 Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Thu, 23 Jan 2025 11:44:00 -0800 Subject: [PATCH 3/3] Move inmemory exporter for logs to diff namespace (#2538) --- opentelemetry-appender-log/src/lib.rs | 2 +- opentelemetry-appender-tracing/src/layer.rs | 2 +- opentelemetry-sdk/CHANGELOG.md | 13 ++++++++++--- .../src/{testing => }/logs/in_memory_exporter.rs | 8 ++++---- opentelemetry-sdk/src/logs/log_emitter.rs | 2 +- opentelemetry-sdk/src/logs/log_processor.rs | 9 ++++----- .../src/logs/log_processor_with_async_runtime.rs | 6 +++--- opentelemetry-sdk/src/logs/mod.rs | 9 ++++++++- opentelemetry-sdk/src/testing/logs/mod.rs | 6 ------ opentelemetry-sdk/src/testing/mod.rs | 3 --- 10 files changed, 32 insertions(+), 28 deletions(-) rename opentelemetry-sdk/src/{testing => }/logs/in_memory_exporter.rs (94%) delete mode 100644 opentelemetry-sdk/src/testing/logs/mod.rs diff --git a/opentelemetry-appender-log/src/lib.rs b/opentelemetry-appender-log/src/lib.rs index 81ec10d129..878c45a7bc 100644 --- a/opentelemetry-appender-log/src/lib.rs +++ b/opentelemetry-appender-log/src/lib.rs @@ -769,7 +769,7 @@ mod tests { use super::OpenTelemetryLogBridge; use opentelemetry::{logs::AnyValue, StringValue}; - use opentelemetry_sdk::{logs::LoggerProvider, testing::logs::InMemoryLogExporter}; + use opentelemetry_sdk::{logs::InMemoryLogExporter, logs::LoggerProvider}; use log::Log; diff --git a/opentelemetry-appender-tracing/src/layer.rs b/opentelemetry-appender-tracing/src/layer.rs index 32a8a5b1f0..849dab60f5 100644 --- a/opentelemetry-appender-tracing/src/layer.rs +++ b/opentelemetry-appender-tracing/src/layer.rs @@ -213,9 +213,9 @@ mod tests { use opentelemetry::trace::TracerProvider as _; use opentelemetry::trace::{TraceContextExt, TraceFlags, Tracer}; use opentelemetry::{logs::AnyValue, Key}; + use opentelemetry_sdk::logs::InMemoryLogExporter; use opentelemetry_sdk::logs::{LogBatch, LogExporter}; use opentelemetry_sdk::logs::{LogRecord, LogResult, LoggerProvider}; - use opentelemetry_sdk::testing::logs::InMemoryLogExporter; use opentelemetry_sdk::trace::{Sampler, TracerProvider}; use tracing::{error, warn}; use tracing_subscriber::prelude::__tracing_subscriber_SubscriberExt; diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index 45a4ff63e8..52aad8230b 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -268,19 +268,26 @@ hardcoded limit of 2000 and no ability to change it. This feature will be re-introduced in a future date, along with the ability to change the cardinality limit. + - *Breaking* (Affects custom Exporter authors only) Moved `ExportError` trait from `opentelemetry::export::ExportError` to `opentelemetry_sdk::ExportError` -- *Breaking (Affects custom SpanExporter, SpanProcessor authors only)*: Rename namespaces +- *Breaking (Affects custom SpanExporter, SpanProcessor authors only)*: Rename namespaces for Span exporter structs/traits before: `opentelemetry_sdk::export::spans::{ExportResult, SpanData, SpanExporter};` now: - `opentelemetry_sdk::logs::{ExportResult, SpanData, SpanExporter};` + `opentelemetry_sdk::spans::{ExportResult, SpanData, SpanExporter};` -- *Breaking (Affects custom LogExporter, LogProcessor authors only)*: Rename namespaces +- *Breaking (Affects custom LogExporter, LogProcessor authors only)*: Rename namespaces for Log exporter structs/traits. before: `opentelemetry_sdk::export::logs::{ExportResult, LogBatch, LogExporter};` now: `opentelemetry_sdk::logs::{ExportResult, LogBatch, LogExporter};` +- *Breaking*: Rename namespaces for InMemoryExporters. (The module is still under "testing" feature flag) + before: + `opentelemetry_sdk::testing::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder};` + now: + `opentelemetry_sdk::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder};` + ## 0.27.1 Released 2024-Nov-27 diff --git a/opentelemetry-sdk/src/testing/logs/in_memory_exporter.rs b/opentelemetry-sdk/src/logs/in_memory_exporter.rs similarity index 94% rename from opentelemetry-sdk/src/testing/logs/in_memory_exporter.rs rename to opentelemetry-sdk/src/logs/in_memory_exporter.rs index a59b8e4c2d..0df3a0caeb 100644 --- a/opentelemetry-sdk/src/testing/logs/in_memory_exporter.rs +++ b/opentelemetry-sdk/src/logs/in_memory_exporter.rs @@ -15,7 +15,7 @@ use std::sync::{Arc, Mutex}; /// ```no_run ///# use opentelemetry_sdk::logs::{BatchLogProcessor, LoggerProvider}; ///# use opentelemetry_sdk::runtime; -///# use opentelemetry_sdk::testing::logs::InMemoryLogExporter; +///# use opentelemetry_sdk::logs::InMemoryLogExporter; /// ///# #[tokio::main] ///# async fn main() { @@ -72,7 +72,7 @@ pub struct LogDataWithResource { /// # Example /// /// ```no_run -///# use opentelemetry_sdk::testing::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder}; +///# use opentelemetry_sdk::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder}; ///# use opentelemetry_sdk::logs::{BatchLogProcessor, LoggerProvider}; ///# use opentelemetry_sdk::runtime; /// @@ -139,7 +139,7 @@ impl InMemoryLogExporter { /// # Example /// /// ``` - /// use opentelemetry_sdk::testing::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder}; + /// use opentelemetry_sdk::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder}; /// /// let exporter = InMemoryLogExporterBuilder::default().build(); /// let emitted_logs = exporter.get_emitted_logs().unwrap(); @@ -164,7 +164,7 @@ impl InMemoryLogExporter { /// # Example /// /// ``` - /// use opentelemetry_sdk::testing::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder}; + /// use opentelemetry_sdk::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder}; /// /// let exporter = InMemoryLogExporterBuilder::default().build(); /// exporter.reset(); diff --git a/opentelemetry-sdk/src/logs/log_emitter.rs b/opentelemetry-sdk/src/logs/log_emitter.rs index cb3c02a69d..94546f7c61 100644 --- a/opentelemetry-sdk/src/logs/log_emitter.rs +++ b/opentelemetry-sdk/src/logs/log_emitter.rs @@ -333,10 +333,10 @@ impl opentelemetry::logs::Logger for Logger { #[cfg(test)] mod tests { use crate::{ + logs::InMemoryLogExporter, resource::{ SERVICE_NAME, TELEMETRY_SDK_LANGUAGE, TELEMETRY_SDK_NAME, TELEMETRY_SDK_VERSION, }, - testing::logs::InMemoryLogExporter, trace::TracerProvider, Resource, }; diff --git a/opentelemetry-sdk/src/logs/log_processor.rs b/opentelemetry-sdk/src/logs/log_processor.rs index ff0275a8e8..68ba64bb7a 100644 --- a/opentelemetry-sdk/src/logs/log_processor.rs +++ b/opentelemetry-sdk/src/logs/log_processor.rs @@ -122,7 +122,7 @@ pub trait LogProcessor: Send + Sync + Debug { /// ```rust /// use opentelemetry_sdk::logs::{SimpleLogProcessor, LoggerProvider, LogExporter}; /// use opentelemetry::global; -/// use opentelemetry_sdk::testing::logs::InMemoryLogExporter; +/// use opentelemetry_sdk::logs::InMemoryLogExporter; /// /// let exporter = InMemoryLogExporter::default(); // Replace with an actual exporter /// let provider = LoggerProvider::builder() @@ -246,7 +246,7 @@ type LogsData = Box<(LogRecord, InstrumentationScope)>; /// use opentelemetry_sdk::logs::{BatchLogProcessor, BatchConfigBuilder, LoggerProvider}; /// use opentelemetry::global; /// use std::time::Duration; -/// use opentelemetry_sdk::testing::logs::InMemoryLogExporter; +/// use opentelemetry_sdk::logs::InMemoryLogExporter; /// /// let exporter = InMemoryLogExporter::default(); // Replace with an actual exporter /// let processor = BatchLogProcessor::builder(exporter) @@ -818,16 +818,15 @@ mod tests { }; use crate::logs::LogResult; use crate::logs::{LogBatch, LogExporter, LogRecord}; - use crate::testing::logs::InMemoryLogExporterBuilder; use crate::{ logs::{ log_processor::{ OTEL_BLRP_EXPORT_TIMEOUT_DEFAULT, OTEL_BLRP_MAX_EXPORT_BATCH_SIZE_DEFAULT, OTEL_BLRP_MAX_QUEUE_SIZE_DEFAULT, OTEL_BLRP_SCHEDULE_DELAY_DEFAULT, }, - BatchConfig, BatchConfigBuilder, LogProcessor, LoggerProvider, SimpleLogProcessor, + BatchConfig, BatchConfigBuilder, InMemoryLogExporter, InMemoryLogExporterBuilder, + LogProcessor, LoggerProvider, SimpleLogProcessor, }, - testing::logs::InMemoryLogExporter, Resource, }; use opentelemetry::logs::AnyValue; diff --git a/opentelemetry-sdk/src/logs/log_processor_with_async_runtime.rs b/opentelemetry-sdk/src/logs/log_processor_with_async_runtime.rs index ccd918be5d..781c7bb054 100644 --- a/opentelemetry-sdk/src/logs/log_processor_with_async_runtime.rs +++ b/opentelemetry-sdk/src/logs/log_processor_with_async_runtime.rs @@ -286,20 +286,20 @@ mod tests { OTEL_BLRP_SCHEDULE_DELAY, }; use crate::logs::log_processor_with_async_runtime::BatchLogProcessor; + use crate::logs::InMemoryLogExporterBuilder; use crate::logs::LogRecord; use crate::logs::LogResult; use crate::logs::{LogBatch, LogExporter}; use crate::runtime; - use crate::testing::logs::InMemoryLogExporterBuilder; use crate::{ logs::{ log_processor::{ OTEL_BLRP_EXPORT_TIMEOUT_DEFAULT, OTEL_BLRP_MAX_EXPORT_BATCH_SIZE_DEFAULT, OTEL_BLRP_MAX_QUEUE_SIZE_DEFAULT, OTEL_BLRP_SCHEDULE_DELAY_DEFAULT, }, - BatchConfig, BatchConfigBuilder, LogProcessor, LoggerProvider, SimpleLogProcessor, + BatchConfig, BatchConfigBuilder, InMemoryLogExporter, LogProcessor, LoggerProvider, + SimpleLogProcessor, }, - testing::logs::InMemoryLogExporter, Resource, }; use opentelemetry::logs::AnyValue; diff --git a/opentelemetry-sdk/src/logs/mod.rs b/opentelemetry-sdk/src/logs/mod.rs index 9fa8824001..d6127c9a29 100644 --- a/opentelemetry-sdk/src/logs/mod.rs +++ b/opentelemetry-sdk/src/logs/mod.rs @@ -5,6 +5,14 @@ mod log_emitter; mod log_processor; pub(crate) mod record; +/// In-Memory log exporter for testing purpose. +#[cfg(any(feature = "testing", test))] +#[cfg_attr(docsrs, doc(cfg(any(feature = "testing", test))))] +pub mod in_memory_exporter; +#[cfg(any(feature = "testing", test))] +#[cfg_attr(docsrs, doc(cfg(any(feature = "testing", test))))] +pub use in_memory_exporter::{InMemoryLogExporter, InMemoryLogExporterBuilder}; + pub use error::{LogError, LogResult}; pub use export::{ExportResult, LogBatch, LogExporter}; pub use log_emitter::{Builder, Logger, LoggerProvider}; @@ -21,7 +29,6 @@ pub mod log_processor_with_async_runtime; #[cfg(all(test, feature = "testing"))] mod tests { use super::*; - use crate::testing::logs::InMemoryLogExporter; use crate::Resource; use opentelemetry::logs::LogRecord; use opentelemetry::logs::{Logger, LoggerProvider as _, Severity}; diff --git a/opentelemetry-sdk/src/testing/logs/mod.rs b/opentelemetry-sdk/src/testing/logs/mod.rs deleted file mode 100644 index ed4d5d9560..0000000000 --- a/opentelemetry-sdk/src/testing/logs/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -//! In-Memory log exporter for testing purpose. - -/// The `in_memory_exporter` module provides in-memory log exporter. -/// For detailed usage and examples, see `in_memory_exporter`. -pub mod in_memory_exporter; -pub use in_memory_exporter::{InMemoryLogExporter, InMemoryLogExporterBuilder}; diff --git a/opentelemetry-sdk/src/testing/mod.rs b/opentelemetry-sdk/src/testing/mod.rs index 50c79f5d49..e8f7071a74 100644 --- a/opentelemetry-sdk/src/testing/mod.rs +++ b/opentelemetry-sdk/src/testing/mod.rs @@ -5,6 +5,3 @@ pub mod trace; #[cfg(all(feature = "testing", feature = "metrics"))] pub mod metrics; - -#[cfg(all(feature = "testing", feature = "logs"))] -pub mod logs;