Skip to content

Commit 83ba87f

Browse files
authored
LogAppender - 5% perf gain and reduce heap alloc for SeverityText (#1997)
1 parent d8bb764 commit 83ba87f

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

opentelemetry-appender-tracing/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## vNext
44

5+
- Reduce heap allocation by using `&'static str` for `SeverityText`.
6+
57
## v0.5.0
68

79
- [1869](https://github.com/open-telemetry/opentelemetry-rust/pull/1869) Utilize the `LogRecord::set_target()` method to pass the tracing target to the SDK.

opentelemetry-appender-tracing/benches/logs.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
| noop_layer_disabled | 12 ns |
1111
| noop_layer_enabled | 25 ns |
1212
| ot_layer_disabled | 19 ns |
13-
| ot_layer_enabled | 305 ns |
13+
| ot_layer_enabled | 280 ns |
1414
*/
1515

1616
use async_trait::async_trait;

opentelemetry-appender-tracing/src/layer.rs

+11-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ where
168168
log_record.set_target(meta.target().to_string());
169169
log_record.set_event_name(meta.name());
170170
log_record.set_severity_number(severity_of_level(meta.level()));
171-
log_record.set_severity_text(meta.level().to_string().into());
171+
log_record.set_severity_text(severity_text_of_level(meta.level()).into());
172172
let mut visitor = EventVisitor::new(&mut log_record);
173173
#[cfg(feature = "experimental_metadata_attributes")]
174174
visitor.visit_experimental_metadata(meta);
@@ -201,6 +201,16 @@ const fn severity_of_level(level: &Level) -> Severity {
201201
}
202202
}
203203

204+
const fn severity_text_of_level(level: &Level) -> &'static str {
205+
match *level {
206+
Level::TRACE => "TRACE",
207+
Level::DEBUG => "DEBUG",
208+
Level::INFO => "INFO",
209+
Level::WARN => "WARN",
210+
Level::ERROR => "ERROR",
211+
}
212+
}
213+
204214
#[cfg(test)]
205215
mod tests {
206216
use crate::layer;

0 commit comments

Comments
 (0)