Skip to content

Commit 377bf1d

Browse files
committed
PMM-13575: add self label to agent status
1 parent f19a692 commit 377bf1d

File tree

3 files changed

+296
-44
lines changed

3 files changed

+296
-44
lines changed

exporter/pbm_collector.go

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,19 @@ func (p *pbmCollector) collect(ch chan<- prometheus.Metric) {
125125
}
126126

127127
func (p *pbmCollector) pbmAgentMetrics(ctx context.Context, pbmClient *sdk.Client, l *logrus.Entry) []prometheus.Metric {
128+
currentNode, err := sdk.GetNodeInfo(ctx, pbmClient)
129+
if err != nil {
130+
l.Errorf("failed to get current node info: %s", err.Error())
131+
return nil
132+
}
133+
128134
clusterStatus, err := cli.ClusterStatus(ctx, pbmClient, cli.RSConfGetter(p.mongoURI))
129135
if err != nil {
130136
l.Errorf("failed to get cluster status: %s", err.Error())
131137
return nil
132138
}
133139

134140
metrics := make([]prometheus.Metric, 0, len(clusterStatus))
135-
136141
for replsetName, nodes := range clusterStatus {
137142
for _, node := range nodes {
138143
var pbmStatusMetric float64
@@ -146,14 +151,20 @@ func (p *pbmCollector) pbmAgentMetrics(ctx context.Context, pbmClient *sdk.Clien
146151
default: // !node.OK
147152
pbmStatusMetric = float64(pbmAgentStatusError)
148153
}
154+
labels := map[string]string{
155+
"host": node.Host,
156+
"replica_set": replsetName,
157+
"role": string(node.Role),
158+
"self": "0",
159+
}
160+
if node.Host == currentNode.Me {
161+
labels["self"] = "1"
162+
}
149163
metrics = append(metrics, createPBMMetric("agent_status",
150164
"PBM Agent Status",
151165
pbmStatusMetric,
152-
map[string]string{
153-
"host": node.Host,
154-
"replica_set": replsetName,
155-
"role": string(node.Role),
156-
}),
166+
labels,
167+
),
157168
)
158169
}
159170
}

go.mod

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,52 +22,50 @@ require github.com/foxcpp/go-mockdns v1.1.0
2222

2323
require github.com/hashicorp/go-version v1.7.0
2424

25-
require github.com/percona/percona-backup-mongodb v1.8.1-0.20241022111827-8d3ad8a6eb7a
25+
require github.com/percona/percona-backup-mongodb v1.8.1-0.20250218045950-7e9f38fe06ab
2626

2727
require (
2828
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 // indirect
2929
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect
3030
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 // indirect
31-
github.com/aws/aws-sdk-go v1.55.1 // indirect
31+
github.com/aws/aws-sdk-go v1.55.5 // indirect
3232
github.com/beorn7/perks v1.0.1 // indirect
3333
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3434
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
35-
github.com/davecgh/go-spew v1.1.1 // indirect
36-
github.com/go-ini/ini v1.67.0 // indirect
35+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
36+
github.com/frankban/quicktest v1.14.6 // indirect
3737
github.com/golang/snappy v0.0.4 // indirect
3838
github.com/google/uuid v1.6.0 // indirect
3939
github.com/jessevdk/go-flags v1.5.0 // indirect
4040
github.com/jmespath/go-jmespath v0.4.0 // indirect
4141
github.com/jpillora/backoff v1.0.0 // indirect
42-
github.com/klauspost/compress v1.17.9 // indirect
42+
github.com/klauspost/compress v1.17.11 // indirect
4343
github.com/klauspost/pgzip v1.2.6 // indirect
4444
github.com/kylelemons/godebug v1.1.0 // indirect
4545
github.com/mdlayher/socket v0.4.1 // indirect
4646
github.com/mdlayher/vsock v1.2.1 // indirect
4747
github.com/miekg/dns v1.1.57 // indirect
48-
github.com/minio/minio-go v6.0.14+incompatible // indirect
49-
github.com/mitchellh/go-homedir v1.1.0 // indirect
5048
github.com/mongodb/mongo-tools v0.0.0-20240723193119-837c2bc263f4 // indirect
5149
github.com/montanaflynn/stats v0.7.1 // indirect
5250
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
5351
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
5452
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
55-
github.com/pmezard/go-difflib v1.0.0 // indirect
53+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
5654
github.com/prometheus/procfs v0.15.1 // indirect
5755
github.com/rogpeppe/go-internal v1.11.0 // indirect
5856
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
5957
github.com/xdg-go/scram v1.1.2 // indirect
6058
github.com/xdg-go/stringprep v1.0.4 // indirect
6159
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
62-
golang.org/x/crypto v0.32.0 // indirect
60+
golang.org/x/crypto v0.33.0 // indirect
6361
golang.org/x/exp v0.0.0-20240529005216-23cca8864a10 // indirect
6462
golang.org/x/mod v0.19.0 // indirect
65-
golang.org/x/net v0.33.0 // indirect
63+
golang.org/x/net v0.35.0 // indirect
6664
golang.org/x/oauth2 v0.24.0 // indirect
67-
golang.org/x/sync v0.10.0 // indirect
68-
golang.org/x/sys v0.29.0 // indirect
69-
golang.org/x/term v0.28.0 // indirect
70-
golang.org/x/text v0.21.0 // indirect
65+
golang.org/x/sync v0.11.0 // indirect
66+
golang.org/x/sys v0.30.0 // indirect
67+
golang.org/x/term v0.29.0 // indirect
68+
golang.org/x/text v0.22.0 // indirect
7169
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
7270
google.golang.org/protobuf v1.36.1 // indirect
7371
gopkg.in/yaml.v2 v2.4.0 // indirect

0 commit comments

Comments
 (0)