Skip to content

Commit 90cb292

Browse files
chore: use TelemetryResourceDetector for telemetry sdk values when creating default resource (#1974)
1 parent b4dee33 commit 90cb292

File tree

2 files changed

+31
-33
lines changed

2 files changed

+31
-33
lines changed

runtime/Cargo.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ opentelemetry-otlp = { version = "0.27.0", optional = true, default-features = f
3131
"reqwest-client",
3232
"trace",
3333
] }
34-
# NOTE: If the version of `opentelemetry_sdk` is changed/updated, remember up update the
35-
# `telemetry.sdk.version` value in `src/trace.rs:373`
36-
opentelemetry_sdk = { version = "=0.27.1", optional = true, default-features = false, features = [
34+
opentelemetry_sdk = { version = "0.27.0", optional = true, default-features = false, features = [
3735
"http",
3836
"logs",
3937
"metrics",

runtime/src/telemetry.rs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@ use opentelemetry_sdk::{
1616
logs::{LogRecord, Logger, LoggerProvider},
1717
metrics::{MeterProviderBuilder, PeriodicReader, SdkMeterProvider, Temporality},
1818
propagation::TraceContextPropagator,
19+
resource::{Resource, ResourceDetector, TelemetryResourceDetector},
1920
runtime,
2021
trace::TracerProvider,
21-
Resource,
2222
};
2323
use opentelemetry_semantic_conventions::{
24-
attribute::{
25-
CODE_FILEPATH, CODE_LINENO, SERVICE_NAME, SERVICE_VERSION, TELEMETRY_SDK_LANGUAGE,
26-
TELEMETRY_SDK_NAME, TELEMETRY_SDK_VERSION,
27-
},
24+
attribute::{CODE_FILEPATH, CODE_LINENO, SERVICE_NAME, SERVICE_VERSION},
2825
SCHEMA_URL,
2926
};
3027
use tracing::Event as TracingEvent;
@@ -367,32 +364,35 @@ pub(crate) fn log_level_as_severity(level: log::Level) -> Severity {
367364
pub fn resource(crate_name: &'static str, package_version: &'static str) -> Resource {
368365
let project_name = std::env::var("SHUTTLE_PROJECT_NAME").ok();
369366

370-
Resource::from_schema_url(
371-
[
372-
Some(KeyValue::new(
373-
SERVICE_NAME,
374-
project_name.clone().unwrap_or_else(|| crate_name.into()),
375-
)),
376-
Some(KeyValue::new(SERVICE_VERSION, package_version)),
377-
Some(KeyValue::new(TELEMETRY_SDK_NAME, "opentelemetry")),
378-
Some(KeyValue::new(TELEMETRY_SDK_VERSION, "0.27.1")),
379-
Some(KeyValue::new(TELEMETRY_SDK_LANGUAGE, "rust")),
380-
Some(KeyValue::new("shuttle.project.crate.name", crate_name)),
381-
Some(KeyValue::new(
382-
"shuttle.deployment.env",
383-
std::env::var("SHUTTLE_ENV")
367+
// `TelemetryResourceDetector::detect()` automatically provides:
368+
// - telemetry.sdk.name
369+
// - telemetry.sdk.version
370+
// - telemetry.sdk.language
371+
TelemetryResourceDetector
372+
.detect(Default::default())
373+
.merge(Box::new(Resource::from_schema_url(
374+
[
375+
Some(KeyValue::new(
376+
SERVICE_NAME,
377+
project_name.clone().unwrap_or_else(|| crate_name.into()),
378+
)),
379+
Some(KeyValue::new(SERVICE_VERSION, package_version)),
380+
Some(KeyValue::new("shuttle.project.crate.name", crate_name)),
381+
Some(KeyValue::new(
382+
"shuttle.deployment.env",
383+
std::env::var("SHUTTLE_ENV")
384+
.ok()
385+
.unwrap_or("unknown".into()),
386+
)),
387+
std::env::var("SHUTTLE_PROJECT_ID")
384388
.ok()
385-
.unwrap_or("unknown".into()),
386-
)),
387-
std::env::var("SHUTTLE_PROJECT_ID")
388-
.ok()
389-
.map(|value| KeyValue::new("shuttle.project.id", value)),
390-
project_name.map(|value| KeyValue::new("shuttle.project.name", value)),
391-
]
392-
.into_iter()
393-
.flatten(),
394-
SCHEMA_URL,
395-
)
389+
.map(|value| KeyValue::new("shuttle.project.id", value)),
390+
project_name.map(|value| KeyValue::new("shuttle.project.name", value)),
391+
]
392+
.into_iter()
393+
.flatten(),
394+
SCHEMA_URL,
395+
)))
396396
}
397397

398398
pub fn init_log_subscriber(endpoint: &Option<String>, resource: Resource) -> LoggerProvider {

0 commit comments

Comments
 (0)