Datadog integration

The Ably Datadog integration enables you to monitor your application's statistics. Every 60 seconds, Ably streams a comprehensive set of statistics to the Datadog API.

Setup the Datadog integration

To connect Ably with Datadog, authorize the integration through Datadog's OAuth flow. This process requires the api_keys_write scope, allowing Ably to push data to your Datadog account.

Once the integration is active, Datadog provides a specific Ably dashboard, enabling you to monitor key metrics without extra setup.

The following steps setup the Datadog integration:

  1. In Datadog, go to Integrations, find the Ably tile, and click Install Integration.
  2. Click Connect Accounts to start the authorization process. Datadog redirects you to Ably.
  3. Log in to your Ably account.
  4. Select your application from the Your Apps page.
  5. Navigate to Integrations, and select Connect to Datadog.
  6. Datadog authorization page, authorize Ably using OAuth to grant access. The required authorization scope is: api_keys_write.
  7. After completing authorization, you will be redirected to the Ably dashboard, and the process is complete.

Remove access

Removing access disconnects Ably from Datadog, stopping data transmission and revoking authorization. Follow the steps remove the Ably and Datadog integration using either platform.

Remove access using Ably

  • Open your application's integration settings.
  • Click Remove next to the Datadog integration.
  • Ably revokes OAuth credentials and stops metric transmission.

Remove access using Datadog

  • Remove associated Ably API keys via Integrations or API Keys.
  • Adjust scopes or entirely revoke OAuth tokens if necessary.

Datadog lite

Datadog Lite is a lightweight version of the full Datadog integration that sends a reduced set of statistics to the Datadog API. This integration is designed for use cases where full statistics are not required, such as when you only need to monitor a limited number channels or connections.

DataDog Lite is available to Pro packages. A 30-day trial is also available to Standard packages, which can be enabled by contacting Ably support.

The following statistics are streamed from Ably to Datadog using the Lite integration:

Metric NameDescription
messages.all.all.countTotal number of messages that were successfully sent, summed over all message types and transports.
messages.all.all.billableCountTotal number of billable messages that were successfully sent, summed over all message types and transports.
messages.all.all.dataTotal message size of all messages that were successfully sent, summed over all message types and transports.
messages.all.all.uncompressedDataTotal uncompressed message size, excluding delta compression.
messages.all.all.failedTotal number of messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as they were rejected by an external integration target, or a service issue on Ably's side.
messages.all.all.refusedTotal number of messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions.
messages.all.messages.countTotal message count, excluding presence and state messages.
messages.all.messages.billableCountTotal billable message count, excluding presence and state messages.
messages.all.messages.dataTotal message size, excluding presence and state messages.
messages.all.messages.uncompressedDataTotal number of messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as they were rejected by an external integration target, or a service issue on Ably's side.
messages.all.messages.failedTotal number of messages excluding presence and state messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as they were rejected by an external integration target, or a service issue on Ably's side.
messages.all.messages.refusedTotal number of messages excluding presence and state messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions.
messages.all.presence.countTotal presence message count.
messages.all.presence.billableCountTotal billable presence message count.
messages.all.presence.dataTotal presence message size.
messages.all.presence.uncompressedDataTotal uncompressed presence message size, excluding delta compression.
messages.all.messages.failedTotal number of presence messages excluding presence and state messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as they were rejected by an external integration target, or a service issue on Ably's side.
messages.all.messages.refusedTotal number of presence messages excluding presence and state messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions.
messages.inbound.all.all.countTotal inbound message count, received by Ably from clients.
messages.inbound.all.all.dataTotal inbound message size, received by Ably from clients.
messages.inbound.all.all.uncompressedDataTotal uncompressed inbound message size, excluding delta compression, received by Ably from clients.
messages.inbound.all.all.failedTotal number of inbound messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as a service issue on Ably's side.
messages.inbound.all.all.refusedTotal number of inbound messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions.
messages.outbound.all.all.countTotal outbound message count, sent from Ably to clients.
messages.outbound.all.all.billableCountTotal billable outbound message count, sent from Ably to clients.
messages.outbound.all.all.dataTotal outbound message size, sent from Ably to clients.
messages.outbound.all.all.uncompressedDataTotal uncompressed outbound message size, excluding delta compression, sent from Ably to clients.
messages.outbound.all.all.failedTotal number of outbound messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as rejection by an external integration target, or a service issue on Ably's side.
messages.outbound.all.all.refusedTotal number of outbound messages that were refused by Ably. This is generally due to rate limiting.
connections.all.peakPeak connection count.
channels.peakPeak active channel count.
push.channelMessagesTotal number of channel messages published over Ably that contained a push payload. Each of these may have triggered notifications to be sent to a device with a matching registered push subscription.
messages.persisted.messages.countTotal count of persisted messages, excluding presence and state messages.
messages.persisted.messages.dataTotal size of persisted messages, excluding presence and state messages.
messages.persisted.messages.uncompressedDataTotal uncompressed persisted message size, excluding delta compression, and presence and state messages.
messages.persisted.presence.countTotal count of persisted presence messages.
messages.persisted.presence.dataTotal size of persisted presence messages.
messages.persisted.presence.uncompressedDataTotal uncompressed persisted presence message size, excluding delta compression.