mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
48 lines
1.3 KiB
Text
48 lines
1.3 KiB
Text
![]() |
#!/usr/bin/env python
|
||
|
|
||
|
import datetime
|
||
|
import os
|
||
|
import sys
|
||
|
|
||
|
import boto
|
||
|
from boto.ec2.cloudwatch import CloudWatchConnection
|
||
|
|
||
|
from vendor.munin import MuninPlugin
|
||
|
|
||
|
class AWSCloudWatchELBRequestsPlugin(MuninPlugin):
|
||
|
category = "AWS"
|
||
|
args = "-l 0 --base 1000"
|
||
|
vlabel = "Requests/sec"
|
||
|
info = "Show number of requests per second"
|
||
|
|
||
|
@property
|
||
|
def title(self):
|
||
|
return "Requests/sec for ELBs '%s'" % ",".join(self.elb_names)
|
||
|
|
||
|
@property
|
||
|
def fields(self):
|
||
|
return [
|
||
|
(n, dict(
|
||
|
label = "requests on ELB %s" % n,
|
||
|
type = "ABSOLUTE",
|
||
|
)) for n in self.elb_names
|
||
|
]
|
||
|
|
||
|
def __init__(self):
|
||
|
self.api_key = os.environ['AWS_KEY']
|
||
|
self.secret_key = os.environ['AWS_SECRET']
|
||
|
self.elb_names = (sys.argv[0].rsplit('_', 1)[-1] or os.environ['ELB_NAME']).split(',')
|
||
|
|
||
|
def execute(self):
|
||
|
minutes = 5
|
||
|
end_date = datetime.datetime.utcnow()
|
||
|
start_date = end_date - datetime.timedelta(minutes=minutes)
|
||
|
cw = CloudWatchConnection(self.api_key, self.secret_key)
|
||
|
return dict(
|
||
|
(n, sum(x['Sum'] for x in cw.get_metric_statistics(60, start_date, end_date, "RequestCount", "AWS/ELB", ["Sum"])))
|
||
|
for n in self.elb_names
|
||
|
)
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
AWSCloudWatchELBRequestsPlugin().run()
|