summaryrefslogtreecommitdiffstats
path: root/python.d/apache_cache.chart.py
diff options
context:
space:
mode:
Diffstat (limited to 'python.d/apache_cache.chart.py')
-rw-r--r--python.d/apache_cache.chart.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/python.d/apache_cache.chart.py b/python.d/apache_cache.chart.py
new file mode 100644
index 00000000..3681a851
--- /dev/null
+++ b/python.d/apache_cache.chart.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+# Description: apache cache netdata python.d module
+# Author: Pawel Krupa (paulfantom)
+
+from base import LogService
+
+priority = 60000
+retries = 60
+# update_every = 3
+
+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"],
+ ["other", 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/apache2/cache.log"
+ self.order = ORDER
+ self.definitions = CHARTS
+
+ def _get_data(self):
+ """
+ Parse new log lines
+ :return: dict
+ """
+ try:
+ raw = self._get_raw_data()
+ if raw is None:
+ return None
+ elif not raw:
+ return {'hit': 0,
+ 'miss': 0,
+ 'other': 0}
+ except (ValueError, AttributeError):
+ return None
+
+ hit = 0
+ miss = 0
+ other = 0
+ for line in raw:
+ if "cache hit" in line:
+ hit += 1
+ elif "cache miss" in line:
+ miss += 1
+ else:
+ other += 1
+
+ return {'hit': hit,
+ 'miss': miss,
+ 'other': other}