Skip to content

Commit 905b95a

Browse files
authored
Merge branch 'main' into anujnegi/disable-name-check
2 parents 02f9d56 + a1ac806 commit 905b95a

File tree

17 files changed

+114
-63
lines changed

17 files changed

+114
-63
lines changed

.cspell.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"deque",
3838
"Dirkjan",
3939
"EPYC",
40+
"flamegraph",
4041
"hasher",
4142
"Isobel",
4243
"jaegertracing",
@@ -53,6 +54,7 @@
5354
"OTELCOL",
5455
"OTLP",
5556
"periodicreader",
57+
"pprof",
5658
"prost",
5759
"protoc",
5860
"quantile",

.github/workflows/integration_tests.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ jobs:
99
integration_tests:
1010
runs-on: ubuntu-latest
1111
timeout-minutes: 10
12-
if: ${{ github.event.label.name == 'integration tests' || contains(github.event.pull_request.labels.*.name, 'integration tests') }}
1312
steps:
1413
- name: Free disk space
1514
run: |

opentelemetry-appender-tracing/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ criterion = { workspace = true }
2828
tokio = { workspace = true, features = ["full"]}
2929

3030
[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
31-
pprof = { version = "0.13", features = ["flamegraph", "criterion"] }
31+
pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
3232

3333
[features]
3434
experimental_metadata_attributes = ["dep:tracing-log"]

opentelemetry-proto/src/transform/logs.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,15 +221,39 @@ pub mod tonic {
221221
mod tests {
222222
use crate::transform::common::tonic::ResourceAttributesWithSchema;
223223
use opentelemetry::logs::LogRecord as _;
224+
use opentelemetry::logs::Logger as _;
225+
use opentelemetry::logs::LoggerProvider as _;
224226
use opentelemetry::InstrumentationScope;
227+
use opentelemetry_sdk::logs::LogProcessor;
228+
use opentelemetry_sdk::logs::{LogResult, LoggerProvider};
225229
use opentelemetry_sdk::{logs::LogBatch, logs::LogRecord, Resource};
226230
use std::time::SystemTime;
227231

232+
#[derive(Debug)]
233+
struct MockProcessor;
234+
235+
impl LogProcessor for MockProcessor {
236+
fn emit(&self, _record: &mut LogRecord, _instrumentation: &InstrumentationScope) {}
237+
238+
fn force_flush(&self) -> LogResult<()> {
239+
Ok(())
240+
}
241+
242+
fn shutdown(&self) -> LogResult<()> {
243+
Ok(())
244+
}
245+
}
246+
228247
fn create_test_log_data(
229248
instrumentation_name: &str,
230249
_message: &str,
231250
) -> (LogRecord, InstrumentationScope) {
232-
let mut logrecord = LogRecord::default();
251+
let processor = MockProcessor {};
252+
let logger = LoggerProvider::builder()
253+
.with_log_processor(processor)
254+
.build()
255+
.logger("test");
256+
let mut logrecord = logger.create_log_record();
233257
logrecord.set_timestamp(SystemTime::now());
234258
logrecord.set_observed_timestamp(SystemTime::now());
235259
let instrumentation =

opentelemetry-sdk/CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,9 @@ metadata, a feature introduced in version 0.1.40. [#2418](https://github.com/ope
212212
.build();
213213
```
214214

215+
This implementation does not support multiple concurrent exports
216+
(`with_max_concurrent_exports` is not supported).
217+
215218
The new BatchLogProcessor can be used with OTLP Exporter, and supports
216219
following exporter features:
217220
- `grpc-tonic`: This requires `MeterProvider` to be created within a tokio
@@ -269,6 +272,8 @@ re-introduced in a future date, along with the ability to change the cardinality
269272
limit.
270273

271274
- *Breaking* Removed unused `opentelemetry_sdk::Error` enum.
275+
- *Breaking* Resource.get() modified to require reference to Key instead of owned.
276+
Replace `get(Key::from_static_str("key"))` with `get(&Key::from_static_str("key"))`
272277
- *Breaking* (Affects custom Exporter authors only) Moved `ExportError` trait from `opentelemetry::export::ExportError` to `opentelemetry_sdk::ExportError`
273278
- *Breaking (Affects custom SpanExporter, SpanProcessor authors only)*: Rename namespaces for Span exporter structs/traits
274279
before:
@@ -282,6 +287,10 @@ limit.
282287
now:
283288
`opentelemetry_sdk::logs::{ExportResult, LogBatch, LogExporter};`
284289

290+
- *Breaking* `opentelemetry_sdk::LogRecord::default()` method is removed.
291+
The only way to create log record outside opentelemetry_sdk crate is using
292+
`Logger::create_log_record()` method.
293+
285294
- *Breaking*: Rename namespaces for InMemoryExporters. (The module is still under "testing" feature flag)
286295
before:
287296
`opentelemetry_sdk::testing::logs::{InMemoryLogExporter, InMemoryLogExporterBuilder};`

opentelemetry-sdk/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ rstest = "0.23.0"
3939
temp-env = { workspace = true }
4040

4141
[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
42-
pprof = { version = "0.13", features = ["flamegraph", "criterion"] }
42+
pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
4343

4444
[features]
4545
default = ["trace", "metrics", "logs", "internal-logs"]

opentelemetry-sdk/src/logs/log_emitter.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use opentelemetry::{otel_debug, otel_info, trace::TraceContextExt, Context, Inst
66
#[cfg(feature = "spec_unstable_logs_enabled")]
77
use opentelemetry::logs::Severity;
88

9-
use std::time::SystemTime;
9+
use opentelemetry::time::now;
1010
use std::{
1111
borrow::Cow,
1212
sync::{
@@ -293,7 +293,7 @@ impl opentelemetry::logs::Logger for Logger {
293293
type LogRecord = LogRecord;
294294

295295
fn create_log_record(&self) -> Self::LogRecord {
296-
LogRecord::default()
296+
LogRecord::new()
297297
}
298298

299299
/// Emit a `LogRecord`.
@@ -313,7 +313,7 @@ impl opentelemetry::logs::Logger for Logger {
313313
}
314314
}
315315
if record.observed_timestamp.is_none() {
316-
record.observed_timestamp = Some(SystemTime::now());
316+
record.observed_timestamp = Some(now());
317317
}
318318

319319
for p in processors {
@@ -403,22 +403,22 @@ mod tests {
403403
assert_eq!(
404404
provider
405405
.resource()
406-
.get(Key::from_static_str(resource_key))
406+
.get(&Key::from_static_str(resource_key))
407407
.map(|v| v.to_string()),
408408
expect.map(|s| s.to_string())
409409
);
410410
};
411411
let assert_telemetry_resource = |provider: &super::LoggerProvider| {
412412
assert_eq!(
413-
provider.resource().get(TELEMETRY_SDK_LANGUAGE.into()),
413+
provider.resource().get(&TELEMETRY_SDK_LANGUAGE.into()),
414414
Some(Value::from("rust"))
415415
);
416416
assert_eq!(
417-
provider.resource().get(TELEMETRY_SDK_NAME.into()),
417+
provider.resource().get(&TELEMETRY_SDK_NAME.into()),
418418
Some(Value::from("opentelemetry"))
419419
);
420420
assert_eq!(
421-
provider.resource().get(TELEMETRY_SDK_VERSION.into()),
421+
provider.resource().get(&TELEMETRY_SDK_VERSION.into()),
422422
Some(Value::from(env!("CARGO_PKG_VERSION")))
423423
);
424424
};

opentelemetry-sdk/src/logs/log_processor.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,7 @@ mod tests {
10791079
.build();
10801080
let processor = BatchLogProcessor::new(exporter.clone(), BatchConfig::default());
10811081

1082-
let mut record = LogRecord::default();
1082+
let mut record = LogRecord::new();
10831083
let instrumentation = InstrumentationScope::default();
10841084

10851085
processor.emit(&mut record, &instrumentation);
@@ -1097,7 +1097,7 @@ mod tests {
10971097
.build();
10981098
let processor = SimpleLogProcessor::new(exporter.clone());
10991099

1100-
let mut record: LogRecord = Default::default();
1100+
let mut record: LogRecord = LogRecord::new();
11011101
let instrumentation: InstrumentationScope = Default::default();
11021102

11031103
processor.emit(&mut record, &instrumentation);
@@ -1255,7 +1255,7 @@ mod tests {
12551255
let exporter = InMemoryLogExporterBuilder::default().build();
12561256
let processor = SimpleLogProcessor::new(exporter.clone());
12571257

1258-
let mut record: LogRecord = Default::default();
1258+
let mut record: LogRecord = LogRecord::new();
12591259
let instrumentation: InstrumentationScope = Default::default();
12601260

12611261
processor.emit(&mut record, &instrumentation);
@@ -1268,7 +1268,7 @@ mod tests {
12681268
let exporter = InMemoryLogExporterBuilder::default().build();
12691269
let processor = SimpleLogProcessor::new(exporter.clone());
12701270

1271-
let mut record: LogRecord = Default::default();
1271+
let mut record: LogRecord = LogRecord::new();
12721272
let instrumentation: InstrumentationScope = Default::default();
12731273

12741274
processor.emit(&mut record, &instrumentation);
@@ -1285,7 +1285,7 @@ mod tests {
12851285
for _ in 0..10 {
12861286
let processor_clone = Arc::clone(&processor);
12871287
let handle = tokio::spawn(async move {
1288-
let mut record: LogRecord = Default::default();
1288+
let mut record: LogRecord = LogRecord::new();
12891289
let instrumentation: InstrumentationScope = Default::default();
12901290
processor_clone.emit(&mut record, &instrumentation);
12911291
});
@@ -1304,7 +1304,7 @@ mod tests {
13041304
let exporter = InMemoryLogExporterBuilder::default().build();
13051305
let processor = SimpleLogProcessor::new(exporter.clone());
13061306

1307-
let mut record: LogRecord = Default::default();
1307+
let mut record: LogRecord = LogRecord::new();
13081308
let instrumentation: InstrumentationScope = Default::default();
13091309

13101310
processor.emit(&mut record, &instrumentation);
@@ -1356,7 +1356,7 @@ mod tests {
13561356
let exporter = LogExporterThatRequiresTokio::new();
13571357
let processor = SimpleLogProcessor::new(exporter.clone());
13581358

1359-
let mut record: LogRecord = Default::default();
1359+
let mut record: LogRecord = LogRecord::new();
13601360
let instrumentation: InstrumentationScope = Default::default();
13611361

13621362
// This will panic because an tokio async operation within exporter without a runtime.
@@ -1412,7 +1412,7 @@ mod tests {
14121412
for _ in 0..concurrent_emit {
14131413
let processor_clone = Arc::clone(&processor);
14141414
let handle = tokio::spawn(async move {
1415-
let mut record: LogRecord = Default::default();
1415+
let mut record: LogRecord = LogRecord::new();
14161416
let instrumentation: InstrumentationScope = Default::default();
14171417
processor_clone.emit(&mut record, &instrumentation);
14181418
});
@@ -1436,7 +1436,7 @@ mod tests {
14361436
let exporter = LogExporterThatRequiresTokio::new();
14371437
let processor = SimpleLogProcessor::new(exporter.clone());
14381438

1439-
let mut record: LogRecord = Default::default();
1439+
let mut record: LogRecord = LogRecord::new();
14401440
let instrumentation: InstrumentationScope = Default::default();
14411441

14421442
processor.emit(&mut record, &instrumentation);
@@ -1455,7 +1455,7 @@ mod tests {
14551455

14561456
let processor = SimpleLogProcessor::new(exporter.clone());
14571457

1458-
let mut record: LogRecord = Default::default();
1458+
let mut record: LogRecord = LogRecord::new();
14591459
let instrumentation: InstrumentationScope = Default::default();
14601460

14611461
processor.emit(&mut record, &instrumentation);
@@ -1475,7 +1475,7 @@ mod tests {
14751475

14761476
let processor = SimpleLogProcessor::new(exporter.clone());
14771477

1478-
let mut record: LogRecord = Default::default();
1478+
let mut record: LogRecord = LogRecord::new();
14791479
let instrumentation: InstrumentationScope = Default::default();
14801480

14811481
processor.emit(&mut record, &instrumentation);

opentelemetry-sdk/src/logs/log_processor_with_async_runtime.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ mod tests {
555555
let processor =
556556
BatchLogProcessor::new(exporter.clone(), BatchConfig::default(), runtime::Tokio);
557557

558-
let mut record = LogRecord::default();
558+
let mut record = LogRecord::new();
559559
let instrumentation = InstrumentationScope::default();
560560

561561
processor.emit(&mut record, &instrumentation);
@@ -817,7 +817,7 @@ mod tests {
817817
let processor =
818818
BatchLogProcessor::new(exporter.clone(), BatchConfig::default(), runtime::Tokio);
819819

820-
let mut record = LogRecord::default();
820+
let mut record = LogRecord::new();
821821
let instrumentation = InstrumentationScope::default();
822822

823823
processor.emit(&mut record, &instrumentation);

0 commit comments

Comments
 (0)