1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-17 21:03:01 -05:00

fix(unstable): don't unwrap optional state in otel (#27292)

otel global state may not be initialized if otel is not enabled, so bail
out instead of panicking.

Fixes: https://github.com/denoland/deno/issues/27272
This commit is contained in:
snek 2024-12-09 22:33:07 +01:00 committed by GitHub
parent da3a676d1c
commit 1c0f236923
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 7 deletions

View file

@ -732,9 +732,9 @@ fn op_otel_instrumentation_scope_enter(
#[op2(fast)]
fn op_otel_instrumentation_scope_enter_builtin(state: &mut OpState) {
state.put(InstrumentationScope(
BUILT_IN_INSTRUMENTATION_SCOPE.get().unwrap().clone(),
));
if let Some(scope) = BUILT_IN_INSTRUMENTATION_SCOPE.get() {
state.put(InstrumentationScope(scope.clone()));
}
}
#[op2(fast)]
@ -749,6 +749,9 @@ fn op_otel_log(
let Some(Processors { logs, .. }) = OTEL_PROCESSORS.get() else {
return;
};
let Some(instrumentation_scope) = BUILT_IN_INSTRUMENTATION_SCOPE.get() else {
return;
};
// Convert the integer log level that ext/console uses to the corresponding
// OpenTelemetry log severity.
@ -776,10 +779,7 @@ fn op_otel_log(
);
}
logs.emit(
&mut log_record,
BUILT_IN_INSTRUMENTATION_SCOPE.get().unwrap(),
);
logs.emit(&mut log_record, instrumentation_scope);
}
fn owned_string<'s>(

View file

@ -220,6 +220,7 @@ function submitSpan(
startTime: number,
endTime: number,
) {
if (!TRACING_ENABLED) return;
if (!(traceFlags & TRACE_FLAG_SAMPLED)) return;
// TODO(@lucacasonato): `resource` is ignored for now, should we implement it?