These pages show Cloud's URLs. Sign in on Hosted and they show your server's.

Dartastic OTel Reference Demo

Working Flutter apps that show every feature of Dartastic, with the setup already done. Run them to see Dartastic work end to end, then read their code and copy from it.

It is the enhanced commercial version of the open-source Dart OTel Reference Demo, with many more demos. Every app resolves its packages from your Dartastic Pub and sends to your Observatory, so when the demo runs, your account is proven to work.

[VIDEO: The Reference Demo]
Downloading the demo from the Control Room, minting its tokens, running weather_flutter, and following the tap's trace in the Observatory.
BUILDDARTASTIC ARCHITECTUREUSERStokensissuesPub tokenpushCI exchangeapps ship to users: app stores, the web, serverssymbolscrashesstack tracessourcetelemetryDeveloper Computerflutter run · dart pub getCIGitHub Actions, GitLab, …Control Roommint tokens · role-based access controlControl Planeorganizations · roles · tokensDartastic Pubpackages · sourceObservatorysessions · traces · logsSymbolizercrashes → source linesDartastic AIanswers from bothIssue TrackerGitHub · Jira · LinearMobile + Desktop Appsphones · tablets · desktopssends with an OTLP tokenWeb Appsin browserssends with a Browser OTLP tokenDart Serversbackends · servicessends with an OTLP token

Download it

Sign in to the Control Room and press Reference Demo at the top of every screen, next to Help:

The Control Room header with the Reference Demo button, next to Help and Sign Out

It downloads dartastic-otel-reference-demo-<version>.tar.gz. Unpack it wherever you keep your code:

shell
tar -xzf dartastic-otel-reference-demo-*.tar.gz
cd dartastic-otel-reference-demo-*

The README.md at its top is the full guide. The steps below get you to your first run.

On Hosted: point it at your server

The demo starts pointed at Dartastic Cloud, so on Cloud there is nothing to do here. On Hosted, run this once with your subdomain:

shell
tool/set-hosted-slug.sh <subdomain>

It writes your subdomain to .env (which git ignores) and updates the pubspecs. Run it again with another subdomain to switch, or with "" to go back to Cloud.

The tokens it needs

Mint each one on the Control Room's Tokens screen. Each token is shown only once, so copy it when you mint it.

TokenNeeded for
Pub token
dart pub token add (once)
Every demo: flutter pub get resolves the packages from your Dartastic Pub.
OTLP token
OTEL_EXPORTER_OTLP_HEADERS
Every demo: the apps send their telemetry to your Observatory.
Weather token
DARTASTIC_DEMO_WEATHER_API_TOKEN
weather_flutter and the Weather tab of all_demos_flutter: the demo weather service (50 requests a day).
Symbolizer token
DARTASTIC_SYMBOLIZER_TOKEN
symbolizer_demo_flutter only.

A read-only Pub token is enough for every demo except symbolizer_demo_flutter and crash_demo_flutter, which publish to your Pub and need a read and write token. Getting started walks through adding the Pub token and exporting the others.

Export the tokens in your shell rather than writing them into .env: a shared or committed .env is a common way secrets leak.

Run a demo

The demo is one Flutter workspace, so fetch every app's packages at once from its top folder:

shell
flutter pub get

If that succeeds, your Dartastic Pub and your Pub token work. Then start an app; tool/launch.sh asks which device to run on:

shell
tool/launch.sh --list          # every demo app
tool/launch.sh                 # weather_flutter
tool/launch.sh rum_demo_flutter
  • Docker is needed only for weather_flutter and all_demos_flutter: they bring up the weather API on your machine to show one trace across app and server.
  • The demos run on Android, iOS, macOS, Windows and Linux, on devices and simulators. They do not run on the web.

What is in it

AppWhat it shows
weather_flutterOne tap traced end to end: the app, a weather API, its cache and the outside weather service, in one trace.
all_demos_flutterAlmost every demo as a tab in one app.
rum_demo_flutterSessions, screen views, taps and frustration signals, with session replay.
crash_demo_flutterCrashes recorded and delivered even when the app dies.
symbolizer_demo_flutterAn obfuscated release build whose stack traces come back as your files and lines, and jank traced to the widget.
anr_demo_flutterApp Not Responding detection.
pii_demo_flutterKeeping personal data out of your telemetry.
webview_demo_flutterTelemetry from a web page inside your app, joined to the app's trace.
Platform vitalsRelease health, Android Vitals, iOS MetricKit, app startup, device state, thermal state, network flakiness, user experience and Linux server vitals, one app each.

Each app links to what it sent in your Observatory. To learn a feature, run its app, then read its code: it is the smallest working example of that feature. Point your AI coding assistant at it, too.