Device metrics reference

The metric types devices report, with their units, kinds, and labels.

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.

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