Datadog

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.

To connect Ably with Datadog, you must Raise a support ticket to gain access to the integration via your Ably dashboard. Once granted, you can 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.

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

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

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

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.

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

Metric Name Description
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.peak Peak connection count.
channels.peak Peak active channel count.
push.channelMessages Total 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.count Total count of persisted messages, excluding presence and state messages.
messages.persisted.messages.data Total size of persisted messages, excluding presence and state messages.
messages.persisted.messages.uncompressedData Total uncompressed persisted message size, excluding delta compression, and presence and state messages.
messages.persisted.presence.count Total count of persisted presence messages.
messages.persisted.presence.data Total size of persisted presence messages.
messages.persisted.presence.uncompressedData Total uncompressed persisted presence message size, excluding delta compression.