Monitor crash rates, ANR, startup times, rendering, battery, and memory. Use --threshold for CI quality gates.
gpc vitals <subcommand> [options]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 wakeup | Alias for vitals battery |
vitals memory | Query stuck wakelock metrics |
vitals lmk | Alias for vitals memory |
vitals errors search | Search error issues and reports |
vitals compare | Compare metric trend across periods |
Reporting API Required
Vitals commands use the Google Play Developer Reporting API, which must be enabled separately in your GCP project. If the API is not enabled, vitals commands will show "No vitals data available" instead of failing with a 403 error — other non-vitals commands continue to work normally.
Enable it at: https://console.cloud.google.com/apis/library/playdeveloperreporting.googleapis.com
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" }
}2
3
4
5
6
7
8
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.02
vitals 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). Also available as vitals wakeup.
Synopsis
gpc vitals battery [options]
gpc vitals wakeup [options] # alias2
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). Also available as vitals lmk (low-memory killer).
Synopsis
gpc vitals memory [options]
gpc vitals lmk [options] # alias2
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 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 202
3
4
vitals 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
}2
3
4
5
6
7
Compare ANR rate over 30 days:
gpc vitals compare anr --app com.example.myapp --days 30Related
- anomalies -- Automatic anomaly detection across all vitals metrics
- reviews -- User feedback monitoring
- CI/CD Vitals Gates -- Automated quality gates
- Exit Codes -- Exit code 6 for threshold breach
