Integrate with Datadog
TIP
The Datadog integration is only available in the EMQX Dedicated and Dedicated Flex deployments.
Datadog is a powerful monitoring and analytics platform that helps you track the performance of your applications, infrastructure, and services in real time. By integrating Datadog with your EMQX deployment, you can visualize key metrics, set up alerts, and gain insights into your system's health and performance.
This guide walks you through the steps required to integrate Datadog with your EMQX deployment and provides an overview of the available monitoring metrics.
How to Integrate Datadog with Your Deployment
This section describes how to integrate Datadog with your EMQX Cloud deployment to collect and visualize deployment metrics in real time.
Prepare Your Datadog Account
Before setting up the integration, you need a Datadog account and the necessary credentials.
Identify Your Datadog Site
Datadog operates multiple sites globally. You must select the Datadog site that corresponds to your account region.
To identify the correct site, see Getting Started with Datadog Sites.
Generate Your Datadog API Key
EMQX Cloud requires a Datadog API key to send metrics to Datadog. To create an API key, follow the instructions in the API and Application Keys documentation.
Enable Datadog Integration in EMQX Cloud
Follow the steps below to enable Datadog monitoring for your EMQX Cloud deployment.
- Log in to the EMQX Cloud Console and open the target deployment.
- In the left navigation menu, click Monitor -> Metrics.
- Switch to the Integration tab, then click + Configure Integration.
- In the Configure Datadog dialog, provide the following information:
- Datadog API Key: Enter the API key generated in your Datadog account.
- Site: Select the Datadog site that corresponds to your Datadog account (for example,
datadoghq.com,datadoghq.eu, etc.).
- Click Confirm to save the configuration.
Once the integration is enabled, EMQX Cloud will begin sending deployment metrics to Datadog.
Set Up the Datadog Dashboard
The EMQX Cloud provides a pre-configured Datadog dashboard template in JSON format. You can download it from GitHub - emqx/emqx-cloud-datadog: EMQX Cloud DataDog.
To import the dashboard:
- Log in to your regional Datadog site using your account.
- Navigate to Dashboards -> New Dashboard -> Import Dashboard.
- Upload the JSON file from GitHub.
Once imported, the dashboard will automatically populate with EMQX deployment metrics.
Verify Integration
After you complete the integration, check your Datadog dashboard to verify that metrics are being received.
If no data appears or you encounter issues, please contact EMQX Technical Support.
Metrics Overview
The following table lists the Datadog metrics available for monitoring your EMQX deployment:
| Metric Name | Metric Type | Description |
|---|---|---|
| emqx.cloud.action.dropped.count.count | Counter | Number of dropped events for the specified action |
| emqx.cloud.action.enable | Gauge | Number of EMQX nodes with the action enabled |
| emqx.cloud.action.events.count.count | Counter | Number of events for the specified action |
| emqx.cloud.action.queued.count | Gauge | Number of queued events for the specified action |
| emqx.cloud.action.retried.count.count | Counter | Number of retry events for the specified action |
| emqx.cloud.action.status | Gauge | Current status of the specified action |
| emqx.cloud.authn.enable | Gauge | Whether the specified authentication method is enabled |
| emqx.cloud.authn.match.count | Counter | Statistics for each authentication method |
| emqx.cloud.authn.status | Gauge | Availability status of each authentication method |
| emqx.cloud.authz.enable | Gauge | Whether the specified authorization method is enabled |
| emqx.cloud.authz.match.count | Counter | Statistics for each authorization method |
| emqx.cloud.authz.status | Gauge | Availability status of each authorization method |
| emqx.cloud.cluster.status | Gauge | Status of EMQX cluster |
| emqx.cloud.connections.count | Gauge | Current number of connections in the cluster |
| emqx.cloud.deployment.authentication.failure.count | Counter | Number of authentication failures |
| emqx.cloud.deployment.authentication.success.anonymous.count | Counter | Number of successful anonymous authentications |
| emqx.cloud.deployment.authentication.success.count | Counter | Number of successful authentications |
| emqx.cloud.deployment.authorization.allow.count | Counter | Number of authorization grants |
| emqx.cloud.deployment.authorization.cache.hit.count | Counter | Number of authorization cache hits |
| emqx.cloud.deployment.authorization.cache.miss.count | Counter | Number of authorization cache misses |
| emqx.cloud.deployment.authorization.deny.count | Counter | Number of denied authorization requests |
| emqx.cloud.deployment.authorization.matched.allow.count | Counter | Number of matched and allowed authorizations |
| emqx.cloud.deployment.authorization.matched.deny.count | Counter | Number of matched but denied authorizations |
| emqx.cloud.deployment.authorization.nomatch.count | Counter | Number of unmatched authorization requests |
| emqx.cloud.deployment.authorization.superuser.count | Counter | Number of superuser authorizations |
| emqx.cloud.deployment.bytes.received.count | Counter | Total bytes received |
| emqx.cloud.deployment.bytes.sent.count | Counter | Total bytes sent |
| emqx.cloud.deployment.channels.count | Gauge | Current number of channels |
| emqx.cloud.deployment.channels.max | Gauge | Historical maximum number of channels |
| emqx.cloud.deployment.client.auth.anonymous.count | Counter | Number of client anonymous authentications |
| emqx.cloud.deployment.client.authenticate.count | Counter | Number of client authentication attempts |
| emqx.cloud.deployment.client.authorize.count | Counter | Number of client authorization requests |
| emqx.cloud.deployment.client.connack.count | Counter | Number of client CONNACK messages |
| emqx.cloud.deployment.client.connect.count | Counter | Number of client connection attempts |
| emqx.cloud.deployment.client.connected.count | Counter | Current number of connected clients |
| emqx.cloud.deployment.client.disconnected.count | Counter | Number of client disconnections |
| emqx.cloud.deployment.client.disconnected.reason.count | Counter | Number of listener disconnections by reason |
| emqx.cloud.deployment.client.subscribe.count | Counter | Number of client subscriptions |
| emqx.cloud.deployment.client.unsubscribe.count | Counter | Number of client unsubscriptions |
| emqx.cloud.deployment.cluster.sessions.count | Gauge | Number of sessions in the cluster |
| emqx.cloud.deployment.cluster.sessions.max | Gauge | Maximum number of historical sessions in the cluster |
| emqx.cloud.deployment.connections.count | Gauge | Current number of connections |
| emqx.cloud.deployment.connections.max | Gauge | Maximum number of historical connections |
| emqx.cloud.deployment.delayed.count | Gauge | Number of delayed messages |
| emqx.cloud.deployment.delayed.max | Gauge | Maixmum number of historical delayed messages |
| emqx.cloud.deployment.delivery.dropped.count | Counter | Number of dropped messages during delivery |
| emqx.cloud.deployment.delivery.dropped.expired.count | Counter | Number of messages dropped due to timeout during delivery |
| emqx.cloud.deployment.delivery.dropped.no.local.count | Counter | Number of messages dropped due to no_local flag during delivery |
| emqx.cloud.deployment.delivery.dropped.qos0.msg.count | Counter | Number of dropped QoS 0 messages |
| emqx.cloud.deployment.delivery.dropped.queue.full.count | Counter | Number of messages dropped during delivery due to full queue |
| emqx.cloud.deployment.delivery.dropped.too.large.count | Counter | Number of messages dropped during delivery due to size limit |
| emqx.cloud.deployment.durable.subscriptions.count | Counter | Number of durable subscriptions in the current cluster |
| emqx.cloud.deployment.durable.subscriptions.max | Counter | Historical maximum number of durable subscriptions in the cluster |
| emqx.cloud.deployment.live.connections.count | Gauge | Historical maximum number of durable subscriptions in the cluster |
| emqx.cloud.deployment.live.connections.max | Gauge | Historical maximum number of active connections |
| emqx.cloud.deployment.messages.acked.count | Counter | Number of acknowledged messages |
| emqx.cloud.deployment.messages.delayed.count | Counter | Number of delayed messages |
| emqx.cloud.deployment.messages.delivered.count | Counter | Number of delivered messages |
| emqx.cloud.deployment.messages.dropped.count | Counter | Number of dropped messages |
| emqx.cloud.deployment.messages.dropped.expired.count | Counter | Number of messages dropped due to expiration |
| emqx.cloud.deployment.messages.dropped.no.subscribers.count | Counter | Number of messages dropped due to no subscribers |
| emqx.cloud.deployment.messages.forward.count | Counter | Number of forwarded messages |
| emqx.cloud.deployment.messages.publish.count | Counter | Number of published messages |
| emqx.cloud.deployment.messages.qos0.received.count | Counter | Number of received QoS 0 packets |
| emqx.cloud.deployment.messages.qos0.sent.count | Counter | Number of sent QoS 0 packets |
| emqx.cloud.deployment.messages.qos1.received.count | Counter | Number of received QoS 1 packets |
| emqx.cloud.deployment.messages.qos1.sent.count | Counter | Number of sent QoS 1 packets |
| emqx.cloud.deployment.messages.qos2.received.count | Counter | Number of received QoS 2 packets |
| emqx.cloud.deployment.messages.qos2.sent.count | Counter | Number of sent QoS 2 packets |
| emqx.cloud.deployment.messages.received.count | Counter | Total number of received messages |
| emqx.cloud.deployment.messages.retained.count | Counter | Number of retained messages |
| emqx.cloud.deployment.messages.sent.count | Counter | Total number of sent messages |
| emqx.cloud.deployment.packets.auth.received.count | Counter | Number of received AUTH packets |
| emqx.cloud.deployment.packets.auth.sent.count | Counter | Number of sent AUTH packets |
| emqx.cloud.deployment.packets.connack.auth.error.count | Counter | Number of CONNACK messages with auth error |
| emqx.cloud.deployment.packets.connack.error.count | Counter | Number of erroneous CONNACK packets sent |
| emqx.cloud.deployment.packets.connack.sent.count | Counter | Number of sent CONNACK packets |
| emqx.cloud.deployment.packets.connect.count | Counter | Number of sent CONNECT packets |
| emqx.cloud.deployment.packets.disconnect.received.count | Counter | Number of received DISCONNECT packets |
| emqx.cloud.deployment.packets.disconnect.sent.count | Counter | Number of sent DISCONNECT packets |
| emqx.cloud.deployment.packets.pingreq.received.count | Counter | Number of received PINGREQ packets |
| emqx.cloud.deployment.packets.pingresp.sent.count | Counter | Number of sent PINGRESP packets |
| emqx.cloud.deployment.packets.puback.inuse.count | Counter | Number of PUBACK packets in use |
| emqx.cloud.deployment.packets.puback.missed.count | Counter | Number of missed PUBACK packets |
| emqx.cloud.deployment.packets.puback.received.count | Counter | Number of received PUBACK packets |
| emqx.cloud.deployment.packets.puback.sent.count | Counter | Number of sent PUBACK packets |
| emqx.cloud.deployment.packets.pubcomp.inuse.count | Counter | Number of PUBCOMP packets in use |
| emqx.cloud.deployment.packets.pubcomp.missed.count | Counter | Number of missed PUBCOMP packets |
| emqx.cloud.deployment.packets.pubcomp.received.count | Counter | Number of received PUBCOMP packets |
| emqx.cloud.deployment.packets.pubcomp.sent.count | Counter | Number of sent PUBCOMP packets |
| emqx.cloud.deployment.packets.publish.auth.error.count | Counter | Number of PUBLISH packets with auth error |
| emqx.cloud.deployment.packets.publish.dropped.count | Counter | Number of dropped PUBLISH packets |
| emqx.cloud.deployment.packets.publish.error.count | Counter | Number of erroneous PUBLISH packets |
| emqx.cloud.deployment.packets.publish.inuse.count | Counter | Number of PUBLISH packets in use |
| emqx.cloud.deployment.packets.publish.received.count | Counter | Number of received PUBLISH packets |
| emqx.cloud.deployment.packets.publish.sent.count | Counter | Number of sent PUBLISH packets |
| emqx.cloud.deployment.packets.pubrec.inuse.count | Counter | Number of PUBREC packets in use |
| emqx.cloud.deployment.packets.pubrec.missed.count | Counter | Number of missed PUBREC packets |
| emqx.cloud.deployment.packets.pubrec.received.count | Counter | Number of received PUBREC packets |
| emqx.cloud.deployment.packets.pubrec.sent.count | Counter | Number of sent PUBREC packets |
| emqx.cloud.deployment.packets.pubrel.missed.count | Counter | Number of missed PUBREL packets |
| emqx.cloud.deployment.packets.pubrel.received.count | Counter | Number of received PUBREL packets |
| emqx.cloud.deployment.packets.pubrel.sent.count | Counter | Number of sent PUBREL packets |
| emqx.cloud.deployment.packets.received.count | Counter | Total number of received packets |
| emqx.cloud.deployment.packets.sent.count | Counter | Total number of sent packets |
| emqx.cloud.deployment.packets.suback.sent.count | Counter | Number of SUBACK packets sent |
| emqx.cloud.deployment.packets.subscribe.auth.error.count | Counter | Number of SUBSCRIBE packets with authentication errors |
| emqx.cloud.deployment.packets.subscribe.error.count | Counter | Number of erroneous SUBSCRIBE packets |
| emqx.cloud.deployment.packets.subscribe.received.count | Counter | Number of received SUBSCRIBE packets |
| emqx.cloud.deployment.packets.unsuback.sent.count | Counter | Number of UNSUBACK packets sent |
| emqx.cloud.deployment.packets.unsubscribe.error.count | Counter | Number of erroneous UNSUBSCRIBE packets |
| emqx.cloud.deployment.packets.unsubscribe.received.count | Counter | Number of received UNSUBSCRIBE packets |
| emqx.cloud.deployment.retained.count | Gauge | Current number of retained messages |
| emqx.cloud.deployment.retained.max | Gauge | Historical maximum number of retained messages |
| emqx.cloud.deployment.session.created.count | Counter | Number of sessions created |
| emqx.cloud.deployment.session.discarded.count | Counter | Number of sessions discarded |
| emqx.cloud.deployment.session.resumed.count | Counter | Number of sessions resumed |
| emqx.cloud.deployment.session.takenover.count | Counter | Number of times the session.takenover hook triggered |
| emqx.cloud.deployment.session.terminated.count | Counter | Number of sessions terminated |
| emqx.cloud.deployment.sessions.count | Gauge | Current number of sessions |
| emqx.cloud.deployment.sessions.max | Gauge | Historical maximum number of sessions |
| emqx.cloud.deployment.suboptions.count | Gauge | Current number of subscription options |
| emqx.cloud.deployment.suboptions.max | Gauge | Historical maximum number of subscription options |
| emqx.cloud.deployment.subscribers.count | Gauge | Current number of subscribers |
| emqx.cloud.deployment.subscribers.max | Gauge | Historical maximum number of subscribers |
| emqx.cloud.deployment.subscriptions.count | Gauge | Current number of subscriptions |
| emqx.cloud.deployment.subscriptions.max | Gauge | Historical maximum number of subscriptions |
| emqx.cloud.deployment.subscriptions.shared.count | Gauge | Current number of shared subscriptions |
| emqx.cloud.deployment.subscriptions.shared.max | Gauge | Historical maximum number of shared subscriptions |
| emqx.cloud.deployment.topics.count | Gauge | Current number of topics |
| emqx.cloud.deployment.topics.max | Gauge | Historical maximum number of topics |
| emqx.cloud.deployment.traffic.total.egress.bytes.count | Counter | Total cluster egress traffic (in bytes) |
| emqx.cloud.deployment.traffic.total.ingress.bytes.count | Counter | Total cluster ingress traffic (in bytes) |
| emqx.cloud.disconnected.durable.sessions | Gauge | Number of sessions retained after disconnection |
| emqx.cloud.dropped.msg.rate | Gauge | Rate of dropped messages |
| emqx.cloud.license.quota | Gauge | Maximum number of connections allowed by license |
| emqx.cloud.node.count | Gauge | Number of nodes in the EMQX cluster |
| emqx.cloud.persisted.rate | Gauge | Rate of persisted messages |
| emqx.cloud.received.msg.rate | Gauge | Rate of received messages per second |
| emqx.cloud.resource.status | Gauge | Current status of a specified resource |
| emqx.cloud.retained.msg.count | Gauge | Number of retained messages |
| emqx.cloud.rule.action.execution.count.count | Counter | Number of times a rule action was executed |
| emqx.cloud.rule.matched.count.count | Counter | Total number of matches |
| emqx.cloud.rule.status | Gauge | Current status of a specified rule |
| emqx.cloud.sent.msg.rate | Gauge | Rate of sent messages per second |
| emqx.cloud.sessions.count | Gauge | Current number of sessions in the cluster |
| emqx.cloud.shared.subscriptions | Gauge | Number of shared subscriptions |
| emqx.cloud.subscriptions | Gauge | Total number of subscriptions |
| emqx.cloud.subscriptions.durable | Gauge | Number of subscriptions with durable sessions enabled |
| emqx.cloud.subscriptions.ram | Gauge | Number of non-durable subscriptions stored in RAM |
| emqx.cloud.topics | Gauge | Total number of topics |
| emqx.cloud.transformation.failed.rate | Gauge | Rate of failed message transformations |
| emqx.cloud.transformation.succeeded.rate | Gauge | Rate of succeeded message transformations |
| emqx.cloud.validation.failed.rate | Gauge | Rate of failed message validations |
| emqx.cloud.validation.succeeded.rate | Gauge | Rate of succeeded message validations |