An intuitive feature-rich top tool for monitoring MySQL in real time
- Python 3.6+
- Packages: rich, pymysql, charset_normalizer, myloginpath, packaging
- Unix systems (Windows may work, haven't tested)
- MySQL/Percona Server 5.5/5.6/5.7/8.0
- MariaDB 10+
- RDS/Aurora
- PROCESS
- SELECT to
performance_schema
(if used) +pt-heartbeat table
(if used) - REPLICATION CLIENT
- PROCESS
- Global SELECT access (good for explaining queries, listing all databases, etc)
- REPLICATION CLIENT
- SUPER (only required if you want to kill queries)
- Dolphie uses panels to present groups of data. They can all be turned on/off to have a view of your database server that you prefer (see Help screenshot for panels available)
- Prefers Performance Schema over Processlist if it's turned on for listing queries. Can be switched to use Processlist by pressing key "1" (or using parameter) since P_S can truncate query length for explaining queries
- 3 options for finding replica lag in this order of preference:
Performance Schema
(MySQL 8 only - most accurate, especially for multi-threaded replication)pt-heartbeat table
(specified by parameter)SHOW SLAVE STATUS
- Supports encrypted login credentials via
mysql_config_editor
- Automatic conversion of large numbers & bytes to human-readable
- Notifies when new version is available
- Many commands at your fingertips (see Help screenshot)
- Many valuable statisitics across the available panels that can help you troubleshoot issues and be proactive against them
--help show this help message and exit
-u USER, --user USER Username for MySQL
-p PASSWORD, --password PASSWORD
Password for MySQL
--ask-pass Ask for password (hidden text)
-h HOST, --host HOST Hostname/IP address for MySQL
-P PORT, --port PORT Port for MySQL (Socket has precendence)
-S SOCKET, --socket SOCKET
Socket file for MySQL
-c CONFIG_FILE, --config-file CONFIG_FILE
Absolute config file path to use. This should use [client] section. See below for options support [default: ~/.my.cnf]
-l LOGIN_PATH, --login-path LOGIN_PATH
Specify login path to use mysql_config_editor's file ~/.mylogin.cnf for encrypted login credentials. Supercedes config file and supports all options available [default: client]
-r REFRESH_INTERVAL, --refresh_interval REFRESH_INTERVAL
How much time to wait in seconds between each refresh [default: 1]
-H HEARTBEAT_TABLE, --heartbeat-table HEARTBEAT_TABLE
If your hosts use pt-heartbeat, specify table in format db.table to use the timestamp it has for replication lag instead of Seconds_Behind_Master from SHOW SLAVE STATUS
--ssl-mode SSL_MODE Desired security state of the connection to the host. Supports: REQUIRED/VERIFY_CA/VERIFY_IDENTITY [default: OFF]
--ssl-ca SSL_CA Path to the file that contains a PEM-formatted CA certificate
--ssl-cert SSL_CERT Path to the file that contains a PEM-formatted client certificate
--ssl-key SSL_KEY Path to the file that contains a PEM-formatted private key for the client certificate
--hide-dashboard Start without showing dashboard. This is good to use if you want to reclaim terminal space and not execute the additional queries for it
--show-trxs-only Start with only showing queries that are running a transaction
--additional-columns Start with additional columns in processlist panel
--use-processlist Start with using Processlist instead of Performance Schema for listing queries
Config file with [client] section supports these options:
host
user
password
port
socket
ssl_mode REQUIRED/VERIFY_CA/VERIFY_IDENTITY
ssl_ca
ssl_cert
ssl_key
I welcome all questions, bug reports, and requests. If you enjoy Dolphie, please let me know! I'd love to hear from you ๐