major / major/MySQLTuner-perl

feat(ha): enhance MySQL InnoDB Cluster & Group Replication diagnostics

Open
#976 2 comments 0 reactions 1 assignee View on GitHub

@jmrenouard is already working on this.

Since Aug 7, 2026.

enhancement PATCH DELIVERED
Dominant language
Perl
Stars
9.5k
Forks
1.3k
Avg merge
9h 4m
Merged PRs (30d)
8

Description

Summary & Motivation

Enhance MySQLTuner diagnostics and analytics for MySQL InnoDB Cluster and Group Replication topologies:

  1. Advanced MySQL Router Metrics & Query Categorization: Parse processlist for MySQL Router connections, monitor active vs sleeping router sessions, and detect/warn when write statements (INSERT, UPDATE, DELETE, DDL) are routed to SECONDARY cluster nodes.
  2. Dynamic Single-Primary vs Multi-Primary Mode Adaptation: Adapt flow control recommendations and lower certification conflict rollback warning threshold from 5.0% to 2.0% when running in Multi-Primary mode (group_replication_single_primary_mode = OFF).
  3. Message Cache Retention Capacity Audit: Cross-reference group_replication_message_cache_size against active network traffic throughput (Bytes_sent + Bytes_received / Uptime) to calculate estimated network isolation retention window and warn if retention < 60 seconds to prevent state transfer (SST) recovery spikes.
  4. Topology Status Output: Standardize output for MEMBER_STATE and MEMBER_ROLE across all cluster nodes.

Changes Included

  • Updated mysqltuner.pl with Group Replication and Router diagnostic enhancements.
  • Added comprehensive unit subtests in tests/unit_ha_cluster.t.
  • Validated via E2E lab tests (build/test_ha.sh innodb_cluster).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.