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

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.

[TODO: screenshot of the Dartastic Pro at a glance dashboard over the last 24 hours, every filter All: Reliability, Performance, User experience (web vitals) and Resource health]

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 whose session.status is 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.count where session.status is 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.events where flutter.anr.severity is 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.duration for cold starts (app.start.type cold). 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.dropped divided by the number of flutter.frame.build samples, 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_max any 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.allocated across 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.flaky true, 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.