ProxySQL monitoring with Netdata
Monitors database backend and frontend performance metrics.
Requirements
- python library MySQLdb (faster) or PyMySQL (slower)
netdata
local user to connect to the ProxySQL server.
To create the netdata
user, follow the documentation.
Charts
It produces:
Connections (frontend)
- connected: number of frontend connections currently connected
- aborted: number of frontend connections aborted due to invalid credential or max_connections reached
- non_idle: number of frontend connections that are not currently idle
- created: number of frontend connections created
Questions (frontend)
- questions: total number of queries sent from frontends
- slow_queries: number of queries that ran for longer than the threshold in milliseconds defined in global variable
mysql-long_query_time
Overall Bandwidth (backends)
- in
- out
Status (backends)
- Backends
1=ONLINE
: backend server is fully operational2=SHUNNED
: backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold3=OFFLINE_SOFT
: when a server is put into OFFLINE_SOFT mode, new incoming connections aren't accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend4=OFFLINE_HARD
: when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren't accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work-1
: Unknown status
- Backends
Bandwidth (backends)
- Backends
- in
- out
- Backends
Queries (backends)
- Backends
- queries
- Backends
Latency (backends)
- Backends
- ping time
- Backends
Pool connections (backends)
- Backends
- Used: The number of connections are currently used by ProxySQL for sending queries to the backend server.
- Free: The number of connections are currently free.
- Established/OK: The number of connections were established successfully.
- Error: The number of connections weren't established successfully.
- Backends
Commands
- Commands
- Count
- Duration (Total duration for each command)
- Commands
Commands Histogram
- Commands
- 100us, 500us, ..., 10s, inf: the total number of commands of the given type which executed within the specified time limit and the previous one.
- Commands
Configuration
Edit the python.d/proxysql.conf
configuration file using edit-config
from the Netdata config
directory, which is typically at /etc/netdata
.
cd /etc/netdata # Replace this path with your Netdata config directory, if different
sudo ./edit-config python.d/proxysql.conf
tcpipv4:
name : 'local'
user : 'stats'
pass : 'stats'
host : '127.0.0.1'
port : '6032'
If no configuration is given, module will fail to run.
Was this page helpful?
Need further help?
Search for an answer in our community forum.
Contribute
- Join our community forum
- Learn how to contribute to Netdata's open-source project
- Submit a feature request