@sentry/cloudflare: stubs from namespace.jurisdiction() bypass Durable Object instrumentation
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 86/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
- Bereich
- observability
Rechercherichtung
Beginne in packages/cloudflare/src/instrumentations/instrumentDurableObjectNamespace.ts, wo der get-Trap derzeit get und getByName als Sonderfälle behandelt. Verfolge, wie andere Namespace-Funktionen gebunden werden, und überprüfe anschließend, dass jurisdiction() einen rekursiv instrumentierten Namespace mit Weitergabe des RPC-Traces zurückgibt. Erledigt ist die Aufgabe, wenn über einen auf eine Jurisdiction beschränkten Namespace erhaltene Stubs dieselben Fetch-Spans und dasselbe sentry_rpc_meta-Verhalten wie direkte Namespace-Aufrufe erzeugen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Environment
@sentry/cloudflare: 10.74.0 (also present ondevelopand11.0.0-beta.2)- Caller wrapped with
Sentry.withSentry(),enableRpcTracePropagation: true - Durable Object namespace restricted to a jurisdiction (
env.MY_DO.jurisdiction('eu'))
Description
instrumentDurableObjectNamespace wraps get and getByName so the returned stub gets fetch spans and
RPC trace propagation. Every other function on the namespace, including jurisdiction, goes through
value.bind(target), so a jurisdiction-restricted namespace is the raw binding. Stubs from it get
no fetch span and never append __sentry_rpc_meta__.
That applies to every Durable Object call from an app that uses data-location jurisdictions (for
example EU residency). The traces break at the Durable Object boundary. Combined with the receiver-side gap in #24443, the receiver
also loses all of its telemetry.
Reproduction
const ns = env.MY_DO.jurisdiction('eu');
const stub = ns.get(ns.idFromName('x'));
await stub.someRpcMethod('a'); // receiver sees no __sentry_rpc_meta__; no caller-side span
Compare with env.MY_DO.get(env.MY_DO.idFromName('x')), which does propagate.
Expected
jurisdiction() returns a namespace instrumented the same way, i.e.
instrumentDurableObjectNamespace(value.apply(target, args), propagateRpcTrace).
Code
packages/cloudflare/src/instrumentations/instrumentDurableObjectNamespace.ts: the get trap only
special-cases get/getByName.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 8.7k
- Forks
- 1.9k
- Ø Merge
- 1 T. 16 Std.
- Gemergte PRs (30 T.)
- 552
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus getsentry/sentry-javascript
-
Browser Bug Next.js Traces
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
getsentry/sentry-javascript#24672 · 2 Kommentare · 1 zugewiesene Person ·
-
javascript
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
getsentry/sentry-javascript#24200 · 2 Kommentare ·
-
javascript Task
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
getsentry/sentry-javascript#24134 · 1 Kommentar ·
-
Cloudflare Workers javascript Tests
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
getsentry/sentry-javascript#24051 · 1 Kommentar ·
-
Bug Bun javascript
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 92/100
getsentry/sentry-javascript#24045 · 1 Kommentar ·
Alle Issues in getsentry/sentry-javascript
Ähnliche Issues
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
motiondivision/motion#3849 ·
-
Add: S Play Event HD Offencheck:passed streams:add
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
LiteLLM proxy response_cost (x-litellm-response-cost) is never applied to ChatModelOutput.cost Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
i-am-bee/beeai-framework#1697 · 1 Reaktion ·
-
Support bun dedupe Offenenhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
antfu/node-modules-inspector#214 ·