eG Monitoring
 

Measures reported by AWSAmazonSNSTest

Amazon Simple Notification Service (Amazon SNS) is a web service that coordinates and manages the delivery or sending of messages to subscribing endpoints or clients. In Amazon SNS, there are two types of clients - publishers and subscribers-also referred to as producers and consumers. Publishers communicate asynchronously with subscribers by producing and sending a message to a topic, which is a logical access point and communication channel. Subscribers (i.e., web servers, email addresses, Amazon SQS queues, AWS Lambda functions) consume or receive the message or notification over one of the supported protocols (i.e., Amazon SQS, HTTP/S, email, SMS, Lambda) when they are subscribed to the topic.

When using Amazon SNS, you (as the owner) create a topic and control access to it by defining policies that determine which publishers and subscribers can communicate with the topic. A publisher sends messages to topics that they have created or to topics they have permission to publish to. Instead of including a specific destination address in each message, a publisher sends a message to the topic. Amazon SNS matches the topic to a list of subscribers who have subscribed to that topic, and delivers the message to each of those subscribers. Each topic has a unique name that identifies the Amazon SNS endpoint for publishers to post messages and subscribers to register for notifications. Subscribers receive all messages published to the topics to which they subscribe, and all subscribers to a topic receive the same messages.

With Amazon SNS, you also have the ability to send push notification messages directly or through topics to apps on mobile devices. Push notification messages sent to a mobile endpoint can appear in the mobile app as message alerts, badge updates, or even sound alerts.

If SNS is unable to deliver messages to an endpoint - for instance, if you install a sports app and enable push notifications, but the app is unable to send you the latest score of your favorite team - it is bound to impact user experience with that endpoint. To avoid this, administrators must continuously track the messages that SNS sends, check whether these messages are delivered to/consumed by the endpoints, and in the process, swiftly detect a delivery failure. This is made possible by the AWSAmazonSNSTest Test.

Optionally, you can configure this test to report metrics for an app on a mobile device or a push notification platform. This way, you can identify the popular apps using SNS and the push notification service that is popular with SNS. This will also lead you to those apps and platforms to which many messages could not be delivered.

Outputs of the test : One set of results for each message queue.

First-level descriptor: AWS Region

Second-level descriptor: Queue name

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Msg_published By default, this measure indicates the total number of messages published to this topic during the last measurement period.

If the SNS FILTER NAME chosen is Application, then this measure represents the number of messages published to this app during the last measurement period.

If the SNS FILTER NAME chosen is Platform, then this measure represents the number of messages published to all apps registered with this platform during the last measurement period.

Number A high value of this measure is indicative of high messaging activity on a topic/application/platform. A quick comparison across descriptors will point you to the popular topics, applications, or platforms (as the case may be).
Publish_size By default, this measure indicates the average size of all messages published to this topic during the last measurement period.

If the SNS FILTER NAME chosen is Application, then this measure represents the average size of messages published to this app during the last measurement period.

If the SNS FILTER NAME chosen is Platform, then this measure represents the average size of messages published to all apps registered with this platform during the last measurement period.

KB With the exception of SMS messages, Amazon SNS messages can contain up to 256 KB of text data, including XML, JSON and unformatted text.

Each SMS message on the other hand can contain up to 140 bytes.

If you publish a message that exceeds the size limit, Amazon SNS sends it as multiple messages, each fitting within the size limit. Messages are not cut off in the middle of a word but on whole-word boundaries.
Notification_deliver By default, this measure indicates the total number of messages that were successfully consumed by subscribers to this topic, during the last measurement period.

If the SNS FILTER NAME chosen is Application, then this measure represents the number of messages that were successfully delivered to this app either directly or through topics, during the last measurement period.

If the SNS FILTER NAME chosen is Platform, then this measure represents the number of messages successfully delivered to all apps registered with this platform, during the last measurement period.
Number Ideally, the value of this measure should be equal to the value of the ‘Msg_published’ measure.
Notification_fail By default, this measure indicates the number of messages that subscribers to this topic could not consume, during the last measurement period.

If the SNS FILTER NAME chosen is Application, then this measure represents the number of messages that could not be delivered to this app either directly or through topics, during the last measurement period.

If the SNS FILTER NAME chosen is Platform, then this measure represents the number of messages that could not be delivered to all apps registered with this platform, during the last measurement period.
Number Ideally, the value of this measure should be 0. A non-zero value implies that one/more messages could not be delivered to the endpoints.

Typically, if Amazon SNS does not receive a successful response from an endpintint, it attempts to deliver the message again. This applies to all messages, including the subscription confirmation message. By default, if the initial delivery of the message fails, Amazon SNS attempts up to three retries with a delay between failed attempts set at 20 seconds. Note that the message request times out at 15 seconds. This means that if the message delivery failure was caused by a timeout, Amazon SNS will retry approximately 35 seconds after the previous delivery attempt. If you do not like the default delivery policy, you can set a different delivery policy on the endpoint.

If a delivery to an Amazon SQS, email, SMS, or mobile push endpoint fails, then this measure will disregard all re-delivery attempts that follow. In other words, the value of this measure increases by 1 only if message delivery fails the first time; retries will not impact the value of this measure. On the other hand, if a delivery to an HTTP/HTTPS endpoint fails, then the value of this measure will be incremented by 1 for every subsequent delivery retry as well.

To troubleshoot the failure of message deliveries to Application, HTTP, Lambda, and SQS endpoints, you need to enable Amazon SNS delivery status logging. This can be achieved using the AWS Management Console, AWS SDKs, or the AWS CLI.
SMS_suces_rate By default, this measure indicates the total number of successful SMS message deliveries made to subscribers of this topic, during the last measurement period.

If the SNS FILTER NAME chosen is Application, then this measure represents the number of successful SMS message deliveries made to this app during the last measurement period.

If the SNS FILTER NAME chosen is Platform, then this measure represents the number of successful SMS message deliveries made to all apps registered with this platform, during the last measurement period.
Number Ideally, the value of this measure should be high. A very low value indicates many SMS delivery failures.