chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:32:57 +08:00
commit cd420f9332
4811 changed files with 884702 additions and 0 deletions
@@ -0,0 +1,52 @@
import { type Span, TraceFlags, trace } from "@opentelemetry/api";
import type { Event, EventHint } from "@sentry/remix";
export type GetActiveSpan = () => Span | undefined;
const defaultGetActiveSpan: GetActiveSpan = () => trace.getActiveSpan();
export function getActiveTraceIds(
getActiveSpan: GetActiveSpan = defaultGetActiveSpan
): { traceId: string; spanId: string; sampled: boolean } | undefined {
try {
const span = getActiveSpan();
if (!span) return undefined;
const ctx = span.spanContext();
return {
traceId: ctx.traceId,
spanId: ctx.spanId,
sampled: (ctx.traceFlags & TraceFlags.SAMPLED) !== 0,
};
} catch {
return undefined;
}
}
export function addOtelTraceContextToEvent(
event: Event,
_hint: EventHint,
getActiveSpan: GetActiveSpan = defaultGetActiveSpan
): Event {
const ids = getActiveTraceIds(getActiveSpan);
if (!ids) return event;
// We intentionally overwrite Sentry's own trace_id/span_id on contexts.trace.
// With skipOpenTelemetrySetup: true, Sentry generates an internal trace_id
// unrelated to OTel; replacing it with the active OTel ids is the whole
// point of this processor — it makes Sentry issues navigable to the
// corresponding OTel trace in any backend.
return {
...event,
contexts: {
...event.contexts,
trace: {
...event.contexts?.trace,
trace_id: ids.traceId,
span_id: ids.spanId,
},
},
tags: {
...event.tags,
otel_sampled: ids.sampled ? "true" : "false",
},
};
}