From 2f42d45beabbb4ec75e50201416d626a094fdd70 Mon Sep 17 00:00:00 2001 From: paulfantom Date: Fri, 1 Jul 2016 13:35:22 +0200 Subject: [PATCH] apache_cache python module --- python.d/Makefile.am | 1 + python.d/apache_cache.chart.py | 51 ++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 python.d/apache_cache.chart.py diff --git a/python.d/Makefile.am b/python.d/Makefile.am index d96ead82..2d6d70c1 100644 --- a/python.d/Makefile.am +++ b/python.d/Makefile.am @@ -10,6 +10,7 @@ dist_python_SCRIPTS = \ phpfpm.chart.py \ apache.chart.py \ nginx.chart.py \ + apache_cache.chart.py \ python-modules-installer.sh \ $(NULL) diff --git a/python.d/apache_cache.chart.py b/python.d/apache_cache.chart.py new file mode 100644 index 00000000..2510cd43 --- /dev/null +++ b/python.d/apache_cache.chart.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Description: apache cache netdata python.d plugin +# Author: Pawel Krupa (paulfantom) + +from base import LogService + +priority = 60000 +retries = 5 + +ORDER = ['cache'] +CHARTS = { + 'cache': { + 'options': [None, 'apache cached responses', 'percent cached', 'cached', 'apache_cache.cache', 'stacked'], + 'lines': [ + ["hit", 'cache', "percentage-of-absolute-row"], + ["miss", None, "percentage-of-absolute-row"] + ]} +} + + +class Service(LogService): + def __init__(self, configuration=None, name=None): + LogService.__init__(self, configuration=configuration, name=name) + if len(self.log_path) == 0: + self.log_path = "/var/log/httpd/cache.log" + self.order = ORDER + self.definitions = CHARTS + + def _formatted_data(self): + """ + Parse new log lines + :return: dict + """ + try: + raw = self._get_data() + except (ValueError, AttributeError): + return None + + hit = 0 + miss = 0 + for line in raw: + if "cache hit" in line: + hit += 1 + elif "cache miss" in line: + miss += 1 + + if hit + miss == 0: + return None + + return {'hit': int(hit/float(hit+miss) * 100), + 'miss': int(miss/float(hit+miss) * 100)} -- 2.39.2