Introducing MySight
The MySQL Monitoring Dashboard
Your Team Has Been Waiting For
Stop flying blind on your databases. MySight gives you real-time performance visibility, AI-assisted diagnostics, intelligent anomaly detection, and collaborative team tooling — all in a single, production-safe dashboard.
Managing MySQL in production is hard. Slow queries materialize out of nowhere. Connection pools mysteriously exhaust. Replication falls behind. Index choices that made sense six months ago are now strangling performance. And when something actually breaks at 2 AM, the evidence has usually evaporated by the time you open a terminal.
MySight was built to change that. It's a self-hosted MySQL performance monitoring platform that combines a rich, real-time dashboard with intelligent tooling: adaptive anomaly detection, automated diagnostic snapshots, query plan visualization, Slack-native alerting, and optional AI-powered analysis. Whether you're a solo DBA or a distributed engineering team, MySight gives everyone the visibility they need to move fast without breaking things.
Deep Diagnostics
40+ panels covering every layer of MySQL internals — from buffer pool pages to redo log LSNs.
Built for Teams
Shared monitoring sessions, role-based access control, Slack integration, and invite links — so your whole team sees the same picture.
Production Safe
Read-only. Zero writes to MySQL. On-demand panels never auto-poll. Lock-free process list queries on MySQL 8.0.22+.
AI-Augmented
Connect OpenAI, Claude, Gemini, DeepSeek, Groq, Grok, or run fully local with Ollama. No data ever leaks — only normalized patterns are sent.
Know Your Database's Health at a Glance
Every time you open MySight, you're greeted by a Health Score from 0 to 100 — a single composite number that tells you immediately whether your MySQL server needs attention. The score weighs four factors that matter most to production systems:
- Buffer Pool Hit Ratio (50%): Are queries being served from memory or from disk?
- P50 Response Time (25%): How fast is MySQL actually answering queries?
- Connection Utilization (15%): How close is the server to exhausting its connection limit?
- Temp Table Disk Ratio (10%): Is MySQL spilling intermediate query results to disk?
When the score drops, MySight surfaces specific recommendations right in the Info Panel — not just "something is wrong" but exactly what to fix and why.
Always-Visible KPI Strip
No matter which tab you're exploring, a compact KPI bar at the top of the dashboard always shows your four most critical numbers: Buffer Pool Hit Ratio, Queries Per Second, P50 Latency, and Uptime. When anomaly detection is active, these cards show color-coded badges — amber for warnings, red for critical deviations — so you can spot trouble without even opening the dedicated panels.
Real-Time Monitoring That Doesn't Cost You
MySight polls your MySQL server every 10 seconds by default. Flip on Real-Time Mode during incidents or load tests and it drops to 5-second intervals, activating a live scrolling chart showing hit ratio, response time, queries/sec, and thread counts over the last 100 intervals.
For saved connections, MySight runs a shared server-side monitoring session. Ten engineers watching the same database produce the same MySQL load as one. Metrics are collected once per poll cycle and broadcast to all connected browsers simultaneously via Server-Sent Events.
If someone accidentally reloads the browser, MySight automatically restores their saved-connection sessions — no credentials stored in the browser, no re-typing connection strings.
Find and Fix Slow Queries — Fast
Query performance is usually where database problems hide. MySight gives you multiple lenses to find them:
Slow Query Panel
Top 10 slowest queries from performance_schema, ranked by average execution time. One-click EXPLAIN to see exactly why they're slow.
Query Digest Analytics
Every unique query pattern sortable by total time, avg time, exec count, rows examined, and rows sent. Expandable detail rows show exam/sent ratio, temp table spills, sort merge passes, and no-index flags.
Query Digest Trends
Capture a snapshot before your optimization, apply the change, compare vs. live. See exactly which queries got faster, which regressed, and which are new.
Slow Log Import
Upload a MySQL slow query log file (up to 50 MB) for offline analysis — no live connection needed. Supports Oracle MySQL, Percona Server, and Amazon Aurora formats.
Query Throughput Chart
Stacked area chart of SELECT/INSERT/UPDATE/DELETE rates over time. Works in real-time or pulls from historical data with 1h/6h/24h/7d/30d ranges. MySQL restart counter resets are auto-detected and skipped.
Query EXPLAIN
Run EXPLAIN FORMAT=JSON from any panel. Switch between Table View (rows) and Tree View (visual plan like MySQL Workbench) — the hot path is highlighted in red for complex multi-JOIN queries.
The sys Schema Reports go even deeper: identify queries doing full table scans, queries spilling temp tables to disk, queries requiring expensive sort merge passes, and break load attribution down by MySQL user and client host. When an incident hits, you need to know which application server is responsible — MySight tells you in seconds.
InnoDB Internals, Demystified
InnoDB is a black box to most. MySight opens it up:
Index Intelligence
Bad indexes are expensive in two directions: missing indexes make reads slow, and redundant indexes make writes slow. MySight's Index Usage Analysis panel (on-demand, zero continuous overhead) gives you:
- Unused Indexes: Indexes that have never been used for reads since the last server start. Every unused index is costing you write performance.
- Duplicate Indexes: Indexes where one is a left-prefix of another — one of them is dead weight.
- Full Index Inventory: Every index with read/write counts and cardinality. High-write, zero-read indexes are immediate drop candidates.
The Database Tables panel complements this by flagging every table with a NO PK badge (missing primary key — causes severe InnoDB performance issues) or NO IDX badge (no indexes at all). It also shows fragmentation percentage so you know which tables are candidates for OPTIMIZE TABLE.
Connection Intelligence
Connection problems kill databases silently. MySight watches from multiple angles:
Connections Overview
Threads connected, threads running, connection utilization vs max_connections, aborted connections. Colored thresholds tell you at a glance how close you are to the edge.
Connection Pool Analysis
Connection churn rate (>5/s is a red flag), thread cache miss rate, and sleep duration distribution. Pinpoints misconfigurations like pool minimum set too high or connection leaks.
Active Processes
Live processlist from performance_schema (lock-free on 8.0.22+). Auto-surfaces long-running queries (>30s), lock waits, idle connection accumulation, and disk-spilling queries. Click Explain on any running query without interrupting it.
Memory Usage Breakdown
MySQL's memory usage is invisible until it causes an OOM crash. The Memory Usage panel (MySQL 8.0+) reads from performance_schema.memory_summary_global_by_event_name to show exactly how memory is allocated across InnoDB (buffer pool, AHI, log), SQL layer (parser, optimizer), temp tables, and Performance Schema.
When non-InnoDB overhead exceeds 30% of total allocation, MySight flags a potential OOM risk — typically caused by per-connection buffers (sort_buffer, join_buffer) multiplied across many connections.
Configuration Advisor: 20+ Rules, Zero Guesswork
MySight's Configuration Advisor scans SHOW GLOBAL VARIABLES and SHOW GLOBAL STATUS against 20+ expert-authored rules, flagging common MySQL misconfigurations across seven categories:
Each finding includes the current value, the specific recommendation, and the reason it matters. Severity levels guide your priorities: Critical for immediate action (data safety, major performance), Warning for near-term attention, and Info for optimization opportunities. The Configuration Advisor uses only in-memory status variables — completely safe to run on production anytime.
Replication Monitoring
Running replicas? MySight shows IO thread and SQL thread status, replication lag in seconds, binlog position tracking, and GTID set comparison. Multi-source replication is supported with a tab per channel. A growing gap between the "healthy <1s" threshold and your actual lag is surfaced immediately with color-coded severity.
The Schema Change Tracking panel lets you capture schema snapshots before and after migrations, then diff them to verify exactly what changed: tables added or dropped, columns modified, indexes altered. Never wonder again whether a migration ran clean.
Historical Trends & Metric Correlation
Real-time snapshots show you now. History explains why. For saved connections, MySight stores every metric poll in PostgreSQL, building up to 30 days of time-series data.
Historical Metrics lets you plot buffer pool hit ratio, response time, query throughput, thread counts, network I/O, InnoDB row operations, and replication lag over selectable ranges: 1h, 6h, 24h, 7d, 30d. Longer ranges use server-side downsampling for performance.
Metric Correlation View lets you overlay up to 4 metrics on a shared timeline — using presets like "Response Time vs Threads Running" or "Hit Ratio vs Dirty Pages" — to discover cause-and-effect relationships. Dual Y-axes activate automatically when selected metrics have very different scales (more than 10x apart), so both remain readable.
You can also compare two saved connections side-by-side with the Server vs Server Comparison mode — primary vs replica, staging vs production. Zero additional MySQL load since it reads from stored PostgreSQL summaries.
Adaptive Anomaly Detection: Your Database Learns What Normal Looks Like
Static thresholds are blunt instruments. What's alarming at 3 AM on Sunday might be perfectly normal at noon on Monday. MySight's Adaptive Anomaly Detection computes rolling baselines from your historical data and alerts when current values deviate significantly — measured in standard deviations (σ):
MySight tracks 7 key metrics with directional awareness — it knows that a lower hit ratio is always bad, but that a drop in query volume could mean either a traffic drop or an app outage:
- Buffer Pool Hit Ratio (higher = better)
- P50 Response Time (lower = better)
- Threads Running (lower = better)
- Slow Query Count (lower = better)
- Dirty Page Ratio (lower = better)
- Total Queries (direction-neutral)
- Threads Connected (direction-neutral)
Baselines use an hour-of-day window by default, automatically upgrading to a more precise day-of-week model (e.g., "Tuesday at 2 PM") once enough samples are accumulated — adapting to your server's weekly traffic patterns.
Improvements are always capped at "info" severity regardless of deviation magnitude — so they stay visible as a confirmation that your optimization worked, without triggering false alarm fatigue.
Alert Rules + Triggered Diagnostics: Your 24/7 On-Call Teammate
MySight's Alert Rules let you define threshold conditions on 10 key metrics — buffer pool hit ratio, response time, queries/sec, threads connected, threads running, connection utilization, slow queries, temp table disk ratio, dirty pages, and replication lag. Rules evaluate client-side against already-polled data with zero additional MySQL load. When a threshold is breached:
Structured Block Kit message sent to your configured channel. Subsequent alerts for the same rule reply in-thread — your channel stays clean.
Configure a 1–1440 minute cooldown per rule so you're not spammed during sustained incidents.
Enable auto-capture on any rule and MySight automatically records a complete diagnostic snapshot at the exact moment of the incident — process list, active transactions, lock waits, InnoDB status, global status, and global variables — all captured in parallel for minimal overhead.
You can also trigger a diagnostic capture manually at any time. Once stored, captures are browsable with five detail tabs — Processes, Transactions, Lock Waits, Status Diff, and InnoDB Status. Compare two captures side-by-side to see exactly what changed between the incident spike and the recovery.
This is your black box recorder. Incidents no longer have to remain mysteries because "the evidence was gone by the time I looked."
Slack-Native Sharing Across Every Panel
Every panel in MySight has a hover-revealed Share button that sends a structured Slack summary in one click. Post to a channel, or paste a Slack message link to reply directly in an existing thread. Add an optional comment before sending.
When sharing Comparison Mode to Slack, each metric is prefixed with a color indicator — 🔴 regression, 🟢 improvement, ⚪ unchanged — with values shown as baseline → current (delta%). Your teammates get full context without needing to open the dashboard.
PDF Performance Reports
Need to share findings with stakeholders or document a performance review? Export a comprehensive PDF report with 11 sections:
- Cover page with health score visualization
- Technical analysis — all key metrics with assessments
- Database tables — schema sizes, fragmentation, PK coverage
- Active processes — long-running queries, lock waits, user distribution
- Lock & deadlock analysis
- Query digest analytics — top patterns, no-index queries, disk temp tables
- Configuration advisor findings by severity
- On-demand analysis — memory, redo log, tablespace, connection pool
- Anomaly detection & sys Schema reports
- Non-technical summary — plain-language for management
- Prioritized action items — ~30 categories with severity badges
Choose between an Internal Report (full technical details including server configuration and per-user attribution) and a Customer Report (sanitized version safe for external stakeholders). No third-party PDF service — generated entirely in your browser.
Built for Teams, Designed Around Security
Team Management
Create teams and share specific MySQL connections with specific groups. Role-based access: Admins can invite, remove, and share; Viewers can monitor and run analysis. Single-use invite links (7-day expiry) with optional email restriction.
Credential Security
MySQL passwords encrypted with AES-256-GCM before storage in PostgreSQL. Connection strings masked in all displays. Shared connections never expose credentials to non-owners. Revoke access instantly — active monitors are disconnected immediately.
Google SSO
Authentication via Google OAuth 2.0 with configurable allowed email domains. JWT sessions with 24-hour expiry. Per-user rate limiting on all API endpoints — monitor, AI, auth, and general.
Activity Log
Append-only audit trail of monitoring sessions, connection saves/deletes, and sharing changes. Scoped per user. Paginated at 20 entries per page.
AI-Powered Analysis: Flexible & Privacy-Respecting
Configure optional AI integration to get deeper, contextual insights on slow query logs, active processes, connection pool health, and buffer pool metrics. MySight supports 7 AI providers:
Privacy is built-in: All SQL is normalized before reaching the AI — literal values are replaced with ? so no actual data leaves your environment. Only query patterns, aggregated counters, and server metrics are sent. No credentials, no connection strings, no raw data — ever.
Monitor Multiple Servers, One Dashboard
Connect to multiple MySQL servers simultaneously using tabs. Each connection has its own independent dashboard state — metrics history, real-time mode, lock data, comparison baselines. Switching tabs preserves everything.
Inactive tabs show compact Health Summary Cards with the latest stored health score and key metrics — so you can scan all your servers at a glance without actively connecting to each one.
Works with any MySQL-compatible server: self-hosted MySQL, Amazon RDS, Amazon Aurora, Google Cloud SQL, Azure Database for MySQL, and Percona Server.
Layout Customization
Panels are organized into logical tabbed groups to reduce visual clutter — Performance Overview, InnoDB Information, Query Analysis, Connection Analysis, and Storage & Schema. Each panel can be collapsed to a compact bar or hidden entirely via the Layout menu. All preferences persist in localStorage across sessions.
Customize your dashboard to show exactly what you care about — hide irrelevant panels, collapse what you only need occasionally, and keep the critical panels front and center.
Everything MySight Monitors
Who MySight Is For
DBAs & Platform Engineers
Every InnoDB internal exposed, every index audited, every config rule checked. This is the depth you need for serious tuning work.
Backend Developers
Catch N+1 queries, missing indexes, and over-broad SELECTs before they hit production. The Query Digest Trends panel validates that your optimization actually worked.
Engineering Teams
Shared monitoring sessions mean zero duplicate load regardless of team size. Teams, roles, and invite links mean everyone has the access they need — and nothing more.
SREs & On-Call Engineers
Alert rules fire Slack notifications with auto-captured diagnostic snapshots. When you wake up to a 2 AM page, the evidence is already waiting for you.
Deployment
MySight runs as a 3-container Docker stack — an nginx frontend, an Express API server, and a PostgreSQL 16 database for metric storage and credential management. Bring it up with a single docker compose up. Your MySQL server stays completely untouched — MySight only reads.
Your MySQL deserves better visibility.
MySight brings production-grade MySQL observability to teams of any size — without the cloud lock-in, the vendor data sharing, or the per-metric pricing. Self-host it, own your data, and finally know what your database is doing.