mirror of
https://github.com/denoland/deno.git
synced 2024-12-18 05:14:21 -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:
parent
da3a676d1c
commit
1c0f236923
2 changed files with 8 additions and 7 deletions
|
@ -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>(
|
||||
|
|
|
@ -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?
|
||||
|
|
Loading…
Reference in a new issue