From d9dd94eab23d81e5deaf167fa792804926a3beeb Mon Sep 17 00:00:00 2001 From: Tony Rogers Date: Sun, 10 Aug 2014 00:32:03 +0000 Subject: [PATCH] adding zabbix sampler --- pydashie/example_app.py | 1 + pydashie/example_samplers.py | 23 +++++++++++++++++++++++ pydashie/templates/main.html | 3 +++ 3 files changed, 27 insertions(+) diff --git a/pydashie/example_app.py b/pydashie/example_app.py index cfb3ca3..8f323e8 100644 --- a/pydashie/example_app.py +++ b/pydashie/example_app.py @@ -8,6 +8,7 @@ def run(app, xyzzy): ConvergenceSampler(xyzzy, 1), ProgressBarsSampler(xyzzy, 5), UsageGaugeSampler(xyzzy, 3), + ZabbixSampler(xyzzy,3) ] try: diff --git a/pydashie/example_samplers.py b/pydashie/example_samplers.py index d8897a9..5632a83 100644 --- a/pydashie/example_samplers.py +++ b/pydashie/example_samplers.py @@ -93,3 +93,26 @@ class UsageGaugeSampler(DashieSampler): def sample(self): return {'value': random.randint(0, 100), 'max': 100} +from pyzabbix import ZabbixAPI + +class ZabbixSampler(DashieSampler): + def __init__(self, *args, **kwargs): + self.seedX = 0 + self.items = collections.deque() + DashieSampler.__init__(self, *args, **kwargs) + + def name(self): + return 'zabbix' + + def sample(self): + zapi = ZabbixAPI("http://zabbix.tonyrogers.me/zabbix/") + zabbix.session.verify = False + zapi.login("Admin", "zabbix") + ret = zapi.item.get(output=['lastvalue'],filter={'host':'zabbix.tonyrogers.me'},search={'key_':'zabbix[wcache,values]'}) + + self.items.append({'x': self.seedX, + 'y': ret[0]['lastvalue']}) + self.seedX += 1 + if len(self.items) > 10: + self.items.popleft() + return {'points': list(self.items)} diff --git a/pydashie/templates/main.html b/pydashie/templates/main.html index 5579eed..c9de4cc 100644 --- a/pydashie/templates/main.html +++ b/pydashie/templates/main.html @@ -32,6 +32,9 @@
+
  • +
    +