Metrics API Endpoint
The /metrics
endpoint exposes Prometheus-compatible metrics for NetAlertX, including aggregate device counts and per-device status.
Endpoint Details
- GET
/metrics
→ Returns metrics in plain text. - Host: NetAlertX server
- Port: As configured in
GRAPHQL_PORT
(default:20212
)
Example Output
netalertx_connected_devices 31
netalertx_offline_devices 54
netalertx_down_devices 0
netalertx_new_devices 0
netalertx_archived_devices 31
netalertx_favorite_devices 2
netalertx_my_devices 54
netalertx_device_status{device="Net - Huawei", mac="Internet", ip="1111.111.111.111", vendor="None", first_connection="2021-01-01 00:00:00", last_connection="2025-08-04 17:57:00", dev_type="Router", device_status="Online"} 1
netalertx_device_status{device="Net - USG", mac="74:ac:74:ac:74:ac", ip="192.168.1.1", vendor="Ubiquiti Networks Inc.", first_connection="2022-02-12 22:05:00", last_connection="2025-06-07 08:16:49", dev_type="Firewall", device_status="Archived"} 1
netalertx_device_status{device="Raspberry Pi 4 LAN", mac="74:ac:74:ac:74:74", ip="192.168.1.9", vendor="Raspberry Pi Trading Ltd", first_connection="2022-02-12 22:05:00", last_connection="2025-08-04 17:57:00", dev_type="Singleboard Computer (SBC)", device_status="Online"} 1
...
Metrics Overview
1. Aggregate Device Counts
Metric | Description |
---|---|
netalertx_connected_devices |
Devices currently connected |
netalertx_offline_devices |
Devices currently offline |
netalertx_down_devices |
Down/unreachable devices |
netalertx_new_devices |
Recently detected devices |
netalertx_archived_devices |
Archived devices |
netalertx_favorite_devices |
User-marked favorites |
netalertx_my_devices |
Devices associated with the current user |
2. Per-Device Status
Metric: netalertx_device_status
Each device has labels:
device
: friendly namemac
: MAC address (or placeholder)ip
: last recorded IPvendor
: manufacturer or "None"first_connection
: timestamp of first detectionlast_connection
: most recent contactdev_type
: device type/categorydevice_status
: current status (Online
,Offline
,Archived
,Down
, …)
Metric value is always 1
(presence indicator).
Querying with curl
curl 'http://<server_ip>:<GRAPHQL_PORT>/metrics' \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Accept: text/plain'
Replace placeholders:
<server_ip>
– NetAlertX host IP/hostname<GRAPHQL_PORT>
– configured port (default20212
)<API_TOKEN>
– your API token
Prometheus Scraping Configuration
scrape_configs:
- job_name: 'netalertx'
metrics_path: /metrics
scheme: http
scrape_interval: 60s
static_configs:
- targets: ['<server_ip>:<GRAPHQL_PORT>']
authorization:
type: Bearer
credentials: <API_TOKEN>
Grafana Dashboard Template
Sample template JSON: Download