Device metrics reference
The dashboard shows device metrics by friendly name — “CPU utilization”, “Memory used”, “Mobile Network RSRP”. To query one from the API, write an alerting policy as JSON, or export to an external system, you need its metric type instead: the identifier the platform actually stores it under.
This page lists them.
Reading the table
Metric type is the identifier to use in queries and alerting conditions.
Kind describes how values relate over time, and determines which aggregations make sense:
| Kind | Meaning |
|---|---|
GAUGE |
A measurement at a point in time. Averages and maxima are meaningful. |
CUMULATIVE |
A counter that only increases. Take a rate or a delta; the raw value is rarely what you want. |
Value type is INT64, DOUBLE, or DISTRIBUTION. A distribution holds a
bucketed spread of values, not a single number, so conditions on it must
select a statistic instead of comparing directly.
Labels are the dimensions you can filter and group by, in addition to the resource labels every device metric carries.
All metrics on this page are reported against the monitored resource type
devices.edgelq.com/device, whose device_id label identifies the device.
Connectivity and uptime
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/connected |
Device connected | GAUGE |
INT64 |
1 |
— |
devices.edgelq.com/device/uptime |
Uptime | GAUGE |
INT64 |
1 |
— |
connected is the metric behind connectivity alerting, and the one most fleets
alert on first. See Alerting on device metrics.
CPU
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/cpu/utilizationpercentage |
CPU utilization in percentage | GAUGE |
DOUBLE |
% |
cpu_number |
devices.edgelq.com/device/cpu/load_1m |
Load average 1m | GAUGE |
DOUBLE |
— | — |
devices.edgelq.com/device/cpu/utilization |
CPU stats in percentage (deprecated) | GAUGE |
DOUBLE |
% |
cpu_number, state |
Because cpu_number is a label, per-core series are reported separately. Group
across it for a whole-device figure, or a busy single core on an otherwise idle
machine will read as low utilization.
Memory
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/memory/used |
Memory used (total − available) | GAUGE |
INT64 |
By |
— |
devices.edgelq.com/device/memory/utilization |
Memory utilization | GAUGE |
DOUBLE |
% |
— |
devices.edgelq.com/device/memory/stats |
Memory usage statistics, as free reports them |
GAUGE |
INT64 |
By |
state |
devices.edgelq.com/device/memory/total |
Memory total (deprecated) | GAUGE |
INT64 |
By |
— |
The state label on memory/stats takes the values buffered, cached,
free, used, shared, and available — so this one metric gives the whole
breakdown instead of needing several.
Disk
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/disk/used |
Disk usage in bytes | GAUGE |
INT64 |
By |
mount_point, partition_name |
devices.edgelq.com/device/disk/utilization |
Disk utilization in percentage | GAUGE |
DOUBLE |
% |
mount_point, partition_name |
devices.edgelq.com/device/disk/total |
Disk total size in bytes (deprecated) | GAUGE |
INT64 |
By |
mount_point, partition_name |
Disk metrics are per mount point. On a device with separate system, data, and configuration areas that is what you want — but an alert must say which mount point it cares about, or a full data partition can hide behind an empty one.
Hardware sensors
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/hardware/temperature |
Hardware temperature (CPU, GPU, ACPI) | GAUGE |
DOUBLE |
celsius |
chip, sensor_tag |
devices.edgelq.com/device/hardware/fanspeed |
Fan speed readings | GAUGE |
INT64 |
rpm |
sensor_tag |
devices.edgelq.com/device/hardware/voltage |
Voltage readings | GAUGE |
DOUBLE |
volt |
chip, sensor_tag |
devices.edgelq.com/device/hardware/power |
Power usage readings | GAUGE |
DOUBLE |
watt |
chip, sensor_tag |
devices.edgelq.com/device/sensors |
Output of lm-sensors (deprecated) | GAUGE |
DOUBLE |
By |
chip, feature, key |
Availability depends on the hardware: a device with no fan reports no fan speed. Which sensors exist is visible on the device’s detail page before you build an alert on one.
Alert on temperature for devices in uncontrolled environments — a cabinet in direct sun behaves differently in August.
Cellular signal
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/modem/rssi |
Mobile Network RSSI | GAUGE |
DISTRIBUTION |
dBm |
access_technology, global_cell_id, physical_cell_id, tracking_area_code, arfcn |
devices.edgelq.com/device/modem/rsrp |
Mobile Network RSRP | GAUGE |
DISTRIBUTION |
dBm |
as above |
devices.edgelq.com/device/modem/rsrq |
Mobile Network RSRQ | GAUGE |
DISTRIBUTION |
dB |
as above |
devices.edgelq.com/device/modem/snr |
Mobile Network SNR | GAUGE |
DISTRIBUTION |
dB |
as above |
devices.edgelq.com/device/modem/rsrp-per-antenna |
RSRP per antenna | GAUGE |
DISTRIBUTION |
dBm |
access_technology, antenna_number |
devices.edgelq.com/device/modem/rsrq-per-antenna |
RSRQ per antenna | GAUGE |
DISTRIBUTION |
dB |
access_technology, antenna_number |
These are distributions, not single values, because signal strength varies continuously and a single sample is misleading. An alerting condition must pick a statistic from the distribution rather than compare the metric directly.
The cell identity labels make it possible to distinguish “this device has poor signal” from “every device on this cell has poor signal” — which are different problems with different fixes.
Health checks
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/healthcheck/status |
Results of configured health checks | GAUGE |
INT64 |
1 |
healthcheck_name, status_summary |
devices.edgelq.com/device/healthcheck/http/responsetime |
HTTP response time for health check | GAUGE |
DOUBLE |
ms |
healthcheck_name |
devices.edgelq.com/device/healthcheck/network/rtt |
Round-trip time during health check | GAUGE |
DOUBLE |
ms |
healthcheck_name |
These appear only for health checks you have configured, and the
healthcheck_name label is the name you gave the check. Round-trip time is
available for HTTP and ICMP checks.
Alerting on response time as well as status catches degradation before outright failure, which is usually the more useful signal.
Network interfaces
| Metric type | Display name | Kind | Value | Unit | Labels |
|---|---|---|---|---|---|
devices.edgelq.com/device/interface/bytes_received |
Bytes received | CUMULATIVE |
INT64 |
By |
interface_name |
devices.edgelq.com/device/interface/bytes_sent |
Bytes sent | CUMULATIVE |
INT64 |
By |
interface_name |
devices.edgelq.com/device/interface/packets_received |
Packets received | CUMULATIVE |
INT64 |
— | interface_name |
devices.edgelq.com/device/interface/packets_sent |
Packets sent | CUMULATIVE |
INT64 |
— | interface_name |
devices.edgelq.com/device/interface/drops_in |
Incoming packet errors or drops | CUMULATIVE |
INT64 |
— | interface_name |
devices.edgelq.com/device/interface/drops_out |
Outgoing packet errors or drops | CUMULATIVE |
INT64 |
— | interface_name |
All six are cumulative counters, so alert on a rate rather than a value. A threshold on the raw number would fire on every device eventually, purely through uptime.
Drops are the interesting ones on cellular and Wi-Fi links, where a rising drop rate often precedes a connectivity alert and gives you earlier warning.
Metrics marked deprecated above still report, but prefer the replacement in new
work: memory/used and memory/utilization over memory/total;
cpu/utilizationpercentage over cpu/utilization; disk/used and
disk/utilization over disk/total; and the hardware/* sensor metrics over
sensors.
Discovering metrics yourself
This list covers metrics devices report. Applications, and any service you enable, contribute their own. The authoritative list for your project is the metric descriptors it holds, which you can read directly:
cuttle monitoring list metric-descriptors --project $PROJECT -o json
Each descriptor carries the same information as the tables above, so this is also the way to check units and label keys for a metric not listed here.
Next steps
- Alerting on device metrics — turning these into alerts.
- Monitor a device — where they appear in the dashboard.