vitals
Monitor app vitals, crash rates, ANR, startup times, rendering performance, battery usage, and memory. Supports threshold-based CI gating with exit code 6.
Commands
| Command | Description |
|---|---|
vitals overview | Dashboard summary of all vital metrics |
vitals crashes | Query crash rate metrics |
vitals anr | Query ANR rate metrics |
vitals startup | Query slow startup metrics |
vitals rendering | Query slow rendering metrics |
vitals battery | Query excessive wakeup metrics |
vitals memory | Query stuck wakelock metrics |
vitals anomalies | Detect anomalies in app vitals |
vitals errors search | Search error issues and reports |
vitals compare | Compare metric trend across periods |
Shared Options
The metric commands (crashes, anr, startup, rendering, battery, memory) share these options:
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | Threshold value for CI alerting (exit code 6 if breached) |
Valid dimensions: apiLevel, versionCode, deviceModel, deviceType, countryCode, deviceRamBucket, deviceSocName, deviceCpuMakeModel, deviceGlEsVersion, deviceVulkanVersion, deviceOpenGlVersion, deviceBrand.
vitals overview
Dashboard summary aggregating all vital metrics into a single view.
Synopsis
gpc vitals overviewOptions
No command-specific options. Uses global --app flag.
Example
gpc vitals overview --app com.example.myapp{
"crashRate": { "value": 1.2, "threshold": "bad" },
"anrRate": { "value": 0.3, "threshold": "good" },
"slowStartRate": { "value": 5.1, "threshold": "acceptable" },
"slowRenderingRate": { "value": 2.8, "threshold": "good" },
"excessiveWakeupRate": { "value": 0.1, "threshold": "good" },
"stuckWakelockRate": { "value": 0.05, "threshold": "good" }
}vitals crashes
Query crash rate metrics, optionally grouped by dimension.
Synopsis
gpc vitals crashes [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | Crash rate threshold (exit code 6 if breached) |
Example
Query crash rate:
gpc vitals crashes --app com.example.myappQuery crash rate by version code:
gpc vitals crashes --app com.example.myapp --dim versionCode --days 30CI gating with threshold:
gpc vitals crashes --app com.example.myapp --threshold 2.0If the crash rate exceeds 2.0%, the command exits with code 6:
Threshold breached: 2.4 > 2.0Use in CI pipelines:
- name: Check crash rate
run: gpc vitals crashes --app com.example.myapp --threshold 2.0vitals anr
Query ANR (Application Not Responding) rate metrics.
Synopsis
gpc vitals anr [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | ANR rate threshold (exit code 6 if breached) |
Example
gpc vitals anr --app com.example.myapp --threshold 0.5Group by device model:
gpc vitals anr --app com.example.myapp --dim deviceModel --days 14vitals startup
Query cold and warm startup time metrics.
Synopsis
gpc vitals startup [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | Slow start rate threshold (exit code 6 if breached) |
Example
gpc vitals startup --app com.example.myapp --days 7vitals rendering
Query slow rendering (frame rate) metrics.
Synopsis
gpc vitals rendering [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | Slow rendering rate threshold (exit code 6 if breached) |
Example
gpc vitals rendering --app com.example.myapp --dim apiLevelvitals battery
Query excessive wakeup metrics (battery impact).
Synopsis
gpc vitals battery [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | Excessive wakeup rate threshold (exit code 6 if breached) |
Example
gpc vitals battery --app com.example.myapp --threshold 1.0vitals memory
Query stuck background wakelock metrics (memory/battery impact).
Synopsis
gpc vitals memory [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--dim | string | Group by dimension | ||
--days | number | Number of days to query | ||
--threshold | number | Stuck wakelock rate threshold (exit code 6 if breached) |
Example
gpc vitals memory --app com.example.myapp --days 30vitals anomalies
Detect anomalies in app vitals. Returns any automatically detected spikes or deviations.
Synopsis
gpc vitals anomaliesOptions
No command-specific options. Uses global --app flag.
Example
gpc vitals anomalies --app com.example.myapp{
"anomalies": [
{
"metricSet": "crashRateMetricSet",
"timelineSpec": { "period": "DAILY" },
"dimensions": [{ "dimension": "versionCode", "value": "43" }],
"metric": "crashRate",
"anomalyValue": 4.2,
"baselineValue": 1.1
}
]
}vitals errors search
Search error issues and reports across all error types.
Synopsis
gpc vitals errors search [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--filter | string | Filter expression | ||
--max | number | Maximum results |
Example
Search all errors:
gpc vitals errors search --app com.example.myappSearch with filter and limit:
gpc vitals errors search \
--app com.example.myapp \
--filter "NullPointerException" \
--max 20vitals compare
Compare a vitals metric between the current period and the previous period of the same length.
Synopsis
gpc vitals compare <metric> [options]The <metric> argument accepts: crashes, anr, startup, rendering, battery, memory.
Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--days | number | 7 | Period length in days |
Example
Compare crash rate this week vs last week:
gpc vitals compare crashes --app com.example.myapp --days 7{
"metric": "crashRateMetricSet",
"currentPeriod": { "start": "2026-03-02", "end": "2026-03-09", "value": 1.2 },
"previousPeriod": { "start": "2026-02-23", "end": "2026-03-02", "value": 1.5 },
"change": -0.3,
"changePercent": -20.0
}Compare ANR rate over 30 days:
gpc vitals compare anr --app com.example.myapp --days 30Related
- reviews -- User feedback monitoring
- CI/CD Vitals Gates -- Automated quality gates
- Exit Codes -- Exit code 6 for threshold breach