[PYTHON] [blackbird-sqs] Monitoring AWS SQS

This Plugin (https://github.com/Vagrants/blackbird-sqs) (the URL for github) uses the CloudWatch API to get SQS Metrics.

What metric does this plugin get?

The Metrics that can be obtained are as follows. From the left, the column name is the Metric name, Statistics is Avg or Sum, and what is used to get the value? Description is a brief explanation of Metric.

Name Statistics Description
NumberOfMessageSent Sum Total number of messages added to the Queue
SentMessageSize Minimum The smallest message size added to the Queue within the capture interval
SentMessageSize Maximum The largest message size added to the Queue within the capture interval
SentMessageSize Average Average size of messages added to the Queue within the capture interval
SentMessageSize Sum Total size of messages added to the Queue within the capture interval
NumberOfMessagesReceived Sum Number of messages retrieved by call of ReceiveMessage API
NumberOfEmptyReceives Sum The number of calls that did not return a message with the ReceiveMessage API call
NumberOfMessagesDeleted Sum Number of messages deleted from Queue
ApproximateNumberOfMessagesDelayed Average Number of Queues that are delayed and cannot be read immediately
ApproximateNumberOfMessagesVisible Average The number of messages that can be retrieved from the Queue. It's Queue Length.
ApproximateNumberOfMessagesNotVisible Average The number of messages being processed. Messages that have been retrieved and not deleted are counted here.

Zabbix Template

Items

As Items, only the above table is used because it only calls the above API.

Triggers

Queue Length

Check the length of the Queue from the value of ApproximateNumberOfMessagesNotVisible, and throw Alert for each threshold of Info, Average, High. Each threshold is cut out in Macro, so if there is an excess or deficiency in the default value, it will be adjusted in a timely manner.

Number of Getting Empty Messages

It may not be necessary depending on the characteristics of the application, but rather than detecting that there is nothing in the Queue, it alerts the number of times the Call of the ReceiveMessage API was empty. If the architecture is such that a Message is thrown to SQS and the Consumer retrieves it when inserting into the DB, it is a problem if it accumulates too much, and if it is too empty, something is wrong.

Graphs

Number of Operated Queue

Each operation of Message is graphed.

Is a graph.

スクリーンショット_2014-12-08_22_09_20.png

Number of Visible Messages

It is a graph of Queue Length.

スクリーンショット_2014-12-08_22_09_45.png

Total Message Size

The Total Size of the Message in the Queue.

スクリーンショット_2014-12-08_22_09_58.png

Size per Message

Bytes per Message.

スクリーンショット_2014-12-08_22_10_15.png


The Queue Length itself may not make sense to get depending on the characteristics of your application, but you'll notice that something unusual is happening when it's obviously accumulated and when it's obviously less. is. Is it meaningful just to notice that ...

Recommended Posts

[blackbird-sqs] Monitoring AWS SQS
[blackbird-dynamodb] Monitoring AWS DynamoDB
[blackbird-rds] Monitoring AWS RDS
[blackbird-elb] Monitoring AWS ElasticLoadBalancing
[blackbird-aws-service-limits] Monitoring AWS Service Limits
[blackbird-kinesis-stream] Monitoring AWS Kinesis Stream
[aws] Send and receive sqs messages
Issue a signed URL with AWS SQS
AWS IoT device life and death monitoring