Prometheus metrics
ThingsBoard Edge exposes internal metrics via Spring Boot Actuator using the Prometheus format. These metrics can be scraped by a Prometheus instance and visualized in Grafana or any compatible monitoring tool.
Enable Prometheus metrics
Section titled “Enable Prometheus metrics”Add the following environment variables to your Edge configuration:
export METRICS_ENABLED=trueexport METRICS_ENDPOINTS_EXPOSE=prometheusFor Docker deployments, add these to the environment block in docker-compose.yml:
METRICS_ENABLED: "true" METRICS_ENDPOINTS_EXPOSE: "prometheus"Metrics are exposed at:
https://<your-edge-hostname>/actuator/prometheusNo authentication is required to scrape this endpoint.
Metrics reference
Section titled “Metrics reference”tb-edge metrics
Section titled “tb-edge metrics”| Metric | Stat names | Description |
|---|---|---|
attributes_queue_${index} | totalMsgs, failedMsgs, successfulMsgs | Attribute writes to the database. Multiple queues are used for performance. |
ruleEngine_${queue_name} | totalMsgs, failedMsgs, successfulMsgs, tmpFailed, failedIterations, successfulIterations, timeoutMsgs, tmpTimeout | Rule engine message processing, per queue (Main, HighPriority, SequentialByOriginator, etc.). |
ruleEngine_${queue_name}_seconds | per tenantId | Time taken to process messages in each queue. |
core | totalMsgs, toDevRpc, coreNfs, sessionEvents, subInfo, subToAttr, subToRpc, deviceState, getAttr, claimDevice, subMsgs | Internal system message processing. |
jsInvoke | requests, responses, failures | Requests to the JavaScript executors. |
attributes_cache | hit, miss | Attribute cache requests. |
Rule engine stat descriptions:
| Stat | Description |
|---|---|
tmpFailed | Messages that failed and were reprocessed later |
tmpTimeout | Messages that timed out and were reprocessed later |
timeoutMsgs | Messages that timed out and were discarded |
failedIterations | Processing iterations where at least one message was not processed successfully |
Core stat descriptions:
| Stat | Description |
|---|---|
toDevRpc | Processed RPC responses from Transport services |
sessionEvents | Session events from Transport services |
subInfo | Subscription info messages from Transport services |
subToAttr | Subscribe-to-attribute-updates requests from Transport services |
subToRpc | Subscribe-to-RPC requests from Transport services |
getAttr | Get-attributes requests from Transport services |
claimDevice | Device claim requests |
deviceState | Processed device state changes |
subMsgs | Processed subscription messages |
coreNfs | Processed internal system messages |
Transport metrics
Section titled “Transport metrics”| Metric | Stat names | Description |
|---|---|---|
transport | totalMsgs, failedMsgs, successfulMsgs | Requests received by Transport from Core. |
ruleEngine_producer | totalMsgs, failedMsgs, successfulMsgs | Messages pushed from Transport to the Rule Engine. |
core_producer | totalMsgs, failedMsgs, successfulMsgs | Messages pushed from Transport to the ThingsBoard node device actor. |
transport_producer | totalMsgs, failedMsgs, successfulMsgs | Requests from Transport to Core. |
PostgreSQL metrics
Section titled “PostgreSQL metrics”| Metric | Stat names | Description |
|---|---|---|
ts_latest_queue_${index} | totalMsgs, failedMsgs, successfulMsgs | Latest telemetry writes to the database. Multiple queues are used for performance. |
ts_queue_${index} | totalMsgs, failedMsgs, successfulMsgs | Telemetry writes to the database. Multiple queues are used for performance. |