The Dartastic Pro at a glance dashboard
One figure per Dartastic Pro feature, row by row: reliability, performance, the web vitals and resource health. Each figure opens the screen that explains it.
Who it is for: Anyone who wants the state of an app in one look: the person on call, a lead before a release, a teammate new to the Observatory. Start here, then open the screen behind a figure.
Open it from Dashboards in the Observatory: choose Dartastic Pro at a glance. It is a built-in board, so it is read-only; Save a copy makes one you can change. How every panel reads the range, its colors and its empty states is on Reading a board.
The toolbar: the filters Build, Platform and Service, each All until you pick a value, and the time range. Each menu lists the values flutter.session.count carries in the range. Each panel below names the filters that narrow it.
Reliability
Crash-free sessions
The share of ended sessions that did not end in a crash. Abnormal ends are shown apart and do not count against it. It is a session figure, not a count of crashes: the Crashes list counts crashes.
- How it is computed: Crash-free sessions = 1 − crashed sessions / ended sessions, as a percent, the way Sentry counts it. Both come from
flutter.session.count: an ended session is one whosesession.statusis ok, errored, unhandled, crashed or abnormal, and only crashed counts against the figure. A range whose sessions all ended without a crash reads 100%. One figure for the whole picked range. - Better: Higher is better. Beside the figure, its change from the prior range of the same length: green when it moved the better way, red when it moved the other way.
- Colors: The figure turns amber below 99.5% and red below 99%.
- No session ended: when no session ended in the range, it shows this instead of a figure: No session end recorded in this range, so crash-free sessions can't be computed.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.session.count.
Crashed sessions
How many sessions ended in a crash. A session figure: the Crashes list counts the crashes themselves.
- How it is computed:
flutter.session.countwheresession.statusis crashed. One figure for the whole picked range. - Better: Lower is better. Beside the figure, its change from the prior range of the same length: green when it moved the better way, red when it moved the other way.
- Colors: The figure turns amber above 1 and red above 10.
- No session ended: when no session ended in the range, it shows this instead of a figure: No session end recorded in this range, so crashed sessions can't be computed.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.session.count.
Severe ANRs
App-not-responding events the SDK rated severe.
- How it is computed:
flutter.anr.eventswhereflutter.anr.severityis severe. One figure for the whole picked range. - Better: Lower is better. Beside the figure, its change from the prior range of the same length: green when it moved the better way, red when it moved the other way.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.anr.events.
App exits
Every exit the OS reported, for any reason.
- How it is computed:
dartastic.app.exit.count, every reason. One figure for the whole picked range. - Better: Lower is better. Beside the figure, its change from the prior range of the same length: green when it moved the better way, red when it moved the other way.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
dartastic.app.exit.count.
Performance
Cold start, p95
How long a cold start takes at the 95th percentile. Keep it under 3 s; Google Play flags cold starts of 5 s or more.
- How it is computed: The 95th percentile of
flutter.app.startup.durationfor cold starts (app.start.typecold). One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 3 s and red above 5 s.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.app.startup.duration.
Janky frames
Dropped frames, of all frames built. Keep it under 5%; at 10% the app feels broken.
- How it is computed:
flutter.frame.droppeddivided by the number offlutter.frame.buildsamples, as a percent. One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 5% and red above 10%.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.frame.dropped.
Worst vsync deadline miss
The longest any frame missed its vsync deadline.
- How it is computed: The highest value of
flutter.vsync.deadline_miss_maxany device reported. One figure for the whole picked range. - Better: Lower is better.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.vsync.deadline_miss_max.
SDK native heap (jemalloc)
The Dartastic engine's own native heap, not the app's.
- How it is computed: The average of
dartastic.process.runtime.dart.native_heap.allocatedacross devices. One figure for the whole picked range. - Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
dartastic.process.runtime.dart.native_heap.allocated.
User experience (web vitals)
Largest contentful paint, p75
Largest contentful paint at the 75th percentile, from your Flutter web app.
- How it is computed: The 75th percentile of
flutter.experience.lcp. One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 2.5 s and red above 4 s.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.experience.lcp.
Interaction to next paint, p75
Interaction to next paint at the 75th percentile, from your Flutter web app.
- How it is computed: The 75th percentile of
flutter.experience.inp. One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 200 ms and red above 500 ms.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.experience.inp.
First contentful paint, p75
First contentful paint at the 75th percentile, from your Flutter web app.
- How it is computed: The 75th percentile of
flutter.experience.fcp. One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 1.8 s and red above 3 s.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.experience.fcp.
Time to first byte on the web, p75
Web only: a page load's wait for its first byte at the 75th percentile, from the browser's navigation timing. Mobile requests time theirs on their HTTP spans.
- How it is computed: The 75th percentile of
flutter.experience.ttfb. One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 800 ms and red above 1.8 s.
- Web only: it hides while Platform is set, because web reports carry no platform.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
flutter.experience.ttfb.
Resource health
Memory pressure
The highest OS memory-pressure level any device reported: Android's trim level, or an iOS memory warning. It reads as the level's name.
- How it is computed: The highest value of
memory_pressure.level, shown by its name (iOS memory warning, Running moderate, Running low, Running critical, Background, moderate, Background, complete). The levels: 1 is an iOS memory warning; Android records 5, 10 and 15 (running moderate, running low, running critical) and 60 and 80 (background moderate, background complete). UI hidden (20) and Background (40) are the app leaving the screen, not pressure, and are not recorded. One figure for the whole picked range. - Better: Lower is better.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
memory_pressure.level.
Low-power mode share
The share of battery reports with iOS Low Power Mode or Android Battery Saver on; a device that reports more often weighs more.
- How it is computed: The average of
dartastic.battery.low_power_mode, shown as a percent. One figure for the whole picked range. - Better: Lower is better.
- Colors: The figure turns amber above 20% and red above 50%.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens the Metric screen on
dartastic.battery.low_power_mode.
Flaky requests
Client requests the SDK judged flaky, of all client requests.
- How it is computed: Client spans (span kind client) with
dartastic.network.flakytrue, divided by all client spans, shown as a percent. One figure for the whole picked range. - Better: Lower is better.
- Filters: Build, Platform and Service narrow it.
- Opens: its title opens Traces.