MIGRATION WEDGE
Keep your Sentry SDK. Switch your bill.
Point your existing Sentry.init(dsn: ...) at a Dartastic Hosted box. Your sentry-dart, sentry-cocoa, sentry-java, or sentry-javascript ships the same events to your own dedicated 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 Hosted box's dashboards. Your build pipeline keeps working, even sentry-cli releases upload-sourcemaps.
Single-tenant box
Your traces never share a database with another customer. One Hosted 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_recordingenvelope 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 box's dashboards for now; deeper Linear / Jira hooks are a follow-up.
The five-minute migration
- Subscribe to a Hosted tier on the Pricing page. We provision your dedicated VPS in ~15 minutes.
- Mint a DSN from the dashboard's Sentry DSNs tab. One DSN per app. Copy the URL.
- 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 Hosted box. - (Optional) Re-run your existing
sentry-cli releases new+upload-sourcemapscommands 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.
Try Dartastic Hosted Observatory
Single-tenant box. Pay-as-you-go. Cancel anytime.