Skip to content

Capabilities by runtime

What each runtime can send to Belvador: automatic, you call it, or not possible — and which ones a test proves.

Markdown
On this page

What each runtime can send to Belvador, generated from the same list the SDK tests check. Automatic needs no code beyond setup; You call it needs a function call in your code; Not possible cannot work on that runtime. Tested means a test in Belvador's repository runs it; seen in production adds the date it was confirmed on a real customer app; untested means it follows the same protocol but nobody has run it here yet.

Errors and connection#

RuntimeUncaught errorsErrors you sendConnection checkDropped-data counts
Browser (@belvador/browser)Automatic · testedYou call it · testedYou call it · testedAutomatic · tested
React (@belvador/react)Automatic · testedYou call it · tested——
TanStack Start — browserAutomatic · tested———
TanStack Start — serverAutomatic · testedYou call it · testedYou call it · seen in production 2026-10-19—
Cloudflare WorkersAutomatic · testedYou call it · testedYou call it · tested—
Node.js (@sentry/node)Automatic · tested on a real node 2026-10-27You call it · tested——
Bun (@sentry/bun)Automatic · tested on a real node 2026-10-27You call it · tested on a real node 2026-10-27——
Supabase Edge Functions (@sentry/deno)You call it · tested on a real node 2026-10-27You call it · tested on a real node 2026-10-27——
Python (sentry-sdk)Automatic · tested on a real node 2026-10-27You call it · tested——
Other Sentry SDKs (Go, PHP, Ruby, Java, .NET)—You call it · untested, experimental——

Background work, traces, source maps#

RuntimeMonitor check-insTrace headersSource maps
Browser (@belvador/browser)Not possibleYou call it · tested, experimentalYou call it · tested
React (@belvador/react)Not possible——
TanStack Start — browser—You call it · tested, experimental—
TanStack Start — serverYou call it · tested——
Cloudflare WorkersYou call it · testedYou call it · tested—
Node.js (@sentry/node)You call it · testedYou call it · tested—
Python (sentry-sdk)You call it · testedYou call it · tested—
Go (sentry-go)—You call it · tested—
Java (sentry-java)—You call it · tested—
HTTP (curl)You call it · tested——
Other Sentry SDKs (Go, PHP, Ruby, Java, .NET)You call it · untested, experimental——

Traces and logs (OpenTelemetry)#

These rows come from Belvador's certification harness, which runs a real app on each runtime against a full local copy of the pipeline and reads every span and log back; the date and versions are those of the last passing run. Linked to traces means log records carried the request's trace id and span id. Setup for each runtime: OpenTelemetry.

RuntimeTracesLogsTested with
Node.js (OpenTelemetry, CJS + ESM)Automatic · testedAutomatic · tested · linked to tracesnode 22.23.4, @opentelemetry/sdk-node 0.300.0, @opentelemetry/auto-instrumentations-node 0.82.0, pino 10.4.0 (2026-10-24)
Python (OpenTelemetry)Automatic · testedAutomatic · tested · linked to tracespython 3.12.15, opentelemetry-distro 0.66b1, opentelemetry-sdk 1.45.1, flask 3.1.3 (2026-10-25)
Go (OpenTelemetry)You call it · testedYou call it · tested · linked to tracesgo 1.27.3, go.opentelemetry.io/otel v1.47.0, otelhttp v0.72.0, otelslog v0.21.0 (2026-10-24)
Java (OpenTelemetry Java agent)Automatic · testedAutomatic · tested · linked to tracesjava 21.0.12.1, opentelemetry-javaagent 2.32.0 (2026-10-24)
Deno (built-in OpenTelemetry)Automatic · tested · no retry on 429/503Automatic · tested · linked to traces · no retry on 429/503deno 2.6.10 (2026-10-24)
OpenTelemetry CollectorYou call it · testedYou call it · testedotelcol-contrib 0.163.1, telemetrygen v0.163.0 (2026-10-27)
Cloudflare Workers (built-in OTLP export)Automatic · untested, plannedAutomatic · untested, planned—
Vercel (Trace Drains)Automatic · untested, plannedNot possible—
Supabase (OTLP log drain)Not possibleAutomatic · untested, planned—

Notes#

  • Monitor check-ins never come from browsers: Belvador refuses them, so a closed tab is never a failed job. Use a server, a worker or HTTP check-ins.

  • Trace headers in browsers are experimental: they work, but turn them on per API only after checking its CORS settings — see Link errors across tiers.

  • Dropped-data counts are the SDK's client reports: how many events it dropped and why (rate limit, offline, queue full). They feed the project's Connection tab.

  • Source maps are uploaded from CI, not sent by the SDK — see Source maps.

  • Rows marked untested are best effort. If one does not work, tell us at hello@belvador.dev.

For the data each Belvador package sends — and what it drops before anything leaves your app — see Choose the right SDK.

Spotted something wrong or missing? Tell us: hello@belvador.dev