mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-04-13 09:42:01 +00:00
44 lines
1.1 KiB
Python
Executable file
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()
|