MySQL Monitoring
MySQL monitoring without the Performance Schema headache.
Obsfly gives you the queries every MySQL DBA writes from memory — events_statements_summary_by_digest, sys.innodb_lock_waits, replication lag — already plumbed into dashboards, anomaly detection, and forecast bands.
Why monitor MySQL
MySQL has world-class instrumentation in Performance Schema, but reading it raw is unfriendly and most teams give up after 'SHOW PROCESSLIST.' Obsfly handles the unfriendly part — surfaces digests, hit ratios, lock waits, and replication health with the same UX as the rest of your fleet.
What we scrape
Obsfly reads MySQL through the surfaces operators already know. No driver changes, no extensions installed by us, no agent on the database itself.
performance_schema.events_statements_summary_by_digest
Per-digest execution stats: count, total/mean time, rows examined/returned/affected.
performance_schema.events_statements_current
Live in-flight statements with timer waits and current execution.
sys.innodb_lock_waits
InnoDB lock waits with both blocking and waiting sides.
performance_schema.table_io_waits_summary_by_table
Hot tables, count of fetches and total wait time.
performance_schema.replication_*
Source/replica positions, GTID-aware lag, IO and SQL thread state.
global_status / global_variables
Threads_connected, Innodb_buffer_pool_*, Aborted_connects, configuration drift.
InnoDB engine status
SHOW ENGINE INNODB STATUS deadlock section parsed and structured.
Key metrics tracked
Common MySQL pains, and how Obsfly surfaces each
Performance Schema is on but tables are empty
Sign
events_statements_summary_by_digest has no rows.
Fix
Check setup_consumers — events_statements_history and statement digest consumers are off in 5.7. Enable them.
Replica falling behind under burst writes
Sign
Seconds_Behind_Source climbing; SQL thread is the bottleneck (IO thread is current).
Fix
Multi-threaded replication: slave_parallel_workers > 1 with LOGICAL_CLOCK. 8.0+ defaults are sane.
Random InnoDB row lock waits
Sign
Innodb_row_lock_waits climbs with no schema change.
Fix
Inspect sys.innodb_lock_waits during the wait. Usually a long transaction holding a row lock — find via information_schema.innodb_trx.
Buffer pool hit ratio dropping
Sign
Innodb_buffer_pool_reads growing relative to read_requests; latency on previously-fast queries climbs.
Fix
Working set exceeds buffer pool. Bump innodb_buffer_pool_size; verify with SHOW ENGINE INNODB STATUS 'BUFFER POOL AND MEMORY' section.
vs Datadog DBM for MySQL
Obsfly features for MySQL
Feature
Query Summary
Top-N normalized queries with p50 / p95 / p99 latency, QPS, total time, rows touched, and plan-change history.
Feature
Query Activity
Live query stream with wait events, lock chains, slow-query alerts, and sample-once-per-second activity snapshots.
Feature
Anomaly Detection
ML-driven anomaly detection on every metric. Forecast bands, change-point detection, no thresholds to tune.
Feature
Configuration Tracking
Database parameter inventory, drift from baseline, recommended values, change history with attribution.
FAQ
Does it work with MariaDB?+
Yes, with caveats. Performance Schema exists but the digest implementation diverged in MariaDB 10.5; we adjust automatically. sys schema is missing — we render the equivalent views from Performance Schema directly.
What MySQL versions are supported?+
5.7, 8.0, 8.4, MariaDB 10.5+, RDS MySQL, Aurora MySQL. Older versions (5.6) work but lose digest histograms.
Will enabling Performance Schema slow down production?+
On 8.0+ at default settings, ~3% overhead. We recommend keeping events_waits_history_long off — it's the only consumer with non-trivial cost.
Does Obsfly need superuser?+
No. We provide a setup script with the minimum privileges (PROCESS, REPLICATION CLIENT, REPLICATION SLAVE, SELECT on performance_schema/sys/information_schema).
Deep dives on MySQL
MySQL
MySQL Performance Schema vs sys schema: a 2026 monitoring guide
Performance Schema is unreadable. sys schema is friendly but lossy. Here's exactly which to use for which production question, with the eight queries every MySQL DBA should know by heart.
AI
Anomaly detection on database metrics: why thresholds fail and what works
A walk through forecast bands, change-point detection, multi-variate anomaly, and the seasonality math that makes 'p99 over 200ms' the wrong alert by default — with the Postgres example that broke our last threshold.
Pricing
We added up Datadog DBM at 50 databases. Here's the bill.
A line-by-line walkthrough of what 50 Postgres + 12 MySQL + 8 Mongo databases actually cost on Datadog DBM in 2026, with ways to reduce it that don't involve switching tools.
· · ·
See Obsfly on your MySQL.
20-min demo. We connect to a sample MySQL on the call and reproduce your slowest query in the tool.