Skip to content

Commit ae513d8

Browse files
SuperQyizhenlangyan
authored andcommitted
enableMgrAlert:Return different values according to different states of performance_schema.replication_group_members column member_state state, and then alarm for MGR. Performance_schema. replication_group_members MEMBER_STATE: returns 0 when not ONLINE. Configure rules in Prometheus for sending MGR non-online alarm.
Signed-off-by: jianshenghan <[email protected]>
2 parents 4c51d37 + d13522e commit ae513d8

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ config.my-cnf | Path to .my.cnf file to read MySQL
106106
log.level | Logging verbosity (default: info)
107107
exporter.lock_wait_timeout | Set a lock_wait_timeout (in seconds) on the connection to avoid long metadata locking. (default: 2)
108108
exporter.log_slow_filter | Add a log_slow_filter to avoid slow query logging of scrapes. NOTE: Not supported by Oracle MySQL.
109+
tls.insecure-skip-verify | Ignore tls verification errors.
109110
web.config.file | Path to a [web configuration file](#tls-and-basic-authentication)
110111
web.listen-address | Address to listen on for web interface and telemetry.
111112
web.telemetry-path | Path under which to expose metrics.

Diff for: collector/perf_schema_replication_group_members.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (ScrapePerfReplicationGroupMembers) Scrape(ctx context.Context, db *sql.DB,
6060
for i := range scanArgs {
6161
scanArgs[i] = &sql.RawBytes{}
6262
}
63-
63+
memberStateValue := float64(0)
6464
for perfReplicationGroupMembersRows.Next() {
6565
if err := perfReplicationGroupMembersRows.Scan(scanArgs...); err != nil {
6666
return err
@@ -71,6 +71,9 @@ func (ScrapePerfReplicationGroupMembers) Scrape(ctx context.Context, db *sql.DB,
7171
for i, columnName := range columnNames {
7272
labelNames[i] = strings.ToLower(columnName)
7373
values[i] = string(*scanArgs[i].(*sql.RawBytes))
74+
if labelNames[i] == "member_state" && values[i] == "ONLINE" {
75+
memberStateValue = 1
76+
}
7477
}
7578

7679
var performanceSchemaReplicationGroupMembersMemberDesc = prometheus.NewDesc(
@@ -82,7 +85,7 @@ func (ScrapePerfReplicationGroupMembers) Scrape(ctx context.Context, db *sql.DB,
8285
)
8386

8487
ch <- prometheus.MustNewConstMetric(performanceSchemaReplicationGroupMembersMemberDesc,
85-
prometheus.GaugeValue, 1, values...)
88+
prometheus.GaugeValue, memberStateValue, values...)
8689
}
8790
return nil
8891

0 commit comments

Comments
 (0)