Statistics
Ably provides statistics at one minute intervals. They are aggregated by minute, hour, day and month. The most recent statistics can be delayed by up to six seconds.
Statistics are available as:
- Account statistics covering all applications in your account
- App statistics for each individual application
Account statistics
Account statistics provide information about all applications in your account.
You can retrieve account statistics from:
- The Control API or REST API
- Your account dashboard
Account statistics via API
You can retrieve account statistics from the Control API or the REST API.
You can retrieve account statistics using the Control API by making a call to the accounts
endpoint using your accountId
and accessToken
. For example, to retrieve the last two minutes of account statistics:
curl --location --request POST 'https://control.ably.net/v1/accounts/${ACCOUNT_ID}/stats' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ${ACCESS_TOKEN}' \
--data-raw '{
"unit": "minute",
"limit": 2
}'
CopyCopied!
Use the /me
endpoint to find your accountId
, or alternatively find it in the Settings page of your account dashboard:
curl --location --request GET 'https://control.a...' \
--header 'Authorization: Bearer ${ACCESS_TOKEN}'
CopyCopied!
You can use the REST API to retrieve account statistics by making a GET request to the stats
endpoint. For example, to retrieve account statistics aggregated by hour:
curl https://rest.ably.io/stats?unit=hour \
-u "<loading API key, please wait>"
Demo OnlyCopyCopied!
Your account statistics are available as graphs, tabular data, and for download from your account dashboard.
App statistics
App statistics provide information about a specific application.
You can retrieve account statistics:
- Via the Control API
- Programmatically using the Pub/Sub SDK
- In realtime by subscribing to a meta channel
- From your application dashboard
App statistics via API
You can retrieve app statistics using the Control API by making a call to the apps
endpoint using your appId
and accessToken
:
curl --location --request POST 'https://control.ably.net/v1/apps/${APP_ID}/stats' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ${ACCESS_TOKEN}' \
--data-raw '{
"unit": "hour",
"limit": 1
}'
CopyCopied!
Your appId
can be found in the Settings tab of an application within your application dashboard.
App-level statistics are also available programmatically using an Ably SDK at one minute intervals, or aggregated up to the hour, day or month.
The following is an example of querying app-level statistics:
const realtime = new Ably.Realtime('<loading API key, please wait>');
const resultPage = await realtime.stats({ unit: 'hour' });
console.log(resultPage.items[0]);
Demo OnlyCopyCopied!
Subscribe to app statistics
You can subscribe to app statistics using the [meta]stats:minute
metachannel. Events are published at one minute intervals and contain the statistics for the previous minute.
The following is an example of subscribing to the [meta]stats
channel:
const channel = ably.channels.get("[meta]stats:minute");
await channel.subscribe('update', event => {
console.log(JSON.stringify(event, undefined, 2));
});
CopyCopied!
App statistics are available as graphs, tabular data, and for download from each application dashboard in your account.
Statistics response payload
Statistics responses are sparse to reduce the size of the JSON and improve performance.
This means that if a metric is empty, or contains only zero values then the metric will be omitted completely from the response.
{
entries: {
'messages.all.all....': 245,
'messages.all.all....': 58654,
'messages.all.all....': 58654,
'messages.all.all....': 245,
'messages.all.mess...': 245,
'messages.all.mess...': 58654,
'messages.all.mess...': 58654,
'messages.all.mess...': 245,
'messages.inbound....': 145,
'messages.inbound....': 29127,
'messages.inbound....': 29127,
'messages.inbound....': 145,
...
},
schema: 'https://schemas.a...',
appId: '<appId>',
inProgress: '2025-01-20:15:11',
unit: 'hour',
intervalId: '2025-01-20:15'
}
CopyCopied!
Statistics metrics
The following metadata is returned for each request:
Property | Description |
---|---|
appId | The ID of the Ably application the statistics are for. Only present when querying app statistics. |
accountId | The ID of the Ably account the statistics are for. Only present when querying account statistics. |
intervalId | Start time for the stats entry. Format is yyyy-mm-dd:hh:mm for unit=minute , and yyyy-mm-dd:hh for unit=hour,day,month . |
unit | Unit of time that the stats entry covers. One of minute , hour , day or month . |
schema | URI of the stats schema. |
inProgress | The last sub-interval included in this entry in the format yyyy-mm-dd:hh:mm:ss , else undefined. For entries that are still in progress, such as the current month. |
All messages
The following metrics can be returned for all messages. ‘All messages’ includes totals for all messages sent and received by Ably and clients.
Metric | Description |
---|---|
messages.all.all.count | Total number of messages that were successfully sent, summed over all message types and transports. |
messages.all.all.billableCount | Total number of billable messages that were successfully sent, summed over all message types and transports. |
messages.all.all.data | Total message size of all messages that were successfully sent, summed over all message types and transports. |
messages.all.all.uncompressedData | Total uncompressed message size, excluding delta compression. |
messages.all.all.failed | Total 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.refused | Total number of messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.all.messages.count | Total message count, excluding presence and state messages. |
messages.all.messages.billableCount | Total billable message count, excluding presence and state messages. |
messages.all.messages.data | Total message size, excluding presence and state messages. |
messages.all.messages.uncompressedData | Total 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.failed | Total 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.refused | Total 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.count | Total presence message count. |
messages.all.presence.billableCount | Total billable presence message count. |
messages.all.presence.data | Total presence message size. |
messages.all.presence.uncompressedData | Total uncompressed presence message size, excluding delta compression. |
messages.all.messages.failed | Total 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.refused | Total 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. |
Inbound messages
The following metrics can be returned for inbound messages. Inbound messages are messages that are sent by clients and received by Ably.
Metric | Description |
---|---|
messages.inbound.realtime.all.count | Total inbound realtime message count, received by Ably from clients. |
messages.inbound.realtime.all.data | Total inbound realtime message size, received by Ably from clients. |
messages.inbound.realtime.all.uncompressedData | Total uncompressed inbound realtime message size, excluding delta compression, received by Ably from clients. |
messages.inbound.realtime.all.failed | Total number of inbound realtime 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.realtime.all.refused | Total number of inbound realtime messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.realtime.messages.count | Total inbound realtime message count, excluding presence and state messages, received by Ably from clients. |
messages.inbound.realtime.messages.data | Total inbound realtime message size, excluding presence and state messages, received by Ably from clients. |
messages.inbound.realtime.messages.uncompressedData | Total uncompressed inbound realtime message size, received by Ably from clients. This excludes delta compression, and presence and state messages. |
messages.inbound.realtime.messages.failed | Total number of inbound realtime 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.inbound.realtime.messages.refused | Total number of inbound realtime 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.realtime.presence.count | Total inbound realtime presence message count, received by Ably from clients. |
messages.inbound.realtime.presence.data | Total inbound realtime presence message size, received by Ably from clients. |
messages.inbound.realtime.presence.uncompressedData | Total uncompressed inbound realtime presence message size, excluding delta compression, received by Ably from clients. |
messages.inbound.realtime.presence.failed | Total number of inbound realtime presence 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.realtime.presence.refused | Total number of inbound realtime presence messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.realtime.state.count | Total inbound realtime state message count, received by Ably from clients. |
messages.inbound.realtime.state.data | Total inbound realtime state message size, received by Ably from clients. |
messages.inbound.realtime.state.uncompressedData | Total uncompressed inbound realtime state message size received by Ably from clients. |
messages.inbound.realtime.state.failed | Total number of inbound realtime state 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.realtime.state.refused | Total number of inbound realtime state messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.rest.all.count | Total inbound REST message count, received by Ably from clients. |
messages.inbound.rest.all.data | Total inbound REST message size, received by Ably from clients. |
messages.inbound.rest.all.uncompressedData | Total uncompressed inbound REST message size, excluding delta compression, received by Ably from clients. |
messages.inbound.rest.all.failed | Total number of inbound REST 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.rest.all.refused | Total number of inbound REST messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.rest.messages.count | Total inbound REST message count, excluding presence and state messages, received by Ably from clients. |
messages.inbound.rest.messages.data | Total inbound REST message size, excluding presence and state messages, received by Ably from clients. |
messages.inbound.rest.messages.uncompressedData | Total uncompressed inbound REST message size, received by Ably from clients. This excludes delta compression, and presence and state messages. |
messages.inbound.rest.messages.failed | Total number of inbound REST 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. This excludes presence and state messages. |
messages.inbound.rest.messages.refused | Total number of inbound REST messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. This excludes presence and state messages. |
messages.inbound.rest.presence.count | Total inbound REST presence message count, received by Ably from clients. |
messages.inbound.rest.presence.data | Total inbound REST presence message size, received by Ably from clients. |
messages.inbound.rest.presence.uncompressedData | Total uncompressed inbound REST presence message size, excluding delta compression, received by Ably from clients. |
messages.inbound.rest.presence.failed | Total number of inbound REST presence 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.rest.presence.refused | Total number of inbound REST presence messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.rest.state.count | Total inbound REST state message count, received by Ably from clients. |
messages.inbound.rest.state.data | Total inbound REST state message size, received by Ably from clients. |
messages.inbound.rest.state.uncompressedData | Total uncompressed inbound REST state message size, excluding delta compression received by Ably from clients. |
messages.inbound.rest.state.failed | Total number of inbound REST state 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.rest.state.refused | Total number of inbound REST state messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.all.all.count | Total inbound message count, received by Ably from clients. |
messages.inbound.all.all.data | Total inbound message size, received by Ably from clients. |
messages.inbound.all.all.uncompressedData | Total uncompressed inbound message size, excluding delta compression, received by Ably from clients. |
messages.inbound.all.all.failed | Total 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.refused | Total number of inbound messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
messages.inbound.all.messages.count | Total inbound message count, excluding presence and state messages, received by Ably from clients. |
messages.inbound.all.messages.data | Total inbound message size, excluding presence and state messages, received by Ably from clients. |
messages.inbound.all.messages.uncompressedData | Total uncompressed inbound message size, received by Ably from clients. This excludes delta compression, and presence and state messages. |
messages.inbound.all.messages.failed | Total number of inbound 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 a service issue on Ably’s side. |
messages.inbound.all.presence.count | Total inbound presence message count, received by Ably from clients. |
messages.inbound.all.presence.data | Total inbound presence message size, received by Ably from clients. |
messages.inbound.all.presence.uncompressedData | Total uncompressed inbound presence message size, excluding delta compression, received by Ably from clients. |
messages.inbound.all.presence.failed | Total number of inbound presence 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.presence.refused | Total number of inbound presence messages that were refused by Ably. For example, due to rate limiting, malformed messages, or incorrect client permissions. |
Outbound messages
The following metrics can be returned for outbound messages. Outbound messages are messages that are sent from Ably to a client.
Metric | Description |
---|---|
messages.outbound.realtime.all.count | Total outbound realtime message count, sent from Ably to clients. |
messages.outbound.realtime.all.billableCount | Total billable outbound realtime message count, sent from Ably to clients. |
messages.outbound.realtime.all.data | Total outbound realtime message size, sent from Ably to clients. |
messages.outbound.realtime.all.uncompressedData | Total uncompressed outbound realtime message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.realtime.all.failed | Total number of outbound realtime messages that failed. These are messages which did not succeed for some reason other than Ably rejecting them, such as rejection by an external integration target. |
messages.outbound.realtime.all.refused | Total number of outbound realtime messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.realtime.messages.count | Total outbound realtime message count, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.realtime.messages.billableCount | Total billable outbound realtime message count, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.realtime.messages.data | Total outbound realtime message size, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.realtime.messages.uncompressedData | Total uncompressed outbound realtime message size, sent from Ably to clients. This excludes delta compression, and presence and state messages. |
messages.outbound.realtime.messages.failed | Total number of outbound realtime 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 a service issue on Ably’s side. |
messages.outbound.realtime.messages.refused | Total number of outbound realtime messages excluding presence and state messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.realtime.presence.count | Total outbound realtime presence message count, sent from Ably to clients. |
messages.outbound.realtime.presence.billableCount | Total billable outbound realtime presence message count, sent from Ably to clients. |
messages.outbound.realtime.presence.data | Total outbound realtime presence message size, sent from Ably to clients. |
messages.outbound.realtime.presence.uncompressedData | Total uncompressed outbound realtime presence message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.realtime.presence.failed | Total number of outbound realtime presence 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.outbound.realtime.presence.refused | Total number of outbound realtime presence messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.realtime.state.count | Total outbound realtime state message count, sent from Ably to clients. |
messages.outbound.realtime.state.billableCount | Total billable outbound realtime state message count, sent from Ably to clients. |
messages.outbound.realtime.state.data | Total outbound realtime state message size, sent from Ably to clients. |
messages.outbound.realtime.state.uncompressedData | Total uncompressed outbound realtime presence message size, sent from Ably to clients. |
messages.outbound.rest.all.count | Total outbound REST message count, sent from Ably to clients. |
messages.outbound.rest.all.data | Total outbound REST message size, sent from Ably to clients. |
messages.outbound.rest.all.uncompressedData | Total uncompressed outbound REST message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.rest.all.refused | Total number of messages that would have been broadcast to realtime subscribers as a result of a REST publish attempt that was refused for breaching account-wide message rate limits. |
messages.outbound.rest.messages.count | Total outbound REST message count, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.rest.messages.data | Total outbound REST message size, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.rest.messages.uncompressedData | Total uncompressed outbound REST message size, sent from Ably to clients. This excludes delta compression, and presence and state messages. |
messages.outbound.rest.messages.refused | Total number of messages that would have been broadcast to realtime subscribers as a result of a REST publish attempt that was refused for breaching account-wide message rate limit. This excludes presence and state messages. |
messages.outbound.rest.presence.count | Total outbound REST presence message count, sent from Ably to clients. |
messages.outbound.rest.presence.data | Total outbound REST presence message size, sent from Ably to clients. |
messages.outbound.rest.presence.uncompressedData | Total uncompressed outbound REST presence message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.rest.state.count | Total outbound REST state message count, sent from Ably to clients. |
messages.outbound.rest.state.data | Total outbound REST state message size, sent from Ably to clients. |
messages.outbound.rest.state.uncompressedData | Total uncompressed outbound REST state message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.rest.state.refused | Total number of state messages that would have been broadcast to realtime subscribers as a result of a REST publish attempt that was refused for breaching account-wide message rate limit. |
messages.outbound.webhook.all.count | Total outbound webhook message count, sent from Ably to clients using webhooks. |
messages.outbound.webhook.all.data | Total outbound webhook message size, sent from Ably to clients using webhooks. |
messages.outbound.webhook.all.uncompressedData | Total uncompressed outbound webhook message size, excluding delta compression, sent from Ably to clients using webhooks. |
messages.outbound.webhook.all.failed | Total number of outbound webhook 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. |
messages.outbound.webhook.all.refused | Total number of outbound webhook messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.webhook.messages.count | Total outbound webhook message count, sent from Ably to clients using webhooks. This excludes presence and state messages. |
messages.outbound.webhook.messages.data | Total outbound webhook message size, sent from Ably to clients using webhooks. This excludes presence and state messages. |
messages.outbound.webhook.messages.uncompressedData | Total uncompressed outbound webhook message size, sent from Ably to clients using webhooks. This excludes delta compression, and presence and state messages. |
messages.outbound.webhook.messages.failed | Total number of outbound webhook 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 rejection by an external integration target. |
messages.outbound.webhook.messages.refused | Total number of outbound webhook messages excluding presence and state messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.webhook.presence.count | Total outbound webhook presence message count, sent from Ably to clients using webhooks. |
messages.outbound.webhook.presence.data | Total outbound webhook presence message size, sent from Ably to clients using webhooks. |
messages.outbound.webhook.presence.uncompressedData | Total uncompressed outbound webhook presence message size, excluding delta compression, sent from Ably to clients using webhooks. |
messages.outbound.webhook.presence.failed | Total number of outbound webhook presence 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. |
messages.outbound.webhook.presence.refused | Total number of outbound webhook presence messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.sharedQueue.all.count | Total Ably Queue message count, sent from Ably to an Ably Queue using an integration rule. |
messages.outbound.sharedQueue.all.data | Total Ably Queue message size, sent from Ably to an Ably Queue using an integration rule. |
messages.outbound.sharedQueue.all.uncompressedData | Total uncompressed Ably Queue message size, excluding delta compression, sent from Ably to an Ably Queue using an integration rule. |
messages.outbound.sharedQueue.all.failed | Total number of Ably Queue messages that failed because they were rejected by RabbitMQ for some reason. |
messages.outbound.sharedQueue.all.refused | Total number of Ably Queue messages that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.sharedQueue.messages.count | Total Ably Queue message count, sent from Ably to an Ably Queue using an integration rule. This excludes presence and state messages. |
messages.outbound.sharedQueue.messages.data | Total Ably Queue message size, sent from Ably to an Ably Queue using an integration rule. This excludes presence and state messages. |
messages.outbound.sharedQueue.messages.uncompressedData | Total uncompressed Ably Queue message size, sent from Ably to an Ably Queue using an integration rule. This excludes delta compression, and presence and state messages. |
messages.outbound.sharedQueue.messages.failed | Total number of Ably Queue messages, excluding presence and state messages, that failed because they were rejected by RabbitMQ for some reason. |
messages.outbound.sharedQueue.messages.refused | Total number of Ably Queue messages, excluding presence and state messages, that Ably refused to send. |
messages.outbound.sharedQueue.presence.count | Total Ably Queue presence message count, sent from Ably to an Ably Queue using an integration rule. |
messages.outbound.sharedQueue.presence.data | Total Ably Queue presence message size, sent from Ably to an Ably Queue using an integration rule. |
messages.outbound.sharedQueue.presence.uncompressedData | Total uncompressed Ably Queue presence message size, excluding delta compression, sent from Ably to an Ably Queue using an integration rule. |
messages.outbound.sharedQueue.presence.failed | Total number of Ably Queue presence messages that failed because they were rejected by RabbitMQ for some reason. |
messages.outbound.sharedQueue.presence.refused | Total number of Ably Queue presence messages that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.externalQueue.all.count | Total Firehose message count, sent from Ably to an external target using a Firehose integration rule. |
messages.outbound.externalQueue.all.data | Total Firehose message size, sent from Ably to an external target using a Firehose integration rule. |
messages.outbound.externalQueue.all.uncompressedData | Total uncompressed Firehose message size, excluding delta compression, sent from Ably to an external target using a Firehose integration rule. |
messages.outbound.externalQueue.all.failed | Total number of Firehose messages that failed because they were rejected by the external integration target for some reason. |
messages.outbound.externalQueue.all.refused | Total number of Firehose messages that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.externalQueue.messages.count | Total Firehose message count, sent from Ably to an external target using a Firehose integration rule. This excludes presence and state messages. |
messages.outbound.externalQueue.messages.data | Total Firehose message size, sent from Ably to an external target using a Firehose integration rule. This excludes presence and state messages. |
messages.outbound.externalQueue.messages.uncompressedData | Total uncompressed Firehose message size, sent from Ably to an external target using a Firehose integration rule. This excludes delta compression, and presence and state messages. |
messages.outbound.externalQueue.messages.failed | Total number of Firehose messages, excluding presence and state messages, that failed because they were rejected by the external integration target for some reason. |
messages.outbound.externalQueue.messages.refused | Total number of Firehose messages, excluding presence and state messages, that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.externalQueue.presence.count | Total Firehose presence message count, sent from Ably to an external target using a Firehose integration rule. |
messages.outbound.externalQueue.presence.data | Total Firehose presence message size, sent from Ably to an external target using a Firehose integration rule. |
messages.outbound.externalQueue.presence.uncompressedData | Total uncompressed Firehose presence message size, sent from Ably to an external target using a Firehose integration rule. This excludes delta compression. |
messages.outbound.externalQueue.presence.failed | Total number of Firehose presence messages that failed, because they were rejected by the external integration target for some reason. |
messages.outbound.externalQueue.presence.refused | Total number of Firehose presence messages that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.httpEvent.all.count | Total messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. |
messages.outbound.httpEvent.all.data | Total size of messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. |
messages.outbound.httpEvent.all.uncompressedData | Total uncompressed size of messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. This excludes delta compression. |
messages.outbound.httpEvent.all.failed | Total number of messages sent by a HTTP trigger that failed, because they were rejected by the external endpoint for some reason. |
messages.outbound.httpEvent.all.refused | Total number of messages sent by a HTTP trigger that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.httpEvent.messages.count | Total messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. This excludes presence and state messages. |
messages.outbound.httpEvent.messages.data | Total size of messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. This excludes presence and state messages. |
messages.outbound.httpEvent.messages.uncompressedData | Total uncompressed size of messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. This excludes delta compression, and presence and state messages. |
messages.outbound.httpEvent.messages.failed | Total number of messages sent by a HTTP trigger, excluding presence and state messages, that failed because they were rejected by the external endpoint for some reason. |
messages.outbound.httpEvent.messages.refused | Total number of messages sent by a HTTP trigger, excluding presence and state messages, that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.httpEvent.presence.count | Total presence messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. |
messages.outbound.httpEvent.presence.data | Total size of presence messages sent by a HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. |
messages.outbound.httpEvent.presence.uncompressedData | Total uncompressed size of presence messages sent by a HTTP trigger. Typically serverless functions on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. This excludes delta compression. |
messages.outbound.httpEvent.presence.failed | Total number of presence messages sent by a HTTP trigger that failed because they were rejected by the external endpoint for some reason. |
messages.outbound.httpEvent.presence.refused | Total number of presence messages sent by a HTTP trigger that Ably refused to send. This is generally due to rate limiting. |
messages.outbound.push.all.count | Total count of push messages, sent to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.all.data | Total size of push messages, sent to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.all.uncompressedData | Total uncompressed push message size, excluding delta compression, pushed to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.all.failed | Total number of push messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as rejection by APNS or FCM, or a service issue on Ably’s side. |
messages.outbound.push.all.refused | Total number of push messages that were refused by Ably. For example, due to rate limiting. |
messages.outbound.push.messages.count | Total push message count, excluding delta compression, and presence and state messages, pushed to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.messages.data | Total push message size, excluding delta compression, and presence and state messages, pushed to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.messages.uncompressedData | Total uncompressed push message size, excluding delta compression, and presence and state messages, pushed to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.messages.failed | Total number of push 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 rejection by APNS or FCM, or a service issue on Ably’s side. |
messages.outbound.push.messages.refused | Total number of push messages, excluding presence and state messages, that were refused by Ably. For example due to rate limiting. |
messages.outbound.push.presence.count | Total push presence message count, sent to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.presence.data | Total push presence message size, sent to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.presence.uncompressedData | Total uncompressed push presence message size, excluding delta compression, sent to devices via a push notifications transport such as FCM or APNS. |
messages.outbound.push.presence.failed | Total number of push presence messages that failed. These are messages which did not succeed for some reason other than Ably explicitly refusing them, such as rejection by APNS or FCM, or a service issue on Ably’s side. |
messages.outbound.push.presence.refused | Total number of push presence messages that were refused by Ably. For example due to rate limiting. |
messages.outbound.all.all.count | Total outbound message count, sent from Ably to clients. |
messages.outbound.all.all.billableCount | Total billable outbound message count, sent from Ably to clients. |
messages.outbound.all.all.data | Total outbound message size, sent from Ably to clients. |
messages.outbound.all.all.uncompressedData | Total uncompressed outbound message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.all.all.failed | Total number of outbound messages that failed. These are messages which 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.refused | Total number of outbound messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.all.messages.count | Total outbound message count, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.all.messages.billableCount | Total billable outbound message count, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.all.messages.data | Total outbound message size, excluding presence and state messages, sent from Ably to clients. |
messages.outbound.all.messages.uncompressedData | Total uncompressed outbound message size, excluding delta compression, and presence and state messages, sent from Ably to clients. |
messages.outbound.all.messages.failed | Total number of outbound 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 rejection by an external integration target, or a service issue on Ably’s side. |
messages.outbound.all.messages.refused | Total number of outbound messages excluding presence and state messages that were refused by Ably. This is generally due to rate limiting. |
messages.outbound.all.presence.count | Total outbound presence message count, sent from Ably to clients. |
messages.outbound.all.presence.billableCount | Total billable outbound presence message count, sent from Ably to clients. |
messages.outbound.all.presence.data | Total outbound presence message size, sent from Ably to clients. |
messages.outbound.all.presence.uncompressedData | Total uncompressed outbound presence message size, excluding delta compression, sent from Ably to clients. |
messages.outbound.all.presence.failed | Total number of outbound presence messages that failed. These are messages which 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.presence.refused | Total number of outbound presence messages that were refused by Ably. This is generally due to rate limiting. |
Persisted messages
The following metrics can be returned for persisted messages. Persisted messages are messages stored by Ably.
Metric | Description |
---|---|
messages.persisted.all.count | Total count of persisted messages. |
messages.persisted.all.data | Total size of persisted messages. |
messages.persisted.all.uncompressedData | Total uncompressed persisted message size, excluding delta compression. |
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. |
Message deltas
The following metrics can be returned for message deltas. Message deltas are messages that are compressed by using the delta feature.
Metric | Description |
---|---|
messages.processed.delta.xdelta.succeeded | Total number of message deltas successfully generated. |
messages.processed.delta.xdelta.skipped | Total number of messages on channels where delta was enabled but where Ably skipped delta generation. For example, because the payload was too small to make it worthwhile. |
messages.processed.delta.xdelta.failed | Total number of messages on channels where delta generation was attempted but a delta was not successfully generated, so Ably just broadcasted the original. |
Connections
The following metrics can be returned for connections. Connections are all client connections made to Ably.
Metric | Description |
---|---|
connections.all.peak | Peak connection count. |
connections.all.min | Minimum connection count. |
connections.all.mean | Mean connection count. |
connections.all.opened | Total number of connections opened. |
connections.all.refused | Total number of connections refused, for example for exceeding the connection creation rate. |
Channels
The following metrics can be returned for channels. Channels are used to separate messages into different topics throughout Ably.
Metric | Description |
---|---|
channels.peak | Peak active channel count. |
channels.min | Minimum active channel count. |
channels.mean | Mean active channel count. |
channels.opened | Total number of channels opened. |
channels.refused | Total number of channel creations rejected for exceeding the channel creation rate. |
API requests
The following metrics can be returned for API requests. API requests are all HTTP requests made to Ably, including those related to token authentication and push notifications. They do not include those requests made to the Control API.
Metric | Description |
---|---|
apiRequests.all.succeeded | Total number of API requests made. |
apiRequests.all.failed | Total number of failed API requests. |
apiRequests.all.refused | Total number of API requests refused due to account limits. |
apiRequests.tokenRequests.succeeded | Total number of token requests made. |
apiRequests.tokenRequests.failed | Total number of failed token requests. |
apiRequests.tokenRequests.refused | Total number of token requests refused due to insufficient permissions or rate limiting. |
apiRequests.push.succeeded | Total number of push requests made. |
apiRequests.push.failed | Total number of failed push requests. |
apiRequests.push.refused | Total number of push requests refused. |
apiRequests.other.succeeded | Total number of requests made, excluding token and push requests. |
apiRequests.other.failed | Total number of failed requests, excluding token and push requests. |
apiRequests.other.refused | Total number of requests refused, excluding token and push requests. |
Push notifications
The following metrics can be returned for push notifications. Push notifications are all notifications sent to devices via a push transport.
Metric | Description |
---|---|
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. |
push.notifications.delivered.fcm | Total number of push notifications successfully delivered over the FCM transport. |
push.notifications.delivered.gcm | Total number of push notifications successfully delivered over the GCM transport. |
push.notifications.delivered.apns | Total number of push notifications successfully delivered over the APNS transport. |
push.notifications.delivered.web | Total number of push notifications successfully delivered over the web transport. |
push.notifications.delivered.total | Total number of push notifications successfully delivered over any transport. |
push.notifications.refused.retriable.fcm | Total number of push notifications that Ably attempted to deliver to FCM but were refused with a retriable error. Ably will attempt to retry these. |
push.notifications.refused.retriable.gcm | Total number of push notifications that Ably attempted to deliver to GCM but were refused with a retriable error. Ably will attempt to retry these. |
push.notifications.refused.retriable.apns | Total number of push notifications that Ably attempted to deliver to APNS but were refused with a retriable error. Ably will attempt to retry these. |
push.notifications.refused.retriable.web | Total number of push notifications that Ably attempted to deliver over a web push transport but were refused with a retriable error. Ably will attempt to retry these. |
push.notifications.refused.retriable.total | Total number of push notifications that Ably attempted to deliver but were refused with a retriable error. Ably will attempt to retry these. |
push.notifications.refused.final.fcm | Total number of push notifications that Ably attempted to deliver to FCM but were refused with an error that wasn’t retriable. |
push.notifications.refused.final.gcm | Total number of push notifications that Ably attempted to deliver to GCM but were refused with an error that wasn’t retriable. |
push.notifications.refused.final.apns | Total number of push notifications that Ably attempted to deliver to APNS but were refused with an error that wasn’t retriable. |
push.notifications.refused.final.web | Total number of push notifications that Ably attempted to deliver over a web push transport but were refused with an error that wasn’t retriable. |
push.notifications.refused.final.total | Total number of push notifications that Ably attempted to deliver but were refused with an error that wasn’t retriable. |
push.notifications.skipped.apns | Total number of push notifications that Ably did not attempt to deliver to APNS. For example, APNS location push notifications sent over a channel to subscribing devices without location tokens. |
push.notifications.skipped.total | Total number of push notifications that Ably did not attempt to deliver. For example, an APNS location push notification sent over a channel to subscribing devices without location tokens. |
push.notifications.all.fcm | Total number of attempts to deliver push notifications over the FCM transport, irrespective of whether they were successful, or not. |
push.notifications.all.gcm | Total number of attempts to deliver push notifications over the GCM transport, irrespective of whether they were successful, or not. |
push.notifications.all.apns | Total number of attempts to deliver push notifications over the APNS transport, irrespective of whether they were successful, or not. |
push.notifications.all.web | Total number of attempts to deliver push notifications over the web transport, irrespective of whether they were successful, or not. |
push.notifications.all.total | Total number of attempts to deliver push notifications over any transport, irrespective of whether they were successful, or not. |
push.directPublishes | Total number of direct push publishes. These are notifications triggered by a request to /push/publish , not a message sent on a channel that contains a push payload. |
Account-only metrics
The following metrics can only be returned when querying account statistics:
Metric | Description |
---|---|
peakRates.messages | ThePeak rate of messages. |
peakRates.apiRequests | Peak rate of api requests. |
peakRates.tokenRequests | Peak rate of token requests. |
peakRates.connections | Peak rate of opened connections. |
peakRates.channels | Peak rate of channels activations. |
peakRates.reactor.httpEvent | Peak rate of events sent to an HTTP trigger. Typically a serverless function on a service such as AWS Lambda, Google Cloud Functions, or Azure Functions. |
peakRates.reactor.amqp | Peak rate of events sent to an Ably Queue using an integration rule. |
peakRates.reactor.externalQueue | Peak rate of events sent to an external endpoint using a Firehose integration rule. |
peakRates.reactor.webhook | Peak rate of events sent to webhook configured through an integration rule. |
peakRates.pushRequests | Peak rate of push API requests. |