Skip to content

Commit c4fb532

Browse files
committed
use OnceLock and clone
1 parent ee048d9 commit c4fb532

File tree

2 files changed

+18
-7
lines changed
  • opentelemetry-otlp/examples

2 files changed

+18
-7
lines changed

opentelemetry-otlp/examples/basic-otlp-http/src/main.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,20 @@ use opentelemetry_sdk::Resource;
1010
use opentelemetry_sdk::{
1111
logs::SdkLoggerProvider, metrics::SdkMeterProvider, trace::SdkTracerProvider,
1212
};
13-
use std::error::Error;
13+
use std::{error::Error, sync::OnceLock};
1414
use tracing::info;
1515
use tracing_subscriber::prelude::*;
1616
use tracing_subscriber::EnvFilter;
1717

1818
fn get_resource() -> Resource {
19-
Resource::builder()
20-
.with_service_name("basic-otlp-example-http")
21-
.build()
19+
static RESOURCE: OnceLock<Resource> = OnceLock::new();
20+
RESOURCE
21+
.get_or_init(|| {
22+
Resource::builder()
23+
.with_service_name("basic-otlp-example-grpc")
24+
.build()
25+
})
26+
.clone()
2227
}
2328

2429
fn init_logs() -> SdkLoggerProvider {

opentelemetry-otlp/examples/basic-otlp/src/main.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,20 @@ use opentelemetry_sdk::metrics::SdkMeterProvider;
88
use opentelemetry_sdk::trace::SdkTracerProvider;
99
use opentelemetry_sdk::Resource;
1010
use std::error::Error;
11+
use std::sync::OnceLock;
1112
use tracing::info;
1213
use tracing_subscriber::prelude::*;
1314
use tracing_subscriber::EnvFilter;
1415

1516
fn get_resource() -> Resource {
16-
Resource::builder()
17-
.with_service_name("basic-otlp-example-grpc")
18-
.build()
17+
static RESOURCE: OnceLock<Resource> = OnceLock::new();
18+
RESOURCE
19+
.get_or_init(|| {
20+
Resource::builder()
21+
.with_service_name("basic-otlp-example-grpc")
22+
.build()
23+
})
24+
.clone()
1925
}
2026

2127
fn init_traces() -> SdkTracerProvider {

0 commit comments

Comments
 (0)