diff --git a/collector/perf_schema_replication_group_members.go b/collector/perf_schema_replication_group_members.go index a62db5e1..5d93a019 100644 --- a/collector/perf_schema_replication_group_members.go +++ b/collector/perf_schema_replication_group_members.go @@ -60,7 +60,7 @@ func (ScrapePerfReplicationGroupMembers) Scrape(ctx context.Context, db *sql.DB, for i := range scanArgs { scanArgs[i] = &sql.RawBytes{} } - + memberStateValue := float64(0) for perfReplicationGroupMembersRows.Next() { if err := perfReplicationGroupMembersRows.Scan(scanArgs...); err != nil { return err @@ -71,6 +71,9 @@ func (ScrapePerfReplicationGroupMembers) Scrape(ctx context.Context, db *sql.DB, for i, columnName := range columnNames { labelNames[i] = strings.ToLower(columnName) values[i] = string(*scanArgs[i].(*sql.RawBytes)) + if labelNames[i] == "member_state" && values[i] == "ONLINE" { + memberStateValue = 1 + } } var performanceSchemaReplicationGroupMembersMemberDesc = prometheus.NewDesc( @@ -82,7 +85,7 @@ func (ScrapePerfReplicationGroupMembers) Scrape(ctx context.Context, db *sql.DB, ) ch <- prometheus.MustNewConstMetric(performanceSchemaReplicationGroupMembersMemberDesc, - prometheus.GaugeValue, 1, values...) + prometheus.GaugeValue, memberStateValue, values...) } return nil