File: //usr/lib/python2.7/site-packages/lap/newrelic_appdex.py
import json
import requests
import datetime
def __run__(params):
api_key = params['api_key']
user_id = params['user_id']
app_id = params['app_id']
warning = params['warning']
critical = params['critical']
headers = { 'x-api-key': api_key }
now = datetime.datetime.now()
# Generate url for last 10 minutes
url = "https://api.newrelic.com/api/v1/accounts/%s/applications/%s/data.json?metrics[]=Apdex&field=score&summary=1&begin=%s&end=%s" % (
user_id, app_id, (now - datetime.timedelta(minutes=10)).strftime("%Y-%m-%dT%H:%M:%SZ"), now.strftime("%Y-%m-%dT%H:%M:%SZ")
)
try:
info = json.loads(requests.get(url, headers=headers).text)
appdex = float(info[0]["score"])
perfdata = []
perfdata.append(("appdex", str(appdex)))
perfdata = "|".join([ "=".join(x) for x in perfdata])
if appdex < critical:
return [2, "CRITICAL - Appdex is: %s/%s" % (appdex, critical), perfdata]
elif appdex < warning:
return [1, "WARNING - Appdex is: %s/%s" % (appdex, warning), perfdata]
else:
return [0, "OK - Appdex is: %s" % (appdex), perfdata]
except Exception, e:
return [2, "CRITICAL - Error: %s" % repr(e)]
if __name__ == '__main__':
params = {
'api_key': '06097717cdf7c682d6d09fdd222a7b9680480d292c9096a',
'user_id': '328833',
'app_id': '2786002',
'warning': 0.8,
'critical': 0.7,
}
print __run__(params)