Revolutionary Observability Pricing

Powerful Tools, Excellent Value

It bites to be charged by the byte.

That low-entry teaser ramps up to a fat bill quickly. To save costs, Sentry and Datadog users usually reduce their sampling from 100% to even 10%. That reduces the ability to solve problems by 90%. Why hamper your observability? Get full fidelity for less. Dartastic Cloud Observatory is one flat byte meter on shared infrastructure; Dartastic Hosted is a flat per-box price.

Your app

Applies to traces & RUM sessions on every backend; errors are always kept. High-volume teams typically keep 5–25%.

≈ 30,200,000 telemetry events/mo (1,500,000 sampled sessions × 20 spans + 200,000 errors). Competitors shown at list price (no discounts assumed).

Dartastic Cloud Observatory Dev

$39/mo

$39 base includes 10 GB of ingest
≈ 9.1 GB/mo of unified-byte ingest

14-day traces and logs · 30-day metrics on shared infrastructure. One meter across spans, logs and metrics, prepaid, so there are no surprise overage bills. 7-day free trial.

Need a dedicated stack? Dartastic Hosted puts this volume on a single-tenant Hosted Dev box for about $199/mo (7-day traces, flat as you grow, no byte meter at all).

Est. Sentry

$139/mo

save $100/mo (72%)

Est. Datadog RUM

$2,250/mo

save $2,211/mo (98%)

Savings compare the plan we recommend at this volume (Cloud Observatory Dev, $39/mo).

Assumptions (editable) — estimates as of June 2026

Two products are priced here from one volume estimate (events × bytes/event). Dartastic Cloud Observatory is shared multi-tenant infrastructure on a single unified byte meter: a $39 (Dev) or $129 (Pro) base with 10 GB of ingest included, plus $10 per 25 GB prepaid pack, retention included. Dartastic Hosted is priced as box (compute) + retention storage: the box is bound by compute (ingest is a non-issue), and the data your retention SLA implies (events × bytes/event × retention) lives on included NVMe plus a flat $/GB-month add-on beyond it — so a longer-retention or higher-volume app pays for the storage it actually keeps, predictably. We show whichever of the two is cheaper at your volume, and the competitor savings use that same plan. Box and bytes/event figures are estimates pending a bytes-per-span measurement; real numbers depend on signal mix, cardinality, and compression. Competitors are shown at list price with no negotiated discounts (the only number a customer can predict); sampling reduces traces/sessions on every backend, errors are never sampled. The Sentry figure counts errors plus tracing spans (the real cost driver on Sentry's 2026 span-based meter) but not its separately-metered logs and metrics GB, replays, or per-seat fees, so it still understates. Verify with each vendor. Sentry and Datadog are trademarks of their respective owners, used here for factual comparison, not affiliation.

Migrate from Sentry

Keep your Sentry SDK. Switch your bill. Point your existing Sentry.init(dsn: ...) at a Dartastic Observatory and your sentry-dart, sentry-cocoa, sentry-java, or sentry-javascript ships the same events to your own observability stack. No re-instrumentation. No release re-cut. No vendor lock-in.

One DSN flip

Update one URL in your existing Sentry.init. We accept Sentry envelopes natively, translate to OpenTelemetry, and land them in your Observatory's dashboards. Your build pipeline keeps working, even sentry-cli releases upload-sourcemaps.

Single-tenant box

On Hosted, your traces never share a database with another customer. One box per customer. Your data, your VPS, your retention. Cancel anytime and we delete the box. No "we keep your data for compliance."

Go native when ready

Once you're on us, swap to the Dartastic Pro OTel SDK for the deeper stuff: native crash capture, PII scrubbing at source, jank attribution, locked-binary anti-tamper. Migration is gradual, not a flag day.

What we translate

Events with exceptions

Become OTel spans (kind=internal, status=ERROR) + structured log records. Stack frames attached via the standard exception.stacktrace attr. Tags, user, device / OS / browser / runtime context map to OTel semconv attrs (enduser.id, device.model.name, os.type, etc.).

Transactions

Become OTel traces: root span from the transaction, child spans from the inner spans[] array with parent/child links preserved. Sentry's http.server / db.* / cache.* op naming maps cleanly to OTel SpanKind (SERVER / CLIENT / INTERNAL).

Breadcrumbs

Become OTel span events on the exception span. HTTP calls, navigations, UI clicks, console logs. The entire trail leading up to the error rides along in chronological order with type / category / level / message / data preserved.

Sessions + release health

Become OTel counter metrics: flutter.session_started, flutter.session_crashed, flutter.session_errored, flutter.session_exited. Your existing crash-free-session math (sum(crashes) / sum(starts)) ports near-mechanically.

Source maps + releases

sentry-cli releases new $VERSION and sentry-cli releases files upload-sourcemaps both Just Work. We accept the upload, look up matching maps by release at translate time, and ship source-line frames into your trace backend, not minified gibberish.

Trace context

Sentry transaction trace_id is preserved end-to-end. Distributed traces stitched together by sentry-dart's tracing propagator land on your box as the same trace they would have been on Sentry's side.

What we don't translate (yet)

Honesty over hype. Three Sentry-side surfaces don't fit the OpenTelemetry model and stay out of scope on day one:

  • Session replay: Sentry's replay_event / replay_recording envelope items are dropped. Replay is a separate product surface, not telemetry.
  • Profiling: Sentry's pprof-based profile envelope items are dropped today. Could become an OTel profile signal in a future cut.
  • Issue management UI (assign / comment / resolve): Sentry-specific. Customers use their Observatory's dashboards for now; deeper Linear / Jira hooks are a follow-up.

The five-minute migration

  1. Subscribe to an Observatory tier on the Pricing page. A Hosted box is provisioned in ~15 minutes; Cloud is live immediately.
  2. Mint a DSN from the dashboard's Sentry DSNs tab. One DSN per app. Copy the URL.
  3. Paste into Sentry.init(dsn: ...) in your existing code. No other client changes. Ship a release or just hot-reload. Your next event lands in your Dartastic Observatory.
  4. (Optional) Re-run your existing sentry-cli releases new + upload-sourcemaps commands pointed at the same DSN host. Stack frames now show source lines in your dashboards.

Need to migrate a large existing Sentry org? Reach out via Contact. We'd love to use your org export as the design fixture.