{
  "items": [
    {
      "id": 25750,
      "status": 1,
      "statusCode": "active",
      "orgId": 1899401,
      "orgSlug": "microbunting2091",
      "orgName": "microbunting2091",
      "slug": "mysql-mgr-group-replication-monitoring-troubleshooting-v2-1-rc10062026",
      "downloads": 57,
      "revisionId": 42105,
      "revision": 3,
      "name": "MySQL MGR / Group Replication Monitoring & Troubleshooting - V2.1 RC10062026",
      "description": "Multi-cluster MySQL 8.0 Group Replication dashboard for Grafana. V2.1 RC9 clean-line refinement: workload panels use zero area fill, 2px lines, no points, linear interpolation, sorted multi-series tooltips, four dedicated DML panels, separate Connections and Threads Running panels, and dual-axis TPS vs MGR queue correlation.",
      "readme": "#Grafana version ：Grafana v12.0.1 (80658a73c5)\r\n#operating system ：Ubuntu 22.04.3 LTS \r\n\r\n# MySQL MGR / Group Replication Monitoring & Troubleshooting\r\n\r\nProduction-oriented Grafana dashboard for monitoring multiple MySQL 8.0 Group\r\nReplication (MGR) single-primary clusters with Prometheus and mysqld_exporter.\r\n\r\n## Dashboard coverage\r\n\r\n- Fleet health and healthy-cluster summary\r\n- ONLINE member and PRIMARY counts\r\n- Member role/state overview\r\n- MGR member inventory\r\n- Certification queue and responsible database node\r\n- Remote applier queue and responsible database node\r\n- Certification conflict rate and responsible database node\r\n- Local rollback rate and responsible database node\r\n- Certification/applier queue trends\r\n- Conflict/rollback trends\r\n- Group Replication transaction throughput\r\n- Multi-cluster filtering by `job`, `region` and exporter `instance`\r\n\r\n## Requirements\r\n\r\n- Grafana with a Prometheus datasource\r\n- Prometheus\r\n- mysqld_exporter\r\n- MySQL 8.0 Group Replication\r\n\r\n### Required mysqld_exporter collectors\r\n\r\nThe deployment used to validate this dashboard enables:\r\n\r\n```text\r\n--collect.global_status\r\n--collect.info_schema.innodb_metrics\r\n--collect.engine_innodb_status\r\n--collect.perf_schema.tablelocks\r\n--collect.perf_schema.eventsstatements\r\n--collect.perf_schema.eventsstatementssum\r\n--collect.perf_schema.eventswaits\r\n--collect.perf_schema.replication_group_members\r\n--collect.perf_schema.replication_group_member_stats\r\n--collect.slave_status\r\n```\r\n\r\nFor the MGR-specific panels, these two collectors are essential:\r\n\r\n```text\r\n--collect.perf_schema.replication_group_members\r\n--collect.perf_schema.replication_group_member_stats\r\n```\r\n\r\nThe first supplies MGR member topology/state/role. The second supplies certification\r\nqueue, remote applier queue, conflict, rollback and Group Replication transaction metrics.\r\n\r\n## systemd example\r\n\r\nExample file:\r\n\r\n```text\r\n/etc/systemd/system/mysqld_exporter.service\r\n```\r\n\r\n```ini\r\n[Unit]\r\nDescription=MySQL Exporter\r\nAfter=network.target\r\nWants=network.target\r\n\r\n[Service]\r\nType=simple\r\nUser=mysql\r\nGroup=mysql\r\nWorkingDirectory=/opt/mysqld_exporter\r\n\r\nExecStart=/opt/mysqld_exporter/mysqld_exporter \\\r\n  --config.my-cnf=/opt/mysqld_exporter/.my.cnf \\\r\n  --collect.global_status \\\r\n  --collect.info_schema.innodb_metrics \\\r\n  --collect.engine_innodb_status \\\r\n  --collect.perf_schema.tablelocks \\\r\n  --collect.perf_schema.eventsstatements \\\r\n  --collect.perf_schema.eventsstatementssum \\\r\n  --collect.perf_schema.eventswaits \\\r\n  --collect.perf_schema.replication_group_members \\\r\n  --collect.perf_schema.replication_group_member_stats \\\r\n  --collect.slave_status \\\r\n  --web.listen-address=:9104\r\n\r\nRestart=always\r\nRestartSec=3\r\nStandardOutput=syslog\r\nStandardError=syslog\r\nSyslogIdentifier=mysqld_exporter\r\n\r\n[Install]\r\nWantedBy=multi-user.target\r\n```\r\n\r\nAfter creating or changing the unit:\r\n\r\n```bash\r\nsystemctl daemon-reload\r\nsystemctl restart mysqld_exporter\r\nsystemctl status mysqld_exporter\r\n```\r\n\r\nConfirm metrics are exposed on port 9104 before importing the dashboard.\r\n\r\n## Prometheus file_sd labels\r\n\r\nThis dashboard supports a `region` label and uses a `role` label as the\r\nhuman-readable database node name.\r\n\r\nExample:\r\n\r\n```json\r\n[\r\n  {\r\n    \"targets\": [\"103.214.126.156:9104\"],\r\n    \"labels\": {\r\n      \"region\": \"AB\",\r\n      \"role\": \"AB-mgr-01\"\r\n    }\r\n  },\r\n  {\r\n    \"targets\": [\"147.131.144.112:9104\"],\r\n    \"labels\": {\r\n      \"region\": \"AB\",\r\n      \"role\": \"AB-mgr-02\"\r\n    }\r\n  }\r\n]\r\n```\r\n\r\nUsing `role` allows Grafana to display readable node names such as:\r\n\r\n```text\r\nRemote Applied · AB-mgr-01\r\nLocal Proposed ·AB-mgr-02\r\n```\r\n\r\ninstead of exporter endpoints such as `103.214.126.156:9104`.\r\n\r\n## Queue / conflict summary behavior\r\n\r\nThe four troubleshooting summary panels identify the database node associated\r\nwith the highest current non-zero value:\r\n\r\n- Certification Queue\r\n- Remote Applier Queue\r\n- Conflict Rate\r\n- Local Rollback Rate\r\n\r\nExample:\r\n\r\n```text\r\n1\r\nAB-mgr-01\r\n```\r\n\r\nWhen every selected node reports zero, the panels show `CLEAR`,\r\n`NO CONFLICTS`, or `NO ROLLBACKS` without assigning the healthy value to an\r\narbitrary host.\r\n\r\n## Import\r\n\r\n1. Open Grafana.\r\n2. Go to **Dashboards → New → Import**.\r\n3. Upload `mysql-mgr-group-replication-monitoring-v1.0.0.json`.\r\n4. Select the Prometheus datasource.\r\n5. Import the dashboard.\r\n6. Select the required `job`, `region`, and `instance` filters.\r\n\r\n## Notes\r\n\r\nThe fleet-health logic in this release is designed for 3-node, single-primary\r\nMGR clusters: one ONLINE PRIMARY and three ONLINE members per cluster.\r\n\r\nQueue trend is generally more important than a brief non-zero spike. A\r\ncertification or applier queue that continues to grow should be investigated.\r\n\r\n## Release\r\n\r\n**v1.0.0** — initial community release.\r\n**v2.0.0** — Added performance monitoring metrics such as TPS and OPS.\r\n**v1.0.0** —  1,Optimized the statistical method for \"Online Members. \r\n                        2.Add a column at the top labeled \"Affected MGR Members.\" This means displaying the hosts flagged as anomalous in \"Fleet Health\" within the \"Affected MGR Members\" column.\r\n\r\n## Author\r\n\r\nCreated and maintained by diagdba@gmail.com;\r\n\r\nDatabase Administrator / DevOps Engineer focused on  MySQL, MySQL Group Replication,\r\nOracle, PostgreSQL, TiDB, MySQL database reliability, performance tuning and automation.\r\n\r\nFor bug reports, feature requests and contributions, please use the project's GitHub repository.\r\n\r\n## Contributing\r\n\r\nIssues, suggestions and pull requests are welcome.\r\n\r\nIf you are using this dashboard with a different MGR topology, mysqld_exporter version,\r\nor Prometheus labeling strategy, feedback and compatibility reports are especially welcome.",
      "collectorType": "Other",
      "collectorConfig": null,
      "collectorPluginList": null,
      "datasource": "Prometheus",
      "privacy": "public",
      "createdAt": "2026-09-04T07:31:54.000Z",
      "updatedAt": "2026-10-07T05:33:26.000Z",
      "isEditor": false,
      "hasLogo": false,
      "reviewsCount": 0,
      "reviewsAvgRating": 0,
      "links": [
        {
          "rel": "self",
          "href": "/dashboards/25750"
        },
        {
          "rel": "revisions",
          "href": "/dashboards/25750/revisions"
        },
        {
          "rel": "revision",
          "href": "/dashboards/25750/revisions/3"
        },
        {
          "rel": "download",
          "href": "/dashboards/25750/revisions/3/download"
        },
        {
          "rel": "org",
          "href": "/orgs/microbunting2091"
        },
        {
          "rel": "images",
          "href": "/dashboards/25750/images"
        },
        {
          "rel": "thumbnails",
          "href": "/dashboards/25750/thumbnails"
        }
      ],
      "datasourceSlugs": [
        "prometheus"
      ]
    }
  ],
  "total": 1,
  "pages": 1,
  "pageSize": 1000000,
  "page": 1,
  "orderBy": "name",
  "direction": "asc",
  "links": [
    {
      "rel": "self",
      "href": "/dashboards"
    }
  ]
}