Skip to content

Commit 4ef7c6f

Browse files
Copilotcijothomas
andcommitted
Fix logs SDK dependency on trace feature
- Remove default-features from opentelemetry dependency in SDK - Conditionally compile trace context extraction in logs - Move trace-related imports behind feature gates - Ensure logs work without trace feature while maintaining compatibility Co-authored-by: cijothomas <[email protected]>
1 parent 84a50c8 commit 4ef7c6f

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

opentelemetry-sdk/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ rust-version = "1.75.0"
1111
autobenches = false
1212

1313
[dependencies]
14-
opentelemetry = { version = "0.30", path = "../opentelemetry/" }
14+
opentelemetry = { version = "0.30", path = "../opentelemetry/", default-features = false }
1515
opentelemetry-http = { version = "0.30", path = "../opentelemetry-http", optional = true }
1616
futures-channel = { workspace = true }
1717
futures-executor = { workspace = true }

opentelemetry-sdk/src/logs/logger.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
use super::{SdkLogRecord, SdkLoggerProvider, TraceContext};
2-
use opentelemetry::{trace::TraceContextExt, Context, InstrumentationScope};
1+
use super::{SdkLogRecord, SdkLoggerProvider};
2+
#[cfg(feature = "trace")]
3+
use super::TraceContext;
4+
use opentelemetry::{Context, InstrumentationScope};
35

46
#[cfg(feature = "spec_unstable_logs_enabled")]
57
use opentelemetry::logs::Severity;
@@ -37,11 +39,15 @@ impl opentelemetry::logs::Logger for SdkLogger {
3739

3840
//let mut log_record = record;
3941
if record.trace_context.is_none() {
40-
Context::map_current(|cx| {
41-
cx.has_active_span().then(|| {
42-
record.trace_context = Some(TraceContext::from(cx.span().span_context()))
43-
})
44-
});
42+
#[cfg(feature = "trace")]
43+
{
44+
use opentelemetry::trace::TraceContextExt;
45+
Context::map_current(|cx| {
46+
cx.has_active_span().then(|| {
47+
record.trace_context = Some(TraceContext::from(cx.span().span_context()))
48+
})
49+
});
50+
}
4551
}
4652
if record.observed_timestamp.is_none() {
4753
record.observed_timestamp = Some(now());

opentelemetry-sdk/src/logs/record.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use crate::growable_array::GrowableArray;
22
use opentelemetry::{
33
logs::{AnyValue, Severity},
4-
trace::{SpanContext, SpanId, TraceFlags, TraceId},
5-
Key,
4+
Key, SpanId, TraceFlags, TraceId,
65
};
76
use std::{borrow::Cow, time::SystemTime};
87

@@ -216,8 +215,9 @@ pub struct TraceContext {
216215
pub trace_flags: Option<TraceFlags>,
217216
}
218217

219-
impl From<&SpanContext> for TraceContext {
220-
fn from(span_context: &SpanContext) -> Self {
218+
#[cfg(feature = "trace")]
219+
impl From<&opentelemetry::trace::SpanContext> for TraceContext {
220+
fn from(span_context: &opentelemetry::trace::SpanContext) -> Self {
221221
TraceContext {
222222
trace_id: span_context.trace_id(),
223223
span_id: span_context.span_id(),

0 commit comments

Comments
 (0)