Skip to content

Integrate with Datadog

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

To enable Datadog monitoring for your deployment, follow the steps in subsections below.

Create Your Datadog Account

Before setting up the integration, you need a Datadog account and the necessary credentials.

Submit a Support Ticket to Enable Integration

  1. Log in to the EMQX Platform Console.
  2. Navigate to Tickets from the top menu.
  3. Click the + New button to create a new ticket with the following details:
  • Subject: “Request Datadog Integration”.
  • Ticket Type: Normal
  • Related Deployment: Select the deployment you want to integrate with Datadog.
  • Description: Provide your Datadog API Key and Datadog Site.
  1. Click Confirm to submit the ticket.

The Technical Support team will process your request and configure the integration.

Set Up the Dashboard

The EMQX Platform 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:

  1. Log in to your regional Datadog site using your account.
  2. Navigate to Dashboards -> New Dashboard -> Import Dashboard.
  3. Upload the JSON file from the GitHub.

Once imported, the dashboard will automatically populate with EMQX deployment metrics.

Verify Integration

After the support team completes 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 NameMetric TypeDescription
emqx.cloud.action.dropped.count.countCounterNumber of dropped events for the specified action
emqx.cloud.action.enableGaugeNumber of EMQX nodes with the action enabled
emqx.cloud.action.events.count.countCounterNumber of events for the specified action
emqx.cloud.action.queued.countGaugeNumber of queued events for the specified action
emqx.cloud.action.retried.count.countCounterNumber of retry events for the specified action
emqx.cloud.action.statusGaugeCurrent status of the specified action
emqx.cloud.authn.enableGaugeWhether the specified authentication method is enabled
emqx.cloud.authn.match.countCounterStatistics for each authentication method
emqx.cloud.authn.statusGaugeAvailability status of each authentication method
emqx.cloud.authz.enableGaugeWhether the specified authorization method is enabled
emqx.cloud.authz.match.countCounterStatistics for each authorization method
emqx.cloud.authz.statusGaugeAvailability status of each authorization method
emqx.cloud.cluster.statusGaugeStatus of EMQX cluster
emqx.cloud.connections.countGaugeCurrent number of connections in the cluster
emqx.cloud.deployment.authentication.failure.countCounterNumber of authentication failures
emqx.cloud.deployment.authentication.success.anonymous.countCounterNumber of successful anonymous authentications
emqx.cloud.deployment.authentication.success.countCounterNumber of successful authentications
emqx.cloud.deployment.authorization.allow.countCounterNumber of authorization grants
emqx.cloud.deployment.authorization.cache.hit.countCounterNumber of authorization cache hits
emqx.cloud.deployment.authorization.cache.miss.countCounterNumber of authorization cache misses
emqx.cloud.deployment.authorization.deny.countCounterNumber of denied authorization requests
emqx.cloud.deployment.authorization.matched.allow.countCounterNumber of matched and allowed authorizations
emqx.cloud.deployment.authorization.matched.deny.countCounterNumber of matched but denied authorizations
emqx.cloud.deployment.authorization.nomatch.countCounterNumber of unmatched authorization requests
emqx.cloud.deployment.authorization.superuser.countCounterNumber of superuser authorizations
emqx.cloud.deployment.bytes.received.countCounterTotal bytes received
emqx.cloud.deployment.bytes.sent.countCounterTotal bytes sent
emqx.cloud.deployment.channels.countGaugeCurrent number of channels
emqx.cloud.deployment.channels.maxGaugeHistorical maximum number of channels
emqx.cloud.deployment.client.auth.anonymous.countCounterNumber of client anonymous authentications
emqx.cloud.deployment.client.authenticate.countCounterNumber of client authentication attempts
emqx.cloud.deployment.client.authorize.countCounterNumber of client authorization requests
emqx.cloud.deployment.client.connack.countCounterNumber of client CONNACK messages
emqx.cloud.deployment.client.connect.countCounterNumber of client connection attempts
emqx.cloud.deployment.client.connected.countCounterCurrent number of connected clients
emqx.cloud.deployment.client.disconnected.countCounterNumber of client disconnections
emqx.cloud.deployment.client.disconnected.reason.countCounterNumber of listener disconnections by reason
emqx.cloud.deployment.client.subscribe.countCounterNumber of client subscriptions
emqx.cloud.deployment.client.unsubscribe.countCounterNumber of client unsubscriptions
emqx.cloud.deployment.cluster.sessions.countGaugeNumber of sessions in the cluster
emqx.cloud.deployment.cluster.sessions.maxGaugeMaximum number of historical sessions in the cluster
emqx.cloud.deployment.connections.countGaugeCurrent number of connections
emqx.cloud.deployment.connections.maxGaugeMaximum number of historical connections
emqx.cloud.deployment.delayed.countGaugeNumber of delayed messages
emqx.cloud.deployment.delayed.maxGaugeMaximum number of historical delayed messages
emqx.cloud.deployment.delivery.dropped.countCounterNumber of dropped messages during delivery
emqx.cloud.deployment.delivery.dropped.expired.countCounterNumber of messages dropped due to timeout during delivery
emqx.cloud.deployment.delivery.dropped.no.local.countCounterNumber of messages dropped due to no_local flag during delivery
emqx.cloud.deployment.delivery.dropped.qos0.msg.countCounterNumber of dropped QoS 0 messages
emqx.cloud.deployment.delivery.dropped.queue.full.countCounterNumber of messages dropped during delivery due to full queue
emqx.cloud.deployment.delivery.dropped.too.large.countCounterNumber of messages dropped during delivery due to size limit
emqx.cloud.deployment.durable.subscriptions.countCounterNumber of durable subscriptions in the current cluster
emqx.cloud.deployment.durable.subscriptions.maxCounterHistorical maximum number of durable subscriptions in the cluster
emqx.cloud.deployment.live.connections.countGaugeHistorical maximum number of durable subscriptions in the cluster
emqx.cloud.deployment.live.connections.maxGaugeHistorical maximum number of active connections
emqx.cloud.deployment.messages.acked.countCounterNumber of acknowledged messages
emqx.cloud.deployment.messages.delayed.countCounterNumber of delayed messages
emqx.cloud.deployment.messages.delivered.countCounterNumber of delivered messages
emqx.cloud.deployment.messages.dropped.countCounterNumber of dropped messages
emqx.cloud.deployment.messages.dropped.expired.countCounterNumber of messages dropped due to expiration
emqx.cloud.deployment.messages.dropped.no.subscribers.countCounterNumber of messages dropped due to no subscribers
emqx.cloud.deployment.messages.forward.countCounterNumber of forwarded messages
emqx.cloud.deployment.messages.publish.countCounterNumber of published messages
emqx.cloud.deployment.messages.qos0.received.countCounterNumber of received QoS 0 packets
emqx.cloud.deployment.messages.qos0.sent.countCounterNumber of sent QoS 0 packets
emqx.cloud.deployment.messages.qos1.received.countCounterNumber of received QoS 1 packets
emqx.cloud.deployment.messages.qos1.sent.countCounterNumber of sent QoS 1 packets
emqx.cloud.deployment.messages.qos2.received.countCounterNumber of received QoS 2 packets
emqx.cloud.deployment.messages.qos2.sent.countCounterNumber of sent QoS 2 packets
emqx.cloud.deployment.messages.received.countCounterTotal number of received messages
emqx.cloud.deployment.messages.retained.countCounterNumber of retained messages
emqx.cloud.deployment.messages.sent.countCounterTotal number of sent messages
emqx.cloud.deployment.packets.auth.received.countCounterNumber of received AUTH packets
emqx.cloud.deployment.packets.auth.sent.countCounterNumber of sent AUTH packets
emqx.cloud.deployment.packets.connack.auth.error.countCounterNumber of CONNACK messages with auth error
emqx.cloud.deployment.packets.connack.error.countCounterNumber of erroneous CONNACK packets sent
emqx.cloud.deployment.packets.connack.sent.countCounterNumber of sent CONNACK packets
emqx.cloud.deployment.packets.connect.countCounterNumber of sent CONNECT packets
emqx.cloud.deployment.packets.disconnect.received.countCounterNumber of received DISCONNECT packets
emqx.cloud.deployment.packets.disconnect.sent.countCounterNumber of sent DISCONNECT packets
emqx.cloud.deployment.packets.pingreq.received.countCounterNumber of received PINGREQ packets
emqx.cloud.deployment.packets.pingresp.sent.countCounterNumber of sent PINGRESP packets
emqx.cloud.deployment.packets.puback.inuse.countCounterNumber of PUBACK packets in use
emqx.cloud.deployment.packets.puback.missed.countCounterNumber of missed PUBACK packets
emqx.cloud.deployment.packets.puback.received.countCounterNumber of received PUBACK packets
emqx.cloud.deployment.packets.puback.sent.countCounterNumber of sent PUBACK packets
emqx.cloud.deployment.packets.pubcomp.inuse.countCounterNumber of PUBCOMP packets in use
emqx.cloud.deployment.packets.pubcomp.missed.countCounterNumber of missed PUBCOMP packets
emqx.cloud.deployment.packets.pubcomp.received.countCounterNumber of received PUBCOMP packets
emqx.cloud.deployment.packets.pubcomp.sent.countCounterNumber of sent PUBCOMP packets
emqx.cloud.deployment.packets.publish.auth.error.countCounterNumber of PUBLISH packets with auth error
emqx.cloud.deployment.packets.publish.dropped.countCounterNumber of dropped PUBLISH packets
emqx.cloud.deployment.packets.publish.error.countCounterNumber of erroneous PUBLISH packets
emqx.cloud.deployment.packets.publish.inuse.countCounterNumber of PUBLISH packets in use
emqx.cloud.deployment.packets.publish.received.countCounterNumber of received PUBLISH packets
emqx.cloud.deployment.packets.publish.sent.countCounterNumber of sent PUBLISH packets
emqx.cloud.deployment.packets.pubrec.inuse.countCounterNumber of PUBREC packets in use
emqx.cloud.deployment.packets.pubrec.missed.countCounterNumber of missed PUBREC packets
emqx.cloud.deployment.packets.pubrec.received.countCounterNumber of received PUBREC packets
emqx.cloud.deployment.packets.pubrec.sent.countCounterNumber of sent PUBREC packets
emqx.cloud.deployment.packets.pubrel.missed.countCounterNumber of missed PUBREL packets
emqx.cloud.deployment.packets.pubrel.received.countCounterNumber of received PUBREL packets
emqx.cloud.deployment.packets.pubrel.sent.countCounterNumber of sent PUBREL packets
emqx.cloud.deployment.packets.received.countCounterTotal number of received packets
emqx.cloud.deployment.packets.sent.countCounterTotal number of sent packets
emqx.cloud.deployment.packets.suback.sent.countCounterNumber of SUBACK packets sent
emqx.cloud.deployment.packets.subscribe.auth.error.countCounterNumber of SUBSCRIBE packets with authentication errors
emqx.cloud.deployment.packets.subscribe.error.countCounterNumber of erroneous SUBSCRIBE packets
emqx.cloud.deployment.packets.subscribe.received.countCounterNumber of received SUBSCRIBE packets
emqx.cloud.deployment.packets.unsuback.sent.countCounterNumber of UNSUBACK packets sent
emqx.cloud.deployment.packets.unsubscribe.error.countCounterNumber of erroneous UNSUBSCRIBE packets
emqx.cloud.deployment.packets.unsubscribe.received.countCounterNumber of received UNSUBSCRIBE packets
emqx.cloud.deployment.retained.countGaugeCurrent number of retained messages
emqx.cloud.deployment.retained.maxGaugeHistorical maximum number of retained messages
emqx.cloud.deployment.session.created.countCounterNumber of sessions created
emqx.cloud.deployment.session.discarded.countCounterNumber of sessions discarded
emqx.cloud.deployment.session.resumed.countCounterNumber of sessions resumed
emqx.cloud.deployment.session.takenover.countCounterNumber of times the session.takenover hook triggered
emqx.cloud.deployment.session.terminated.countCounterNumber of sessions terminated
emqx.cloud.deployment.sessions.countGaugeCurrent number of sessions
emqx.cloud.deployment.sessions.maxGaugeHistorical maximum number of sessions
emqx.cloud.deployment.suboptions.countGaugeCurrent number of subscription options
emqx.cloud.deployment.suboptions.maxGaugeHistorical maximum number of subscription options
emqx.cloud.deployment.subscribers.countGaugeCurrent number of subscribers
emqx.cloud.deployment.subscribers.maxGaugeHistorical maximum number of subscribers
emqx.cloud.deployment.subscriptions.countGaugeCurrent number of subscriptions
emqx.cloud.deployment.subscriptions.maxGaugeHistorical maximum number of subscriptions
emqx.cloud.deployment.subscriptions.shared.countGaugeCurrent number of shared subscriptions
emqx.cloud.deployment.subscriptions.shared.maxGaugeHistorical maximum number of shared subscriptions
emqx.cloud.deployment.topics.countGaugeCurrent number of topics
emqx.cloud.deployment.topics.maxGaugeHistorical maximum number of topics
emqx.cloud.deployment.traffic.total.egress.bytes.countCounterTotal cluster egress traffic (in bytes)
emqx.cloud.deployment.traffic.total.ingress.bytes.countCounterTotal cluster ingress traffic (in bytes)
emqx.cloud.disconnected.durable.sessionsGaugeNumber of sessions retained after disconnection
emqx.cloud.dropped.msg.rateGaugeRate of dropped messages
emqx.cloud.license.quotaGaugeMaximum number of connections allowed by license
emqx.cloud.node.countGaugeNumber of nodes in the EMQX cluster
emqx.cloud.persisted.rateGaugeRate of persisted messages
emqx.cloud.received.msg.rateGaugeRate of received messages per second
emqx.cloud.resource.statusGaugeCurrent status of a specified resource
emqx.cloud.retained.msg.countGaugeNumber of retained messages
emqx.cloud.rule.action.execution.count.countCounterNumber of times a rule action was executed
emqx.cloud.rule.matched.count.countCounterTotal number of matches
emqx.cloud.rule.statusGaugeCurrent status of a specified rule
emqx.cloud.sent.msg.rateGaugeRate of sent messages per second
emqx.cloud.sessions.countGaugeCurrent number of sessions in the cluster
emqx.cloud.shared.subscriptionsGaugeNumber of shared subscriptions
emqx.cloud.subscriptionsGaugeTotal number of subscriptions
emqx.cloud.subscriptions.durableGaugeNumber of subscriptions with durable sessions enabled
emqx.cloud.subscriptions.ramGaugeNumber of non-durable subscriptions stored in RAM
emqx.cloud.topicsGaugeTotal number of topics
emqx.cloud.transformation.failed.rateGaugeRate of failed message transformations
emqx.cloud.transformation.succeeded.rateGaugeRate of succeeded message transformations
emqx.cloud.validation.failed.rateGaugeRate of failed message validations
emqx.cloud.validation.succeeded.rateGaugeRate of succeeded message validations