Skip to content

Commit e3e95e0

Browse files
authored
UserEvent LogExporter - minor bug fix, improved logging (#178)
1 parent 06127eb commit e3e95e0

File tree

2 files changed

+26
-33
lines changed

2 files changed

+26
-33
lines changed

opentelemetry-user-events-logs/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
- Removed `opentelemetry_user_events_logs::{ExporterConfig, ReentrantLogProcessor, UserEventsExporter}` from the public API. Ability to customize Provider Group, Keyword will be added future.
1616
- `log_record.event_name()` is used to populate EventName. Previous behavior of populating EventName from specially named attributes is removed.
1717
- Fix CommonSchema version to `0x0400` instead of `0x0401`
18+
- Bug fix: `export()` now returns `Err` when the tracepoint is not found.
19+
- Include error number in internal logs, when writing to tracepoint fails.
1820

1921
## v0.9.0
2022

opentelemetry-user-events-logs/src/logs/exporter.rs

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ impl ExporterConfig {
3838
self.keywords_map.get(name).copied()
3939
}
4040

41-
pub(crate) fn get_log_keyword_or_default(&self, name: &str) -> Option<u64> {
41+
pub(crate) fn get_log_keyword_or_default(&self, name: &str) -> u64 {
4242
if self.keywords_map.is_empty() {
43-
Some(self.default_keyword)
43+
self.default_keyword
4444
} else {
45-
self.get_log_keyword(name)
45+
self.get_log_keyword(name).unwrap_or(self.default_keyword)
4646
}
4747
}
4848
}
@@ -228,31 +228,21 @@ impl UserEventsExporter {
228228
.exporter_config
229229
.get_log_keyword_or_default(instrumentation.name().as_ref());
230230

231-
if keyword.is_none() {
232-
otel_debug!(
233-
name: "UserEvents.KeywordNotFound",
234-
log_record_name = format!("{:?}", log_record.event_name()),
235-
instrumentation_name = format!("{:?}", instrumentation.name()),
236-
keyword = self.exporter_config.default_keyword,
237-
);
238-
return Ok(());
239-
}
240-
241-
let log_es = if let Some(es) = self
242-
.provider
243-
.find_set(level.as_int().into(), keyword.unwrap())
244-
{
231+
let log_es = if let Some(es) = self.provider.find_set(level.as_int().into(), keyword) {
245232
es
246233
} else {
247234
otel_debug!(
248235
name: "UserEvents.EventSetNotFound",
249236
level = level.as_int(),
250-
keyword = keyword.unwrap(),
237+
keyword = keyword,
251238
);
252-
return Ok(());
239+
return Err(OTelSdkError::InternalFailure(format!(
240+
"EventSet not found for level: {:?} and keyword: {}",
241+
level, keyword
242+
)));
253243
};
254244
if log_es.enabled() {
255-
let res = EBW.with(|eb| {
245+
let _res = EBW.with(|eb| {
256246
let mut eb = eb.borrow_mut();
257247
let event_tags: u32 = 0; // TBD name and event_tag values
258248
eb.reset(instrumentation.name().as_ref(), event_tags as u16);
@@ -336,7 +326,7 @@ impl UserEventsExporter {
336326
eb.add_str(
337327
"severityText",
338328
log_record.severity_text().as_ref().unwrap(),
339-
FieldFormat::SignedInt,
329+
FieldFormat::Default,
340330
0,
341331
);
342332
cs_b_count += 1;
@@ -352,27 +342,28 @@ impl UserEventsExporter {
352342
eb.set_struct_field_count(cs_b_bookmark, cs_b_count);
353343

354344
let result = eb.write(&log_es, None, None);
345+
355346
if result > 0 {
356-
return Err(OTelSdkError::InternalFailure(
357-
"Failed to write event to user_events tracepoint".into(),
358-
));
347+
Err(OTelSdkError::InternalFailure(format!(
348+
"Failed to write event to user_events tracepoint with result code: {}",
349+
result
350+
)))
351+
} else {
352+
Ok(())
359353
}
360-
Ok(())
361354
});
362-
if let Err(e) = res {
363-
otel_debug!(name: "UserEvents.WriteFailed", error = format!("{:?}", e));
364-
return Err(OTelSdkError::InternalFailure(
365-
"Failed to write event to user_events tracepoint".into(),
366-
));
367-
}
355+
Ok(())
368356
} else {
369357
otel_debug!(
370358
name: "UserEvents.EventSetNotEnabled",
371359
level = level.as_int(),
372-
keyword = keyword.unwrap(),
360+
keyword = keyword,
373361
);
362+
363+
// Return success when the event is not enabled
364+
// as this is not an error condition.
365+
Ok(())
374366
}
375-
Ok(())
376367
}
377368
}
378369

0 commit comments

Comments
 (0)