summaryrefslogtreecommitdiffstats
path: root/collectors
diff options
context:
space:
mode:
authorIlya Mashchenko <ilya@netdata.cloud>2023-02-08 10:51:55 +0200
committerGitHub <noreply@github.com>2023-02-08 10:51:55 +0200
commitc50c34e905782c0e835a0fa26339e60a70a6812a (patch)
tree447c3b49cb736e71a64c6beec2be3139619ac637 /collectors
parenta86d03b5eae7fe0cd272cac9134b62f63aa79674 (diff)
remove deprecated python.d collectors announced in v1.38.0 (#14454)
Diffstat (limited to 'collectors')
-rw-r--r--collectors/COLLECTORS.md5
-rw-r--r--collectors/python.d.plugin/Makefile.am3
-rw-r--r--collectors/python.d.plugin/README.md3
-rw-r--r--collectors/python.d.plugin/ntpd/Makefile.inc13
-rw-r--r--collectors/python.d.plugin/ntpd/README.md14
-rw-r--r--collectors/python.d.plugin/ntpd/ntpd.chart.py387
-rw-r--r--collectors/python.d.plugin/ntpd/ntpd.conf89
-rw-r--r--collectors/python.d.plugin/proxysql/Makefile.inc13
-rw-r--r--collectors/python.d.plugin/proxysql/README.md14
-rw-r--r--collectors/python.d.plugin/proxysql/proxysql.chart.py354
-rw-r--r--collectors/python.d.plugin/proxysql/proxysql.conf116
-rw-r--r--collectors/python.d.plugin/python.d.conf3
-rw-r--r--collectors/python.d.plugin/rabbitmq/Makefile.inc13
-rw-r--r--collectors/python.d.plugin/rabbitmq/README.md141
-rw-r--r--collectors/python.d.plugin/rabbitmq/rabbitmq.chart.py443
-rw-r--r--collectors/python.d.plugin/rabbitmq/rabbitmq.conf86
16 files changed, 1 insertions, 1696 deletions
diff --git a/collectors/COLLECTORS.md b/collectors/COLLECTORS.md
index a61a32dd56..9a43d99264 100644
--- a/collectors/COLLECTORS.md
+++ b/collectors/COLLECTORS.md
@@ -222,11 +222,8 @@ configure any of these collectors according to your setup and infrastructure.
usage, jobs rates, commands, and more.
- [Pulsar](https://github.com/netdata/go.d.plugin/blob/master/modules/pulsar/README.md): Collect summary,
namespaces, and topics performance statistics.
-- [RabbitMQ (Go)](https://github.com/netdata/go.d.plugin/blob/master/modules/rabbitmq/README.md): Collect message
+- [RabbitMQ](https://github.com/netdata/go.d.plugin/blob/master/modules/rabbitmq/README.md): Collect message
broker overview, system and per virtual host metrics.
-- [RabbitMQ (Python)](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/rabbitmq/README.md):
- Collect message broker global and per virtual
- host metrics.
- [VerneMQ](https://github.com/netdata/go.d.plugin/blob/master/modules/vernemq/README.md): Monitor MQTT broker
health and performance metrics. It collects all available info for both MQTTv3 and v5 communication
diff --git a/collectors/python.d.plugin/Makefile.am b/collectors/python.d.plugin/Makefile.am
index 6ea7b21b5d..ca49c1c028 100644
--- a/collectors/python.d.plugin/Makefile.am
+++ b/collectors/python.d.plugin/Makefile.am
@@ -65,14 +65,11 @@ include memcached/Makefile.inc
include monit/Makefile.inc
include nvidia_smi/Makefile.inc
include nsd/Makefile.inc
-include ntpd/Makefile.inc
include openldap/Makefile.inc
include oracledb/Makefile.inc
include pandas/Makefile.inc
include postfix/Makefile.inc
-include proxysql/Makefile.inc
include puppet/Makefile.inc
-include rabbitmq/Makefile.inc
include rethinkdbs/Makefile.inc
include retroshare/Makefile.inc
include riakkv/Makefile.inc
diff --git a/collectors/python.d.plugin/README.md b/collectors/python.d.plugin/README.md
index b6d658fae2..601a1abc80 100644
--- a/collectors/python.d.plugin/README.md
+++ b/collectors/python.d.plugin/README.md
@@ -231,9 +231,6 @@ For additional security it uses python `subprocess.Popen` (without `shell=True`
_Examples: `apache`, `nginx`, `tomcat`_
-_Multiple Endpoints (urls) Examples: [`rabbitmq`](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/rabbitmq/README.md) (simpler).
-
-
_Variables from config file_: `url`, `user`, `pass`.
If data is grabbed by accessing service via HTTP protocol, this class can be used. It can handle HTTP Basic Auth when specified with `user` and `pass` credentials.
diff --git a/collectors/python.d.plugin/ntpd/Makefile.inc b/collectors/python.d.plugin/ntpd/Makefile.inc
deleted file mode 100644
index 81210ebab7..0000000000
--- a/collectors/python.d.plugin/ntpd/Makefile.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# THIS IS NOT A COMPLETE Makefile
-# IT IS INCLUDED BY ITS PARENT'S Makefile.am
-# IT IS REQUIRED TO REFERENCE ALL FILES RELATIVE TO THE PARENT
-
-# install these files
-dist_python_DATA += ntpd/ntpd.chart.py
-dist_pythonconfig_DATA += ntpd/ntpd.conf
-
-# do not install these files, but include them in the distribution
-dist_noinst_DATA += ntpd/README.md ntpd/Makefile.inc
-
diff --git a/collectors/python.d.plugin/ntpd/README.md b/collectors/python.d.plugin/ntpd/README.md
deleted file mode 100644
index 8ae923da50..0000000000
--- a/collectors/python.d.plugin/ntpd/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--
-title: "NTP daemon monitoring with Netdata"
-custom_edit_url: "https://github.com/netdata/netdata/edit/master/collectors/python.d.plugin/ntpd/README.md"
-sidebar_label: "NTP daemon"
-learn_status: "Published"
-learn_topic_type: "References"
-learn_rel_path: "References/Collectors references/Qos"
--->
-
-# NTP daemon monitoring with Netdata
-
-This collector is deprecated.
-Use [go.d/ntpd](https://github.com/netdata/go.d.plugin/tree/master/modules/ntpd#ntp-daemon-monitoring-with-netdata)
-instead. \ No newline at end of file
diff --git a/collectors/python.d.plugin/ntpd/ntpd.chart.py b/collectors/python.d.plugin/ntpd/ntpd.chart.py
deleted file mode 100644
index 077124b4f0..0000000000
--- a/collectors/python.d.plugin/ntpd/ntpd.chart.py
+++ /dev/null
@@ -1,387 +0,0 @@
-# -*- coding: utf-8 -*-
-# Description: ntpd netdata python.d module
-# Author: Sven Mäder (rda0)
-# Author: Ilya Mashchenko (ilyam8)
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-import re
-import struct
-
-from bases.FrameworkServices.SocketService import SocketService
-
-disabled_by_default = True
-
-# NTP Control Message Protocol constants
-MODE = 6
-HEADER_FORMAT = '!BBHHHHH'
-HEADER_LEN = 12
-OPCODES = {
- 'readstat': 1,
- 'readvar': 2
-}
-
-# Maximal dimension precision
-PRECISION = 1000000
-
-# Static charts
-ORDER = [
- 'sys_offset',
- 'sys_jitter',
- 'sys_frequency',
- 'sys_wander',
- 'sys_rootdelay',
- 'sys_rootdisp',
- 'sys_stratum',
- 'sys_tc',
- 'sys_precision',
- 'peer_offset',
- 'peer_delay',
- 'peer_dispersion',
- 'peer_jitter',
- 'peer_xleave',
- 'peer_rootdelay',
- 'peer_rootdisp',
- 'peer_stratum',
- 'peer_hmode',
- 'peer_pmode',
- 'peer_hpoll',
- 'peer_ppoll',
- 'peer_precision'
-]
-
-CHARTS = {
- 'sys_offset': {
- 'options': [None, 'Combined offset of server relative to this host', 'milliseconds',
- 'system', 'ntpd.sys_offset', 'area'],
- 'lines': [
- ['offset', 'offset', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_jitter': {
- 'options': [None, 'Combined system jitter and clock jitter', 'milliseconds',
- 'system', 'ntpd.sys_jitter', 'line'],
- 'lines': [
- ['sys_jitter', 'system', 'absolute', 1, PRECISION],
- ['clk_jitter', 'clock', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_frequency': {
- 'options': [None, 'Frequency offset relative to hardware clock', 'ppm', 'system', 'ntpd.sys_frequency', 'area'],
- 'lines': [
- ['frequency', 'frequency', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_wander': {
- 'options': [None, 'Clock frequency wander', 'ppm', 'system', 'ntpd.sys_wander', 'area'],
- 'lines': [
- ['clk_wander', 'clock', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_rootdelay': {
- 'options': [None, 'Total roundtrip delay to the primary reference clock', 'milliseconds', 'system',
- 'ntpd.sys_rootdelay', 'area'],
- 'lines': [
- ['rootdelay', 'delay', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_rootdisp': {
- 'options': [None, 'Total root dispersion to the primary reference clock', 'milliseconds', 'system',
- 'ntpd.sys_rootdisp', 'area'],
- 'lines': [
- ['rootdisp', 'dispersion', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_stratum': {
- 'options': [None, 'Stratum (1-15)', 'stratum', 'system', 'ntpd.sys_stratum', 'line'],
- 'lines': [
- ['stratum', 'stratum', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_tc': {
- 'options': [None, 'Time constant and poll exponent (3-17)', 'log2 s', 'system', 'ntpd.sys_tc', 'line'],
- 'lines': [
- ['tc', 'current', 'absolute', 1, PRECISION],
- ['mintc', 'minimum', 'absolute', 1, PRECISION]
- ]
- },
- 'sys_precision': {
- 'options': [None, 'Precision', 'log2 s', 'system', 'ntpd.sys_precision', 'line'],
- 'lines': [
- ['precision', 'precision', 'absolute', 1, PRECISION]
- ]
- }
-}
-
-PEER_CHARTS = {
- 'peer_offset': {
- 'options': [None, 'Filter offset', 'milliseconds', 'peers', 'ntpd.peer_offset', 'line'],
- 'lines': []
- },
- 'peer_delay': {
- 'options': [None, 'Filter delay', 'milliseconds', 'peers', 'ntpd.peer_delay', 'line'],
- 'lines': []
- },
- 'peer_dispersion': {
- 'options': [None, 'Filter dispersion', 'milliseconds', 'peers', 'ntpd.peer_dispersion', 'line'],
- 'lines': []
- },
- 'peer_jitter': {
- 'options': [None, 'Filter jitter', 'milliseconds', 'peers', 'ntpd.peer_jitter', 'line'],
- 'lines': []
- },
- 'peer_xleave': {
- 'options': [None, 'Interleave delay', 'milliseconds', 'peers', 'ntpd.peer_xleave', 'line'],
- 'lines': []
- },
- 'peer_rootdelay': {
- 'options': [None, 'Total roundtrip delay to the primary reference clock', 'milliseconds', 'peers',
- 'ntpd.peer_rootdelay', 'line'],
- 'lines': []
- },
- 'peer_rootdisp': {
- 'options': [None, 'Total root dispersion to the primary reference clock', 'ms', 'peers',
- 'ntpd.peer_rootdisp', 'line'],
- 'lines': []
- },
- 'peer_stratum': {
- 'options': [None, 'Stratum (1-15)', 'stratum', 'peers', 'ntpd.peer_stratum', 'line'],
- 'lines': []
- },
- 'peer_hmode': {
- 'options': [None, 'Host mode (1-6)', 'hmode', 'peers', 'ntpd.peer_hmode', 'line'],
- 'lines': []
- },
- 'peer_pmode': {
- 'options': [None, 'Peer mode (1-5)', 'pmode', 'peers', 'ntpd.peer_pmode', 'line'],
- 'lines': []
- },
- 'peer_hpoll': {
- 'options': [None, 'Host poll exponent', 'log2 s', 'peers', 'ntpd.peer_hpoll', 'line'],
- 'lines': []
- },
- 'peer_ppoll': {
- 'options': [None, 'Peer poll exponent', 'log2 s', 'peers', 'ntpd.peer_ppoll', 'line'],
- 'lines': []
- },
- 'peer_precision': {
- 'options': [None, 'Precision', 'log2 s', 'peers', 'ntpd.peer_precision', 'line'],
- 'lines': []
- }
-}
-
-
-class Base:
- regex = re.compile(r'([a-z_]+)=((?:-)?[0-9]+(?:\.[0-9]+)?)')
-
- @staticmethod
- def get_header(associd=0, operation='readvar'):
- """
- Constructs the NTP Control Message header:
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |LI | VN |Mode |R|E|M| OpCode | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Status | Association ID |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Offset | Count |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- """
- version = 2
- sequence = 1
- status = 0
- offset = 0
- count = 0
- header = struct.pack(HEADER_FORMAT, (version << 3 | MODE), OPCODES[operation],
- sequence, status, associd, offset, count)
- return header
-
-
-class System(Base):
- def __init__(self):
- self.request = self.get_header()
-
- def get_data(self, raw):
- """
- Extracts key=value pairs with float/integer from ntp response packet data.
- """
- data = dict()
- for key, value in self.regex.findall(raw):
- data[key] = float(value) * PRECISION
- return data
-
-
-class Peer(Base):
- def __init__(self, idx, name):
- self.id = idx
- self.real_name = name
- self.name = name.replace('.', '_')
- self.request = self.get_header(self.id)
-
- def get_data(self, raw):
- """
- Extracts key=value pairs with float/integer from ntp response packet data.
- """
- data = dict()
- for key, value in self.regex.findall(raw):
- dimension = '_'.join([self.name, key])
- data[dimension] = float(value) * PRECISION
- return data
-
-
-class Service(SocketService):
- def __init__(self, configuration=None, name=None):
- SocketService.__init__(self, configuration=configuration, name=name)
- self.order = list(ORDER)
- self.definitions = dict(CHARTS)
- self.port = 'ntp'
- self.dgram_socket = True
- self.system = System()
- self.peers = dict()
- self.request = str()
- self.retries = 0
- self.show_peers = self.configuration.get('show_peers', False)
- self.peer_rescan = self.configuration.get('peer_rescan', 60)
- if self.show_peers:
- self.definitions.update(PEER_CHARTS)
-
- def check(self):
- """
- Checks if we can get valid systemvars.
- If not, returns None to disable module.
- """
- self._parse_config()
-
- peer_filter = self.configuration.get('peer_filter', r'127\..*')
- try:
- self.peer_filter = re.compile(r'^((0\.0\.0\.0)|({0}))$'.format(peer_filter))
- except re.error as error:
- self.error('Compile pattern error (peer_filter) : {0}'.format(error))
- return None
-
- self.request = self.system.request
- raw_systemvars = self._get_raw_data()
-
- if not self.system.get_data(raw_systemvars):
- return None
-
- return True
-
- def get_data(self):
- """
- Gets systemvars data on each update.
- Gets peervars data for all peers on each update.
- """
- data = dict()
-
- self.request = self.system.request
- raw = self._get_raw_data()
- if not raw:
- return None
-
- data.update(self.system.get_data(raw))
-
- if not self.show_peers:
- return data
-
- if not self.peers or self.runs_counter % self.peer_rescan == 0 or self.retries > 8:
- self.find_new_peers()
-
- for peer in self.peers.values():
- self.request = peer.request
- peer_data = peer.get_data(self._get_raw_data())
- if peer_data:
- data.update(peer_data)
- else:
- self.retries += 1
-
- return data
-
- def find_new_peers(self):
- new_peers = dict((p.real_name, p) for p in self.get_peers())
- if new_peers:
-
- peers_to_remove = set(self.peers) - set(new_peers)
- peers_to_add = set(new_peers) - set(self.peers)
-
- for peer_name in peers_to_remove:
- self.hide_old_peer_from_charts(self.peers[peer_name])
- del self.peers[peer_name]
-
- for peer_name in peers_to_add:
- self.add_new_peer_to_charts(new_peers[peer_name])
-
- self.peers.update(new_peers)
- self.retries = 0
-
- def add_new_peer_to_charts(self, peer):
- for chart_id in set(self.charts.charts) & set(PEER_CHARTS):
- dim_id = peer.name + chart_id[4:]
- if dim_id not in self.charts[chart_id]:
- self.charts[chart_id].add_dimension([dim_id, peer.real_name, 'absolute', 1, PRECISION])
- else:
- self.charts[chart_id].hide_dimension(dim_id, reverse=True)
-
- def hide_old_peer_from_charts(self, peer):
- for chart_id in set(self.charts.charts) & set(PEER_CHARTS):
- dim_id = peer.name + chart_id[4:]
- self.charts[chart_id].hide_dimension(dim_id)
-
- def get_peers(self):
- self.request = Base.get_header(operation='readstat')
-
- raw_data = self._get_raw_data(raw=True)
- if not raw_data:
- return list()
-
- peer_ids = self.get_peer_ids(raw_data)
- if not peer_ids:
- return list()
-
- new_peers = list()
- for peer_id in peer_ids:
- self.request = Base.get_header(peer_id)
- raw_peer_data = self._get_raw_data()
- if not raw_peer_data:
- continue
- srcadr = re.search(r'(srcadr)=([^,]+)', raw_peer_data)
- if not srcadr:
- continue
- srcadr = srcadr.group(2)
- if self.peer_filter.search(srcadr):
- continue
- stratum = re.search(r'(stratum)=([^,]+)', raw_peer_data)
- if not stratum:
- continue
- if int(stratum.group(2)) > 15:
- continue
-
- new_peer = Peer(idx=peer_id, name=srcadr)
- new_peers.append(new_peer)
- return new_peers
-
- def get_peer_ids(self, res):
- """
- Unpack the NTP Control Message header
- Get data length from header
- Get list of association ids returned in the readstat response
- """
-
- try:
- count = struct.unpack(HEADER_FORMAT, res[:HEADER_LEN])[6]
- except struct.error as error:
- self.error('error unpacking header: {0}'.format(error))
- return None
- if not count:
- self.error('empty data field in NTP control packet')
- return None
-
- data_end = HEADER_LEN + count
- data = res[HEADER_LEN:data_end]
- data_format = ''.join(['!', 'H' * int(count / 2)])
- try:
- peer_ids = list(struct.unpack(data_format, data))[::2]
- except struct.error as error:
- self.error('error unpacking data: {0}'.format(error))
- return None
- return peer_ids
diff --git a/collectors/python.d.plugin/ntpd/ntpd.conf b/collectors/python.d.plugin/ntpd/ntpd.conf
deleted file mode 100644
index 80bd468d1e..0000000000
--- a/collectors/python.d.plugin/ntpd/ntpd.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-# netdata python.d.plugin configuration for ntpd
-#
-# This file is in YaML format. Generally the format is:
-#
-# name: value
-#
-# There are 2 sections:
-# - global variables
-# - one or more JOBS
-#
-# JOBS allow you to collect values from multiple sources.
-# Each source will have its own set of charts.
-#
-# JOB parameters have to be indented (using spaces only, example below).
-
-# ----------------------------------------------------------------------
-# Global Variables
-# These variables set the defaults for all JOBs, however each JOB
-# may define its own, overriding the defaults.
-
-# update_every sets the default data collection frequency.
-# If unset, the python.d.plugin default is used.
-# update_every: 1
-
-# priority controls the order of charts at the netdata dashboard.
-# Lower numbers move the charts towards the top of the page.
-# If unset, the default for python.d.plugin is used.
-# priority: 60000
-
-# penalty indicates whether to apply penalty to update_every in case of failures.
-# Penalty will increase every 5 failed updates in a row. Maximum penalty is 10 minutes.
-# penalty: yes
-
-# ----------------------------------------------------------------------
-# JOBS (data collection sources)
-#
-# The default JOBS share the same *name*. JOBS with the same name
-# are mutually exclusive. Only one of them will be allowed running at
-# any time. This allows autodetection to try several alternatives and
-# pick the one that works.
-#
-# Any number of jobs is supported.
-#
-# All python.d.plugin JOBS (for all its modules) support a set of
-# predefined parameters. These are:
-#
-# job_name:
-# name: myname # the JOB's name as it will appear at the
-# # dashboard (by default is the job_name)
-# # JOBs sharing a name are mutually exclusive
-# update_every: 1 # the JOB's data collection frequency
-# priority: 60000 # the JOB's order on the dashboard
-# penalty: yes # the JOB's penalty
-#
-# Additionally to the above, ntp also supports the following:
-#
-# host: 'localhost' # the host to query
-# port: '123' # the UDP port where `ntpd` listens
-# show_peers: no # use `yes` to show peer charts. enabling this
-# # option is recommended only for debugging, as
-# # it could possibly imply memory leaks if the
-# # peers change frequently.
-# peer_filter: '127\..*' # regex to exclude peers
-# # by default local peers are hidden
-# # use `''` to show all peers.
-# peer_rescan: 60 # interval (>0) to check for new/changed peers
-# # use `1` to check on every update
-#
-# ----------------------------------------------------------------------
-# AUTO-DETECTION JOBS
-# only one of them will run (they have the same name)
-
-localhost:
- name: 'local'
- host: 'localhost'
- port: '123'
- show_peers: no
-
-localhost_ipv4:
- name: 'local'
- host: '127.0.0.1'
- port: '123'
- show_peers: no
-
-localhost_ipv6:
- name: 'local'
- host: '::1'
- port: '123'
- show_peers: no
diff --git a/collectors/python.d.plugin/proxysql/Makefile.inc b/collectors/python.d.plugin/proxysql/Makefile.inc
deleted file mode 100644
index 66be372ce8..0000000000
--- a/collectors/python.d.plugin/proxysql/Makefile.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# THIS IS NOT A COMPLETE Makefile
-# IT IS INCLUDED BY ITS PARENT'S Makefile.am
-# IT IS REQUIRED TO REFERENCE ALL FILES RELATIVE TO THE PARENT
-
-# install these files
-dist_python_DATA += proxysql/proxysql.chart.py
-dist_pythonconfig_DATA += proxysql/proxysql.conf
-
-# do not install these files, but include them in the distribution
-dist_noinst_DATA += proxysql/README.md proxysql/Makefile.inc
-
diff --git a/collectors/python.d.plugin/proxysql/README.md b/collectors/python.d.plugin/proxysql/README.md
deleted file mode 100644
index d6c626b512..0000000000
--- a/collectors/python.d.plugin/proxysql/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--
-title: "ProxySQL monitoring with Netdata"
-custom_edit_url: "https://github.com/netdata/netdata/edit/master/collectors/python.d.plugin/proxysql/README.md"
-sidebar_label: "proxysql-python.d.plugin"
-learn_status: "Published"
-learn_topic_type: "References"
-learn_rel_path: "References/Collectors references/Databases"
--->
-
-# ProxySQL monitoring with Netdata
-
-This collector is deprecated.
-Use [go.d/proxysql](https://github.com/netdata/go.d.plugin/tree/master/modules/proxysql#proxysql-monitoring-with-netdata)
-instead. \ No newline at end of file
diff --git a/collectors/python.d.plugin/proxysql/proxysql.chart.py b/collectors/python.d.plugin/proxysql/proxysql.chart.py
deleted file mode 100644
index 7e06b7bdca..0000000000
--- a/collectors/python.d.plugin/proxysql/proxysql.chart.py
+++ /dev/null
@@ -1,354 +0,0 @@
-# -*- coding: utf-8 -*-
-# Description: Proxysql netdata python.d module
-# Author: Ali Borhani (alibo)
-# SPDX-License-Identifier: GPL-3.0+
-
-from bases.FrameworkServices.MySQLService import MySQLService
-
-
-disabled_by_default = True
-
-def query(table, *params):
- return 'SELECT {params} FROM {table}'.format(table=table, params=', '.join(params))
-
-
-# https://github.com/sysown/proxysql/blob/master/doc/admin_tables.md#stats_mysql_global
-QUERY_GLOBAL = query(
- "stats_mysql_global",
- "Variable_Name",
- "Variable_Value"
-)
-
-# https://github.com/sysown/proxysql/blob/master/doc/admin_tables.md#stats_mysql_connection_pool
-QUERY_CONNECTION_POOL = query(
- "stats_mysql_connection_pool",
- "hostgroup",
- "srv_host",
- "srv_port",
- "status",
- "ConnUsed",
- "ConnFree",
- "ConnOK",
- "ConnERR",
- "Queries",
- "Bytes_data_sent",
- "Bytes_data_recv",
- "Latency_us"
-)
-
-# https://github.com/sysown/proxysql/blob/master/doc/admin_tables.md#stats_mysql_commands_counters
-QUERY_COMMANDS = query(
- "stats_mysql_commands_counters",
- "Command",
- "Total_Time_us",
- "Total_cnt",
- "cnt_100us",
- "cnt_500us",
- "cnt_1ms",
- "cnt_5ms",
- "cnt_10ms",
- "cnt_50ms",
- "cnt_100ms",
- "cnt_500ms",
- "cnt_1s",
- "cnt_5s",
- "cnt_10s",
- "cnt_INFs"
-)
-
-GLOBAL_STATS = [
- 'client_connections_aborted',
- 'client_connections_connected',
- 'client_connections_created',
- 'client_connections_non_idle',
- 'proxysql_uptime',
- 'questions',
- 'slow_queries'
-]
-
-CONNECTION_POOL_STATS = [
- 'status',
- 'connused',
- 'connfree',
- 'connok',
- 'connerr',
- 'queries',
- 'bytes_data_sent',
- 'bytes_data_recv',
- 'latency_us'
-]
-
-ORDER = [
- 'connections',
- 'active_transactions',
- 'questions',
- 'pool_overall_net',
- 'commands_count',
- 'commands_duration',
- 'pool_status',
- 'pool_net',
- 'pool_queries',
- 'pool_latency',
- 'pool_connection_used',
- 'pool_connection_free',
- 'pool_connection_ok',
- 'pool_connection_error'
-]
-
-HISTOGRAM_ORDER = [
- '100us',
- '500us',
- '1ms',
- '5ms',
- '10ms',
- '50ms',
- '100ms',
- '500ms',
- '1s',
- '5s',
- '10s',
- 'inf'
-]
-
-STATUS = {
- "ONLINE": 1,
- "SHUNNED": 2,
- "OFFLINE_SOFT": 3,
- "OFFLINE_HARD": 4
-}
-
-CHARTS = {
- 'pool_status': {
- 'options': [None, 'ProxySQL Backend Status', 'status', 'status', 'proxysql.pool_status', 'line'],
- 'lines': []
- },
- 'pool_net': {
- 'options': [None, 'ProxySQL Backend Bandwidth', 'kilobits/s', 'bandwidth', 'proxysql.pool_net', 'area'],
- 'lines': []
- },
- 'pool_overall_net': {
- 'options': [None, 'ProxySQL Backend Overall Bandwidth', 'kilobits/s', 'overall_bandwidth',
- 'proxysql.pool_overall_net', 'area'],
- 'lines': [
- ['bytes_data_recv', 'in', 'incremental', 8, 1000],
- ['bytes_data_sent', 'out', 'incremental', -8, 1000]
- ]
- },
- 'questions': {
- 'options': [None, 'ProxySQL Frontend Questions', 'questions/s', 'questions', 'proxysql.questions', 'line'],
- 'lines': [
- ['questions', 'questions', 'incremental'],
- ['slow_queries', 'slow_queries', 'incremental']
- ]
- },
- 'pool_queries': {
- 'options': [None, 'ProxySQL Backend Queries', 'queries/s', 'queries', 'proxysql.queries', 'line'],
- 'lines': []
- },
- 'active_transactions': {
- 'options': [None, 'ProxySQL Frontend Active Transactions', 'transactions/s', 'active_transactions',
- 'proxysql.active_transactions', 'line'],
- 'lines': [
- ['active_transactions', 'active_transactions', 'absolute']
- ]
- },
- 'pool_latency': {
- 'options': [None, 'ProxySQL Backend Latency', 'milliseconds', 'latency', 'proxysql.latency', 'line'],
- 'lines': []
- },
- 'connections': {
- 'options': [None, 'ProxySQL Frontend Connections', 'connections/s', 'connections', 'proxysql.connections',
- 'line'],
- 'lines': [
- ['client_connections_connected', 'connected', 'absolute'],
- ['client_connections_created', 'created', 'incremental'],
- ['client_connections_aborted', 'aborted', 'incremental'],
- ['client_connections_non_idle', 'non_idle', 'absolute']
- ]
- },
- 'pool_connection_used': {
- 'options': [None, 'ProxySQL Used Connections', 'connections', 'pool_connections',
- 'proxysql.pool_used_connections', 'line'],
- 'lines': []
- },
- 'pool_connection_free': {
- 'options': [None, 'ProxySQL Free Connections', 'connections', 'pool_connections',
- 'proxysql.pool_free_connections', 'line'],
- 'lines': []
- },
- 'pool_connection_ok': {
- 'options': [None, 'ProxySQL Established Connections', 'connections', 'pool_connections',
- 'proxysql.pool_ok_connections', 'line'],
- 'lines': []
- },
- 'pool_connection_error': {
- 'options': [None, 'ProxySQL Error Connections', 'connections', 'pool_connections',
- 'proxysql.pool_error_connections', 'line'],
- 'lines': []
- },
- 'commands_count': {
- 'options': [None, 'ProxySQL Commands', 'commands', 'commands', 'proxysql.commands_count', 'line'],
- 'lines': []
- },
- 'commands_duration': {
- 'options': [None, 'ProxySQL Commands Duration', 'milliseconds', 'commands', 'proxysql.commands_duration',
- 'line'],
- 'lines': []
- }
-}
-
-
-class Service(MySQLService):
- def __init__(self, configuration=None, name=None):
- MySQLService.__init__(self, configuration=configuration, name=name)
- self.order = ORDER
- self.definitions = CHARTS
- self.queries = dict(
- global_status=QUERY_GLOBAL,
- connection_pool_status=QUERY_CONNECTION_POOL,
- commands_status=QUERY_COMMANDS
- )
-
- def _get_data(self):
- raw_data = self._get_raw_data(description=True)
-
- if not raw_data:
- return None
-
- to_netdata = dict()
-
- if 'global_status' in raw_data:
- global_status = dict(raw_data['global_status'][0])
- for key in global_status:
- if key.lower() in GLOBAL_STATS:
- to_netdata[key.lower()] = global_status[key]
-
- if 'connection_pool_status' in raw_data:
-
- to_netdata['bytes_data_recv'] = 0
- to_netdata['bytes_data_sent'] = 0
-
- for record in raw_data['connection_pool_status'][0]:
- backend = se