blob: 6250fb2d685b011c7a48cd17573645296f935c60 [file] [log] [blame]
stevenvanrossem2fdfbf42016-05-13 15:08:47 +02001"""
2Prometheus API helper functions
3(c) 2016 by Steven Van Rossem <steven.vanrossem@intec.ugent.be>
4"""
5
stevenvanrossem1a6843a2016-05-19 12:19:36 +02006#import urllib2
7import requests
8#import ast
stevenvanrossem2fdfbf42016-05-13 15:08:47 +02009
stevenvanrossem48db0512016-05-18 15:43:24 +020010# set this to localhost for now
11# this is correct for son-emu started outside of a container or as a container with net=host
stevenvanrossem73efd192016-06-29 01:44:07 +020012#TODO prometheus sdk DB is started outside of emulator, place these globals in an external SDK config file?
stevenvanrossem48db0512016-05-18 15:43:24 +020013prometheus_ip = '127.0.0.1'
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020014prometheus_port = '9090'
15prometheus_REST_api = 'http://{0}:{1}'.format(prometheus_ip, prometheus_port)
16
17
18def query_Prometheus(query):
19 url = prometheus_REST_api + '/' + 'api/v1/query?query=' + query
20 # logging.info('query:{0}'.format(url))
stevenvanrossem1a6843a2016-05-19 12:19:36 +020021 #req = urllib2.Request(url)
22 req = requests.get(url)
23 #ret = urllib2.urlopen(req).read()
24 #ret = ast.literal_eval(ret)
25 ret = req.json()
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020026 if ret['status'] == 'success':
27 # logging.info('return:{0}'.format(ret))
28 try:
29 ret = ret['data']['result'][0]['value']
30 except:
31 ret = None
32 else:
33 ret = None
34 return ret