Skip to content

Commit 91dac63

Browse files
authored
fix: LogProcessor.SetResource to require mutable self (open-telemetry#2801)
1 parent cfc944a commit 91dac63

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

logs.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
3 M/sec (when enabled) (.with_log_processor(SimpleLogProcessor::new(NoopExporter::new(true))))
1818
26 M/sec (when disabled) (.with_log_processor(SimpleLogProcessor::new(NoopExporter::new(false)))
1919
*/
20+
use opentelemetry::Key;
2021
use opentelemetry_appender_tracing::layer;
2122
use opentelemetry_sdk::error::OTelSdkResult;
2223
use opentelemetry_sdk::logs::concurrent_log_processor::SimpleConcurrentLogProcessor;
2324
use opentelemetry_sdk::logs::SdkLoggerProvider;
2425
use opentelemetry_sdk::logs::{LogBatch, LogExporter};
25-
2626
use opentelemetry_sdk::Resource;
2727
use tracing::error;
2828
use tracing_subscriber::prelude::*;
@@ -32,14 +32,23 @@ mod throughput;
3232
#[derive(Debug)]
3333
struct NoopExporter {
3434
enabled: bool,
35+
service_name: Option<String>,
3536
}
37+
3638
impl NoopExporter {
3739
fn new(enabled: bool) -> Self {
38-
Self { enabled }
40+
Self {
41+
enabled,
42+
service_name: None,
43+
}
3944
}
4045
}
46+
4147
impl LogExporter for NoopExporter {
4248
async fn export(&self, _: LogBatch<'_>) -> OTelSdkResult {
49+
if let Some(_service_name) = &self.service_name {
50+
// do something with the service name
51+
}
4352
Ok(())
4453
}
4554

@@ -56,7 +65,11 @@ impl LogExporter for NoopExporter {
5665
self.enabled
5766
}
5867

59-
fn set_resource(&mut self, _: &Resource) {}
68+
fn set_resource(&mut self, res: &Resource) {
69+
self.service_name = res
70+
.get(&Key::from_static_str("service.name"))
71+
.map(|v| v.to_string());
72+
}
6073
}
6174

6275
fn main() {

0 commit comments

Comments
 (0)