diff options
Diffstat (limited to 'python.d/nginx_log.chart.py')
-rw-r--r-- | python.d/nginx_log.chart.py | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/python.d/nginx_log.chart.py b/python.d/nginx_log.chart.py index 95fb123d2..ef964a565 100644 --- a/python.d/nginx_log.chart.py +++ b/python.d/nginx_log.chart.py @@ -15,9 +15,11 @@ CHARTS = { 'options': [None, 'nginx status codes', 'requests/s', 'requests', 'nginx_log.codes', 'stacked'], 'lines': [ ["2xx", None, "incremental"], + ["5xx", None, "incremental"], ["3xx", None, "incremental"], ["4xx", None, "incremental"], - ["5xx", None, "incremental"] + ["1xx", None, "incremental"], + ["other", None, "incremental"] ]} } @@ -33,37 +35,48 @@ class Service(LogService): #pattern = r'(?:" )([0-9][0-9][0-9]) ?' self.regex = re.compile(pattern) + self.data = { + '1xx': 0, + '2xx': 0, + '3xx': 0, + '4xx': 0, + '5xx': 0, + 'other': 0 + } + def _get_data(self): """ Parse new log lines :return: dict """ - data = {'2xx': 0, - '3xx': 0, - '4xx': 0, - '5xx': 0} try: raw = self._get_raw_data() if raw is None: return None elif not raw: - return data + return self.data except (ValueError, AttributeError): return None regex = self.regex for line in raw: code = regex.search(line) - beginning = code.group(1)[0] + try: + beginning = code.group(1)[0] + except AttributeError: + continue if beginning == '2': - data["2xx"] += 1 + self.data["2xx"] += 1 elif beginning == '3': - data["3xx"] += 1 + self.data["3xx"] += 1 elif beginning == '4': - data["4xx"] += 1 + self.data["4xx"] += 1 elif beginning == '5': - data["5xx"] += 1 - - return data + self.data["5xx"] += 1 + elif beginning == '1': + self.data["1xx"] += 1 + else: + self.data["other"] += 1 + return self.data |