ansible-roles/couchbase/templates/couchbase.py.j2

55 lines
1.2 KiB
Django/Jinja
Executable File

import requests
import random
import json
HOST = "{{ couchbase_default_host }}"
PORT = "{{ couchbase_console_port }}"
BCKT = "{{ item }}"
USERNAME = "{{ couchbase_ganglia_url_username }}"
PASSWORD = "{{ couchbase_ganglia_url_password }}"
PREFIX = ""
def get_descriptor(name):
d = {'name': name,
'call_back': temp_handler,
'time_max': 90,
'value_type': 'uint',
'units': 'number',
'slope': 'both',
'format': '%d',
'description': '%s metric' %name,
'groups': 'cb bucket %s' %BCKT}
return d
def temp_handler(name):
global s
return int(s[name[len(PREFIX):]].pop())
def metric_init(params):
global s
descriptors = []
url = 'http://%s:%s/pools/default/buckets/%s/stats/' %(HOST, PORT, BCKT)
r = requests.get(url, auth=(USERNAME, PASSWORD))
j = json.loads(r.content)
s = j['op']['samples']
for i in s:
name = PREFIX + str(i)
d = get_descriptor(name)
descriptors.append(d)
return descriptors
def metric_cleanup():
'''Clean up the metric module.'''
pass
if __name__ == '__main__':
dd = metric_init({})
for d in dd:
print (('%s = %s') % (d['name'], d['format'])) % (d['call_back'](d['name']))