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. |
Was this helpful?
Thank you for your feedback!