Skip to content

Commit da1db84

Browse files
committed
initial commit
1 parent 927a08c commit da1db84

File tree

5 files changed

+66
-27
lines changed

5 files changed

+66
-27
lines changed

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/src/logs/log_emitter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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`.

opentelemetry-sdk/src/logs/log_processor.rs

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

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

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

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

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

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

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

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

12751275
processor.emit(&mut record, &instrumentation);
@@ -1286,7 +1286,7 @@ mod tests {
12861286
for _ in 0..10 {
12871287
let processor_clone = Arc::clone(&processor);
12881288
let handle = tokio::spawn(async move {
1289-
let mut record: LogRecord = Default::default();
1289+
let mut record: LogRecord = LogRecord::new();
12901290
let instrumentation: InstrumentationScope = Default::default();
12911291
processor_clone.emit(&mut record, &instrumentation);
12921292
});
@@ -1305,7 +1305,7 @@ mod tests {
13051305
let exporter = InMemoryLogExporterBuilder::default().build();
13061306
let processor = SimpleLogProcessor::new(exporter.clone());
13071307

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

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

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

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

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

14431443
processor.emit(&mut record, &instrumentation);
@@ -1456,7 +1456,7 @@ mod tests {
14561456

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

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

14621462
processor.emit(&mut record, &instrumentation);
@@ -1476,7 +1476,7 @@ mod tests {
14761476

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

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

14821482
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);

opentelemetry-sdk/src/logs/record.rs

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const PREALLOCATED_ATTRIBUTE_CAPACITY: usize = 5;
1818
pub(crate) type LogRecordAttributes =
1919
GrowableArray<Option<(Key, AnyValue)>, PREALLOCATED_ATTRIBUTE_CAPACITY>;
2020

21-
#[derive(Debug, Default, Clone, PartialEq)]
21+
#[derive(Debug, Clone, PartialEq)]
2222
#[non_exhaustive]
2323
/// LogRecord represents all data carried by a log record, and
2424
/// is provided to `LogExporter`s as input.
@@ -118,6 +118,21 @@ impl opentelemetry::logs::LogRecord for LogRecord {
118118
}
119119

120120
impl LogRecord {
121+
/// Crate only default constructor
122+
pub(crate) fn new() -> Self {
123+
LogRecord {
124+
event_name: None,
125+
target: None,
126+
timestamp: None,
127+
observed_timestamp: None,
128+
trace_context: None,
129+
severity_text: None,
130+
severity_number: None,
131+
body: None,
132+
attributes: LogRecordAttributes::default(),
133+
}
134+
}
135+
121136
/// Returns the event name
122137
#[inline]
123138
pub fn event_name(&self) -> Option<&'static str> {
@@ -220,60 +235,60 @@ mod tests {
220235

221236
#[test]
222237
fn test_set_eventname() {
223-
let mut log_record = LogRecord::default();
238+
let mut log_record = LogRecord::new();
224239
log_record.set_event_name("test_event");
225240
assert_eq!(log_record.event_name, Some("test_event"));
226241
}
227242

228243
#[test]
229244
fn test_set_target() {
230-
let mut log_record = LogRecord::default();
245+
let mut log_record = LogRecord::new();
231246
log_record.set_target("foo::bar");
232247
assert_eq!(log_record.target, Some(Cow::Borrowed("foo::bar")));
233248
}
234249

235250
#[test]
236251
fn test_set_timestamp() {
237-
let mut log_record = LogRecord::default();
252+
let mut log_record = LogRecord::new();
238253
let now = SystemTime::now();
239254
log_record.set_timestamp(now);
240255
assert_eq!(log_record.timestamp, Some(now));
241256
}
242257

243258
#[test]
244259
fn test_set_observed_timestamp() {
245-
let mut log_record = LogRecord::default();
260+
let mut log_record = LogRecord::new();
246261
let now = SystemTime::now();
247262
log_record.set_observed_timestamp(now);
248263
assert_eq!(log_record.observed_timestamp, Some(now));
249264
}
250265

251266
#[test]
252267
fn test_set_severity_text() {
253-
let mut log_record = LogRecord::default();
268+
let mut log_record = LogRecord::new();
254269
log_record.set_severity_text("ERROR");
255270
assert_eq!(log_record.severity_text, Some("ERROR"));
256271
}
257272

258273
#[test]
259274
fn test_set_severity_number() {
260-
let mut log_record = LogRecord::default();
275+
let mut log_record = LogRecord::new();
261276
let severity_number = Severity::Error;
262277
log_record.set_severity_number(severity_number);
263278
assert_eq!(log_record.severity_number, Some(Severity::Error));
264279
}
265280

266281
#[test]
267282
fn test_set_body() {
268-
let mut log_record = LogRecord::default();
283+
let mut log_record = LogRecord::new();
269284
let body = AnyValue::String("Test body".into());
270285
log_record.set_body(body.clone());
271286
assert_eq!(log_record.body, Some(body));
272287
}
273288

274289
#[test]
275290
fn test_set_attributes() {
276-
let mut log_record = LogRecord::default();
291+
let mut log_record = LogRecord::new();
277292
let attributes = vec![(Key::new("key"), AnyValue::String("value".into()))];
278293
log_record.add_attributes(attributes.clone());
279294
for (key, value) in attributes {
@@ -283,7 +298,7 @@ mod tests {
283298

284299
#[test]
285300
fn test_set_attribute() {
286-
let mut log_record = LogRecord::default();
301+
let mut log_record = LogRecord::new();
287302
log_record.add_attribute("key", "value");
288303
let key = Key::new("key");
289304
let value = AnyValue::String("value".into());
@@ -344,12 +359,12 @@ mod tests {
344359
fn compare_log_record_target_borrowed_eq_owned() {
345360
let log_record_borrowed = LogRecord {
346361
event_name: Some("test_event"),
347-
..Default::default()
362+
..LogRecord::new()
348363
};
349364

350365
let log_record_owned = LogRecord {
351366
event_name: Some("test_event"),
352-
..Default::default()
367+
..LogRecord::new()
353368
};
354369

355370
assert_eq!(log_record_borrowed, log_record_owned);

0 commit comments

Comments
 (0)