MySQL/MariaDB monitoring
MySQL/MariaDB server performance from prometheus/mysqld_exporter
SkyWalking leverages prometheus/mysqld_exporter for collecting metrics data. It leverages OpenTelemetry Collector to transfer the metrics to OpenTelemetry receiver and into the Meter System.
Data flow
- mysqld_exporter collect metrics data from MySQL/MariaDB.
- OpenTelemetry Collector fetches metrics from mysqld_exporter via Prometheus Receiver and pushes metrics to SkyWalking OAP Server via OpenTelemetry gRPC exporter.
- The SkyWalking OAP Server parses the expression with MAL to filter/calculate/aggregate and store the results.
Set up
- Set up mysqld_exporter.
- Set up OpenTelemetry Collector . For details on Prometheus Receiver in OpenTelemetry Collector, refer to here.
- Config SkyWalking OpenTelemetry receiver.
MySQL/MariaDB Monitoring
MySQL/MariaDB monitoring provides monitoring of the status and resources of the MySQL/MariaDB server. MySQL/MariaDB cluster is cataloged as a Layer: MYSQL
Service
in OAP.
Each MySQL/MariaDB server is cataloged as an Instance
in OAP.
Supported Metrics
Monitoring Panel | Unit | Metric Name | Description | Data Source |
---|---|---|---|---|
MySQL Uptime | day | meter_mysql_uptime | The MySQL startup time | mysqld_exporter |
Max Connections | meter_mysql_max_connections | The max number of connections. | mysqld_exporter | |
Innodb Buffer Pool Size | MB | meter_mysql_innodb_buffer_pool_size | The buffer pool size in Innodb engine | mysqld_exporter |
Thread Cache Size | meter_mysql_thread_cache_size | The size of thread cache | mysqld_exporter | |
Current QPS | meter_mysql_qps | Queries Per Second | mysqld_exporter | |
Current TPS | meter_mysql_tps | Transactions Per Second | mysqld_exporter | |
Commands Rate | meter_mysql_commands_insert_rate meter_mysql_commands_select_rate meter_mysql_commands_delete_rate meter_mysql_commands_update_rate |
The rate of total number of insert/select/delete/update executed by the current server | mysqld_exporter | |
Threads | meter_mysql_threads_connected meter_mysql_threads_created meter_mysql_threads_cached meter_mysql_threads_running |
The number of currently open connections(threads_connected) The number of threads created(threads_created) The number of threads in the thread cache(threads_cached) The number of threads that are not sleeping(threads_running) |
mysqld_exporter | |
Connects | meter_mysql_max_connections meter_mysql_status_thread_connected meter_mysql_connects_aborted |
The number of available connections(connects_available) The number of MySQL instance connection rejections(connects_aborted) |
mysqld_exporter | |
Connection Errors | meter_mysql_connection_errors_internal meter_mysql_connection_errors_max_connections | Errors due to exceeding the max_connections(connection_errors_max_connections) Error caused by internal system(connection_errors_internal) | mysqld_exporter | |
Slow Queries Rate | meter_mysql_slow_queries_rate | The rate of slow queries | mysqld_exporter |
Customizations
You can customize your own metrics/expression/dashboard panel.
The metrics definition and expression rules are found in /config/otel-rules/mysql
.
The MySQL dashboard panel configurations are found in /config/ui-initialized-templates/mysql
.
Collect sampled slow SQLs
SkyWalking leverages fluentbit or other log agents for collecting slow SQL statements from MySQL/MariaDB.
Data flow
- fluentbit agent collects slow sql logs from MySQL/MariaDB.
- fluentbit agent sends data to SkyWalking OAP Server using native meter APIs via HTTP.
- The SkyWalking OAP Server parses the expression with LAL to parse/extract and store the results.
Set up
- Set up fluentbit.
- Config fluentbit from here for MySQL or here for MariaDB.
- Enable slow log from here for MySQL or here for MariaDB.
Slow SQL Monitoring
Slow SQL monitoring provides monitoring of the slow SQL statements of the MySQL/MariaDB server. MySQL/MariaDB server is cataloged as a Layer: MYSQL
Service
in OAP.
Supported Metrics
Monitoring Panel | Unit | Metric Name | Description | Data Source |
---|---|---|---|---|
Slow Statements | ms | top_n_database_statement | The latency and statement of MySQL/MariaDB slow SQLs | fluentbit |
Customizations
You can customize your own metrics/expression/dashboard panel.
The slowsql expression rules are found in /config/lal/mysql-slowsql.yaml
The MySQL/MariaDB dashboard panel configurations are found in /config/ui-initialized-templates/mysql
.