NewsBlur/config/munin/aws_sqs_queue_length_
2016-11-11 11:09:13 -08:00

44 lines
1.1 KiB
Python
Executable file

#!/srv/newsblur/venv/newsblur/bin/python
import os
import sys
import boto
from boto.sqs.connection import SQSConnection
from vendor.munin import MuninPlugin
class AWSSQSQueueLengthPlugin(MuninPlugin):
category = "AWS"
args = "-l 0 --base 1000"
vlabel = "Messages"
info = "Show number of messages in an SQS queue"
@property
def title(self):
return "Length of AWS SQS queues '%s'" % ",".join(self.queues)
@property
def fields(self):
return [
(q, dict(
label = "messages in %s" % q,
type = "GAUGE",
min = "0",
)) for q in self.queues
]
def __init__(self):
self.api_key = os.environ['AWS_KEY']
self.secret_key = os.environ['AWS_SECRET']
self.queues = (sys.argv[0].rsplit('_', 1)[-1] or os.environ['SQS_QUEUES']).split(',')
def execute(self):
conn = SQSConnection(self.api_key, self.secret_key)
return dict(
(qname, conn.get_queue(qname).count())
for qname in self.queues
)
if __name__ == "__main__":
AWSSQSQueueLengthPlugin().run()