Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
6 changes: 6 additions & 0 deletions opentelemetry-sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@
- *Fix* SpanProcessor::on_start is no longer called on non recording spans
- **Fix**: Restore true parallel exports in the async-native `BatchSpanProcessor` by honoring `OTEL_BSP_MAX_CONCURRENT_EXPORTS` ([#2959](https://github.com/open-telemetry/opentelemetry-rust/pull/3028)). A regression in [#2685](https://github.com/open-telemetry/opentelemetry-rust/pull/2685) inadvertently awaited the `export()` future directly in `opentelemetry-sdk/src/trace/span_processor_with_async_runtime.rs` instead of spawning it on the runtime, forcing all exports to run sequentially.
- **Feature**: Added `Clone` implementation to `SdkLogger` for API consistency with `SdkTracer` ([#3058](https://github.com/open-telemetry/opentelemetry-rust/issues/3058)).
- **Fix**: Resolved dependency issue where the "logs" feature incorrectly
required the "trace" feature flag
([#3096](https://github.com/open-telemetry/opentelemetry-rust/issues/3096)).
The logs functionality now operates independently, while automatic correlation
between logs and traces continues to work when the "trace" feature is
explicitly enabled.

## 0.30.0

Expand Down
2 changes: 1 addition & 1 deletion opentelemetry-sdk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
default = ["trace", "metrics", "logs", "internal-logs"]
trace = ["opentelemetry/trace", "rand", "percent-encoding"]
jaeger_remote_sampler = ["trace", "opentelemetry-http", "http", "serde", "serde_json", "url", "experimental_async_runtime"]
logs = ["opentelemetry/logs", "opentelemetry/trace", "serde_json"]
logs = ["opentelemetry/logs", "serde_json"]
spec_unstable_logs_enabled = ["logs", "opentelemetry/spec_unstable_logs_enabled"]
metrics = ["opentelemetry/metrics"]
testing = ["opentelemetry/testing", "trace", "metrics", "logs", "rt-tokio", "rt-tokio-current-thread", "tokio/macros", "tokio/rt-multi-thread"]
Expand Down
9 changes: 7 additions & 2 deletions opentelemetry-sdk/src/logs/logger.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
use super::{SdkLogRecord, SdkLoggerProvider, TraceContext};
use opentelemetry::{trace::TraceContextExt, Context, InstrumentationScope};
#[cfg(feature = "trace")]
use super::TraceContext;
use super::{SdkLogRecord, SdkLoggerProvider};
#[cfg(feature = "trace")]
use opentelemetry::trace::TraceContextExt;
use opentelemetry::{Context, InstrumentationScope};

#[cfg(feature = "spec_unstable_logs_enabled")]
use opentelemetry::logs::Severity;
Expand Down Expand Up @@ -37,6 +41,7 @@ impl opentelemetry::logs::Logger for SdkLogger {

//let mut log_record = record;
if record.trace_context.is_none() {
#[cfg(feature = "trace")]
Context::map_current(|cx| {
cx.has_active_span().then(|| {
record.trace_context = Some(TraceContext::from(cx.span().span_context()))
Expand Down
20 changes: 12 additions & 8 deletions opentelemetry-sdk/src/logs/logger_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -283,21 +283,24 @@ impl LoggerProviderBuilder {

#[cfg(test)]
mod tests {
#[cfg(feature = "trace")]
use crate::logs::TraceContext;
#[cfg(feature = "trace")]
use crate::trace::SdkTracerProvider;
use crate::{
logs::{InMemoryLogExporter, LogBatch, SdkLogRecord, TraceContext},
logs::{InMemoryLogExporter, LogBatch, SdkLogRecord},
resource::{
SERVICE_NAME, TELEMETRY_SDK_LANGUAGE, TELEMETRY_SDK_NAME, TELEMETRY_SDK_VERSION,
},
trace::SdkTracerProvider,
Resource,
};

use super::*;
use opentelemetry::logs::{AnyValue, LogRecord as _, Logger, LoggerProvider};
#[cfg(feature = "trace")]
use opentelemetry::trace::TraceContextExt;
#[cfg(feature = "trace")]
use opentelemetry::trace::{SpanId, TraceId, Tracer as _, TracerProvider};
use opentelemetry::{
logs::{AnyValue, LogRecord as _, Logger, LoggerProvider},
trace::TraceContextExt,
};
use opentelemetry::{Key, KeyValue, Value};
use std::fmt::{Debug, Formatter};
use std::sync::atomic::AtomicU64;
Expand Down Expand Up @@ -591,6 +594,7 @@ mod tests {
}

#[test]
#[cfg(feature = "trace")]
fn trace_context_test() {
let exporter = InMemoryLogExporter::default();

Expand All @@ -607,8 +611,8 @@ mod tests {
tracer.in_span("test-span", |cx| {
let ambient_ctxt = cx.span().span_context().clone();
let explicit_ctxt = TraceContext {
trace_id: TraceId::from_u128(13),
span_id: SpanId::from_u64(14),
trace_id: TraceId::from(13),
span_id: SpanId::from(14),
trace_flags: None,
};

Expand Down
6 changes: 4 additions & 2 deletions opentelemetry-sdk/src/logs/record.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
use crate::growable_array::GrowableArray;
#[cfg(feature = "trace")]
use opentelemetry::trace::SpanContext;
use opentelemetry::{
logs::{AnyValue, Severity},
trace::{SpanContext, SpanId, TraceFlags, TraceId},
Key,
Key, SpanId, TraceFlags, TraceId,
};
use std::{borrow::Cow, time::SystemTime};

Expand Down Expand Up @@ -216,6 +217,7 @@ pub struct TraceContext {
pub trace_flags: Option<TraceFlags>,
}

#[cfg(feature = "trace")]
impl From<&SpanContext> for TraceContext {
fn from(span_context: &SpanContext) -> Self {
TraceContext {
Expand Down
Loading