Skip to content

Commit e2db7a0

Browse files
stormshield-fabslalitbcijothomas
authored
Unify builders across signals (#2220)
Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Lalit Kumar Bhasin <[email protected]> Co-authored-by: Cijo Thomas <[email protected]>
1 parent 5628f66 commit e2db7a0

File tree

54 files changed

+457
-806
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+457
-806
lines changed

opentelemetry-appender-log/src/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,10 @@
9797
use log::{Level, Metadata, Record};
9898
use opentelemetry::{
9999
logs::{AnyValue, LogRecord, Logger, LoggerProvider, Severity},
100-
Key,
100+
InstrumentationScope, Key,
101101
};
102102
#[cfg(feature = "experimental_metadata_attributes")]
103103
use opentelemetry_semantic_conventions::attribute::{CODE_FILEPATH, CODE_LINENO, CODE_NAMESPACE};
104-
use std::borrow::Cow;
105104

106105
pub struct OpenTelemetryLogBridge<P, L>
107106
where
@@ -170,11 +169,12 @@ where
170169
L: Logger + Send + Sync,
171170
{
172171
pub fn new(provider: &P) -> Self {
172+
let scope = InstrumentationScope::builder("opentelemetry-log-appender")
173+
.with_version(env!("CARGO_PKG_VERSION"))
174+
.build();
175+
173176
OpenTelemetryLogBridge {
174-
logger: provider
175-
.logger_builder("opentelemetry-log-appender")
176-
.with_version(Cow::Borrowed(env!("CARGO_PKG_VERSION")))
177-
.build(),
177+
logger: provider.logger_with_scope(scope),
178178
_phantom: Default::default(),
179179
}
180180
}

opentelemetry-appender-tracing/benches/logs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use async_trait::async_trait;
1717
use criterion::{criterion_group, criterion_main, Criterion};
1818
use opentelemetry::logs::LogResult;
19-
use opentelemetry::{InstrumentationLibrary, KeyValue};
19+
use opentelemetry::{InstrumentationScope, KeyValue};
2020
use opentelemetry_appender_tracing::layer as tracing_layer;
2121
use opentelemetry_sdk::export::logs::{LogBatch, LogExporter};
2222
use opentelemetry_sdk::logs::{LogProcessor, LogRecord, LoggerProvider};
@@ -55,7 +55,7 @@ impl NoopProcessor {
5555
}
5656

5757
impl LogProcessor for NoopProcessor {
58-
fn emit(&self, _: &mut LogRecord, _: &InstrumentationLibrary) {
58+
fn emit(&self, _: &mut LogRecord, _: &InstrumentationScope) {
5959
// no-op
6060
}
6161

opentelemetry-appender-tracing/src/layer.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use opentelemetry::{
22
logs::{AnyValue, LogRecord, Logger, LoggerProvider, Severity},
3-
Key,
3+
InstrumentationScope, Key,
44
};
55
use std::borrow::Cow;
66
use tracing_core::Level;
@@ -136,11 +136,12 @@ where
136136
L: Logger + Send + Sync,
137137
{
138138
pub fn new(provider: &P) -> Self {
139+
let scope = InstrumentationScope::builder(INSTRUMENTATION_LIBRARY_NAME)
140+
.with_version(Cow::Borrowed(env!("CARGO_PKG_VERSION")))
141+
.build();
142+
139143
OpenTelemetryTracingBridge {
140-
logger: provider
141-
.logger_builder(INSTRUMENTATION_LIBRARY_NAME)
142-
.with_version(Cow::Borrowed(env!("CARGO_PKG_VERSION")))
143-
.build(),
144+
logger: provider.logger_with_scope(scope),
144145
_phantom: Default::default(),
145146
}
146147
}

opentelemetry-otlp/examples/basic-otlp-http/src/main.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use once_cell::sync::Lazy;
22
use opentelemetry::{
33
global,
44
metrics::MetricsError,
5-
trace::{TraceContextExt, TraceError, Tracer, TracerProvider as _},
6-
KeyValue,
5+
trace::{TraceContextExt, TraceError, Tracer},
6+
InstrumentationScope, KeyValue,
77
};
88
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
99
use opentelemetry_otlp::WithExportConfig;
@@ -128,16 +128,13 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
128128
.init();
129129

130130
let common_scope_attributes = vec![KeyValue::new("scope-key", "scope-value")];
131-
let tracer = global::tracer_provider()
132-
.tracer_builder("basic")
133-
.with_attributes(common_scope_attributes.clone())
131+
let scope = InstrumentationScope::builder("basic")
132+
.with_version("1.0")
133+
.with_attributes(common_scope_attributes)
134134
.build();
135-
let meter = global::meter_with_version(
136-
"basic",
137-
Some("v1.0"),
138-
Some("schema_url"),
139-
Some(common_scope_attributes.clone()),
140-
);
135+
136+
let tracer = global::tracer_with_scope(scope.clone());
137+
let meter = global::meter_with_scope(scope);
141138

142139
let counter = meter
143140
.u64_counter("test_counter")

opentelemetry-otlp/examples/basic-otlp/src/main.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
use once_cell::sync::Lazy;
2-
use opentelemetry::global;
32
use opentelemetry::logs::LogError;
43
use opentelemetry::metrics::MetricsError;
5-
use opentelemetry::trace::{TraceError, TracerProvider};
6-
use opentelemetry::{
7-
trace::{TraceContextExt, Tracer},
8-
KeyValue,
9-
};
4+
use opentelemetry::trace::{TraceContextExt, TraceError, Tracer};
5+
use opentelemetry::KeyValue;
6+
use opentelemetry::{global, InstrumentationScope};
107
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
118
use opentelemetry_otlp::{LogExporter, MetricsExporter, SpanExporter, WithExportConfig};
129
use opentelemetry_sdk::logs::LoggerProvider;
@@ -108,16 +105,13 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
108105
.init();
109106

110107
let common_scope_attributes = vec![KeyValue::new("scope-key", "scope-value")];
111-
let tracer = global::tracer_provider()
112-
.tracer_builder("basic")
113-
.with_attributes(common_scope_attributes.clone())
108+
let scope = InstrumentationScope::builder("basic")
109+
.with_version("1.0")
110+
.with_attributes(common_scope_attributes)
114111
.build();
115-
let meter = global::meter_with_version(
116-
"basic",
117-
Some("v1.0"),
118-
Some("schema_url"),
119-
Some(common_scope_attributes.clone()),
120-
);
112+
113+
let tracer = global::tracer_with_scope(scope.clone());
114+
let meter = global::meter_with_scope(scope);
121115

122116
let counter = meter
123117
.u64_counter("test_counter")

opentelemetry-otlp/tests/integration_test/expected/serialized_traces.json

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"spanId": "cd7cf7bf939930b7",
2727
"traceState": "",
2828
"parentSpanId": "d58cf2d702a061e0",
29-
"flags": 0,
29+
"flags": 1,
3030
"name": "Sub operation...",
3131
"kind": 1,
3232
"startTimeUnixNano": "1703985537070566698",
@@ -55,40 +55,13 @@
5555
"message": "",
5656
"code": 0
5757
}
58-
}
59-
],
60-
"schemaUrl": ""
61-
}
62-
],
63-
"schemaUrl": ""
64-
},
65-
{
66-
"resource": {
67-
"attributes": [
68-
{
69-
"key": "service.name",
70-
"value": {
71-
"stringValue": "basic-otlp-tracing-example"
72-
}
73-
}
74-
],
75-
"droppedAttributesCount": 0
76-
},
77-
"scopeSpans": [
78-
{
79-
"scope": {
80-
"name": "ex.com/basic",
81-
"version": "",
82-
"attributes": [],
83-
"droppedAttributesCount": 0
84-
},
85-
"spans": [
58+
},
8659
{
8760
"traceId": "9b458af7378cba65253d7042d34fc72e",
8861
"spanId": "d58cf2d702a061e0",
8962
"traceState": "",
9063
"parentSpanId": "",
91-
"flags": 0,
64+
"flags": 1,
9265
"name": "operation",
9366
"kind": 1,
9467
"startTimeUnixNano": "1703985537070558635",
@@ -112,12 +85,6 @@
11285
"value": {
11386
"intValue": "100"
11487
}
115-
},
116-
{
117-
"key": "number/int",
118-
"value": {
119-
"intValue": "100"
120-
}
12188
}
12289
],
12390
"droppedAttributesCount": 0

opentelemetry-proto/src/transform/common.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ pub mod tonic {
4444

4545
impl
4646
From<(
47-
opentelemetry_sdk::InstrumentationLibrary,
47+
opentelemetry::InstrumentationScope,
4848
Option<Cow<'static, str>>,
4949
)> for InstrumentationScope
5050
{
5151
fn from(
5252
data: (
53-
opentelemetry_sdk::InstrumentationLibrary,
53+
opentelemetry::InstrumentationScope,
5454
Option<Cow<'static, str>>,
5555
),
5656
) -> Self {
@@ -75,13 +75,13 @@ pub mod tonic {
7575

7676
impl
7777
From<(
78-
&opentelemetry_sdk::InstrumentationLibrary,
78+
&opentelemetry::InstrumentationScope,
7979
Option<Cow<'static, str>>,
8080
)> for InstrumentationScope
8181
{
8282
fn from(
8383
data: (
84-
&opentelemetry_sdk::InstrumentationLibrary,
84+
&opentelemetry::InstrumentationScope,
8585
Option<Cow<'static, str>>,
8686
),
8787
) -> Self {

opentelemetry-proto/src/transform/logs.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ pub mod tonic {
143143
From<(
144144
(
145145
&opentelemetry_sdk::logs::LogRecord,
146-
&opentelemetry::InstrumentationLibrary,
146+
&opentelemetry::InstrumentationScope,
147147
),
148148
&ResourceAttributesWithSchema,
149149
)> for ResourceLogs
@@ -152,7 +152,7 @@ pub mod tonic {
152152
data: (
153153
(
154154
&opentelemetry_sdk::logs::LogRecord,
155-
&opentelemetry::InstrumentationLibrary,
155+
&opentelemetry::InstrumentationScope,
156156
),
157157
&ResourceAttributesWithSchema,
158158
),
@@ -189,7 +189,7 @@ pub mod tonic {
189189
Cow<'static, str>,
190190
Vec<(
191191
&opentelemetry_sdk::logs::LogRecord,
192-
&opentelemetry::InstrumentationLibrary,
192+
&opentelemetry::InstrumentationScope,
193193
)>,
194194
>,
195195
(log_record, instrumentation)| {
@@ -235,19 +235,19 @@ pub mod tonic {
235235
mod tests {
236236
use crate::transform::common::tonic::ResourceAttributesWithSchema;
237237
use opentelemetry::logs::LogRecord as _;
238-
use opentelemetry::InstrumentationLibrary;
238+
use opentelemetry::InstrumentationScope;
239239
use opentelemetry_sdk::{export::logs::LogBatch, logs::LogRecord, Resource};
240240
use std::time::SystemTime;
241241

242242
fn create_test_log_data(
243243
instrumentation_name: &str,
244244
_message: &str,
245-
) -> (LogRecord, InstrumentationLibrary) {
245+
) -> (LogRecord, InstrumentationScope) {
246246
let mut logrecord = LogRecord::default();
247247
logrecord.set_timestamp(SystemTime::now());
248248
logrecord.set_observed_timestamp(SystemTime::now());
249249
let instrumentation =
250-
InstrumentationLibrary::builder(instrumentation_name.to_string()).build();
250+
InstrumentationScope::builder(instrumentation_name.to_string()).build();
251251
(logrecord, instrumentation)
252252
}
253253

opentelemetry-proto/src/transform/trace.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,12 @@ pub mod tonic {
101101
schema_url: resource.schema_url.clone().unwrap_or_default(),
102102
scope_spans: vec![ScopeSpans {
103103
schema_url: source_span
104-
.instrumentation_lib
104+
.instrumentation_scope
105105
.schema_url
106106
.as_ref()
107107
.map(ToString::to_string)
108108
.unwrap_or_default(),
109-
scope: Some((source_span.instrumentation_lib, None).into()),
109+
scope: Some((source_span.instrumentation_scope, None).into()),
110110
spans: vec![Span {
111111
trace_id: source_span.span_context.trace_id().to_bytes().to_vec(),
112112
span_id: source_span.span_context.span_id().to_bytes().to_vec(),
@@ -155,12 +155,11 @@ pub mod tonic {
155155
spans: Vec<SpanData>,
156156
resource: &ResourceAttributesWithSchema,
157157
) -> Vec<ResourceSpans> {
158-
// Group spans by their instrumentation library
158+
// Group spans by their instrumentation scope
159159
let scope_map = spans.iter().fold(
160160
HashMap::new(),
161-
|mut scope_map: HashMap<&opentelemetry_sdk::InstrumentationLibrary, Vec<&SpanData>>,
162-
span| {
163-
let instrumentation = &span.instrumentation_lib;
161+
|mut scope_map: HashMap<&opentelemetry::InstrumentationScope, Vec<&SpanData>>, span| {
162+
let instrumentation = &span.instrumentation_scope;
164163
scope_map.entry(instrumentation).or_default().push(span);
165164
scope_map
166165
},
@@ -198,11 +197,11 @@ mod tests {
198197
use opentelemetry::trace::{
199198
SpanContext, SpanId, SpanKind, Status, TraceFlags, TraceId, TraceState,
200199
};
200+
use opentelemetry::InstrumentationScope;
201201
use opentelemetry::KeyValue;
202202
use opentelemetry_sdk::export::trace::SpanData;
203203
use opentelemetry_sdk::resource::Resource;
204204
use opentelemetry_sdk::trace::{SpanEvents, SpanLinks};
205-
use opentelemetry_sdk::InstrumentationLibrary;
206205
use std::borrow::Cow;
207206
use std::time::{Duration, SystemTime};
208207

@@ -227,7 +226,7 @@ mod tests {
227226
events: SpanEvents::default(),
228227
links: SpanLinks::default(),
229228
status: Status::Unset,
230-
instrumentation_lib: InstrumentationLibrary::builder(instrumentation_name).build(),
229+
instrumentation_scope: InstrumentationScope::builder(instrumentation_name).build(),
231230
}
232231
}
233232

opentelemetry-sdk/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ Now:
1919
```rust
2020
let counter = meter.u64_counter("my_counter").build();
2121
```
22+
- **BREAKING**: [#2220](https://github.com/open-telemetry/opentelemetry-rust/pull/2220)
23+
- Removed `InstrumentationLibrary` re-export and its `Scope` alias, use `opentelemetry::InstrumentationLibrary` instead.
24+
- Unified builders across signals
25+
- Removed deprecated `LoggerProvider::versioned_logger`, `TracerProvider::versioned_tracer`
26+
- Removed `MeterProvider::versioned_meter`
27+
- Replaced these methods with `LoggerProvider::logger_with_scope`, `TracerProvider::logger_with_scope`, `MeterProvider::meter_with_scope`
2228

2329
## v0.26.0
2430
Released 2024-Sep-30

opentelemetry-sdk/benches/batch_span_processor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ fn get_span_data() -> Vec<SpanData> {
3232
events: SpanEvents::default(),
3333
links: SpanLinks::default(),
3434
status: Status::Unset,
35-
instrumentation_lib: Default::default(),
35+
instrumentation_scope: Default::default(),
3636
})
3737
.collect::<Vec<SpanData>>()
3838
}

opentelemetry-sdk/benches/log.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use opentelemetry::logs::{
2525
};
2626
use opentelemetry::trace::Tracer;
2727
use opentelemetry::trace::TracerProvider as _;
28-
use opentelemetry::{InstrumentationLibrary, Key};
28+
use opentelemetry::{InstrumentationScope, Key};
2929
use opentelemetry_sdk::logs::{LogProcessor, LogRecord, Logger, LoggerProvider};
3030
use opentelemetry_sdk::trace;
3131
use opentelemetry_sdk::trace::{Sampler, TracerProvider};
@@ -34,7 +34,7 @@ use opentelemetry_sdk::trace::{Sampler, TracerProvider};
3434
struct NoopProcessor;
3535

3636
impl LogProcessor for NoopProcessor {
37-
fn emit(&self, _data: &mut LogRecord, _library: &InstrumentationLibrary) {}
37+
fn emit(&self, _data: &mut LogRecord, _scope: &InstrumentationScope) {}
3838

3939
fn force_flush(&self) -> LogResult<()> {
4040
Ok(())

0 commit comments

Comments
 (0)