summaryrefslogtreecommitdiffstats
path: root/collectors/python.d.plugin/squid/squid.chart.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--collectors/python.d.plugin/squid/squid.chart.py (renamed from python.d/squid.chart.py)75
1 files changed, 40 insertions, 35 deletions
diff --git a/python.d/squid.chart.py b/collectors/python.d.plugin/squid/squid.chart.py
index ba8f982ff..fd54168f0 100644
--- a/python.d/squid.chart.py
+++ b/collectors/python.d.plugin/squid/squid.chart.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
# Description: squid netdata python.d module
# Author: Pawel Krupa (paulfantom)
+# SPDX-License-Identifier: GPL-3.0-or-later
from bases.FrameworkServices.SocketService import SocketService
@@ -15,31 +16,35 @@ ORDER = ['clients_net', 'clients_requests', 'servers_net', 'servers_requests']
CHARTS = {
'clients_net': {
- 'options': [None, "Squid Client Bandwidth", "kilobits/s", "clients", "squid.clients_net", "area"],
+ 'options': [None, 'Squid Client Bandwidth', 'kilobits/s', 'clients', 'squid.clients_net', 'area'],
'lines': [
- ["client_http_kbytes_in", "in", "incremental", 8, 1],
- ["client_http_kbytes_out", "out", "incremental", -8, 1],
- ["client_http_hit_kbytes_out", "hits", "incremental", -8, 1]
- ]},
+ ['client_http_kbytes_in', 'in', 'incremental', 8, 1],
+ ['client_http_kbytes_out', 'out', 'incremental', -8, 1],
+ ['client_http_hit_kbytes_out', 'hits', 'incremental', -8, 1]
+ ]
+ },
'clients_requests': {
- 'options': [None, "Squid Client Requests", "requests/s", "clients", "squid.clients_requests", 'line'],
+ 'options': [None, 'Squid Client Requests', 'requests/s', 'clients', 'squid.clients_requests', 'line'],
'lines': [
- ["client_http_requests", "requests", "incremental"],
- ["client_http_hits", "hits", "incremental"],
- ["client_http_errors", "errors", "incremental", -1, 1]
- ]},
+ ['client_http_requests', 'requests', 'incremental'],
+ ['client_http_hits', 'hits', 'incremental'],
+ ['client_http_errors', 'errors', 'incremental', -1, 1]
+ ]
+ },
'servers_net': {
- 'options': [None, "Squid Server Bandwidth", "kilobits/s", "servers", "squid.servers_net", "area"],
+ 'options': [None, 'Squid Server Bandwidth', 'kilobits/s', 'servers', 'squid.servers_net', 'area'],
'lines': [
- ["server_all_kbytes_in", "in", "incremental", 8, 1],
- ["server_all_kbytes_out", "out", "incremental", -8, 1]
- ]},
+ ['server_all_kbytes_in', 'in', 'incremental', 8, 1],
+ ['server_all_kbytes_out', 'out', 'incremental', -8, 1]
+ ]
+ },
'servers_requests': {
- 'options': [None, "Squid Server Requests", "requests/s", "servers", "squid.servers_requests", 'line'],
+ 'options': [None, 'Squid Server Requests', 'requests/s', 'servers', 'squid.servers_requests', 'line'],
'lines': [
- ["server_all_requests", "requests", "incremental"],
- ["server_all_errors", "errors", "incremental", -1, 1]
- ]}
+ ['server_all_requests', 'requests', 'incremental'],
+ ['server_all_errors', 'errors', 'incremental', -1, 1]
+ ]
+ }
}
@@ -47,8 +52,8 @@ class Service(SocketService):
def __init__(self, configuration=None, name=None):
SocketService.__init__(self, configuration=configuration, name=name)
self._keep_alive = True
- self.request = ""
- self.host = "localhost"
+ self.request = ''
+ self.host = 'localhost'
self.port = 3128
self.order = ORDER
self.definitions = CHARTS
@@ -62,43 +67,43 @@ class Service(SocketService):
data = dict()
try:
- raw = ""
+ raw = ''
for tmp in response.split('\r\n'):
- if tmp.startswith("sample_time"):
+ if tmp.startswith('sample_time'):
raw = tmp
break
if raw.startswith('<'):
- self.error("invalid data received")
+ self.error('invalid data received')
return None
for row in raw.split('\n'):
- if row.startswith(("client", "server.all")):
- tmp = row.split("=")
+ if row.startswith(('client', 'server.all')):
+ tmp = row.split('=')
data[tmp[0].replace('.', '_').strip(' ')] = int(tmp[1])
except (ValueError, AttributeError, TypeError):
- self.error("invalid data received")
+ self.error('invalid data received')
return None
if not data:
- self.error("no data received")
+ self.error('no data received')
return None
return data
def _check_raw_data(self, data):
header = data[:1024].lower()
- if "connection: keep-alive" in header:
+ if 'connection: keep-alive' in header:
self._keep_alive = True
else:
self._keep_alive = False
- if data[-7:] == "\r\n0\r\n\r\n" and "transfer-encoding: chunked" in header: # HTTP/1.1 response
- self.debug("received full response from squid")
+ if data[-7:] == '\r\n0\r\n\r\n' and 'transfer-encoding: chunked' in header: # HTTP/1.1 response
+ self.debug('received full response from squid')
return True
- self.debug("waiting more data from squid")
+ self.debug('waiting more data from squid')
return False
def check(self):
@@ -109,10 +114,10 @@ class Service(SocketService):
self._parse_config()
# format request
req = self.request.decode()
- if not req.startswith("GET"):
- req = "GET " + req
- if not req.endswith(" HTTP/1.1\r\n\r\n"):
- req += " HTTP/1.1\r\n\r\n"
+ if not req.startswith('GET'):
+ req = 'GET ' + req
+ if not req.endswith(' HTTP/1.1\r\n\r\n'):
+ req += ' HTTP/1.1\r\n\r\n'
self.request = req.encode()
if self._get_data() is not None:
return True