Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3c1d016

Browse files
committed
Filter out unacceptable labels in AgentStats
Signed-off-by: Danny Kopping <danny@coder.com>
1 parent06f2f87 commit3c1d016

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

‎coderd/prometheusmetrics/aggregator_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ func TestUpdateMetrics_MetricsExpire(t *testing.T) {
262262

263263
// given
264264
registry:=prometheus.NewRegistry()
265-
metricsAggregator,err:=prometheusmetrics.NewMetricsAggregator(slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}),registry,time.Millisecond,nil)
265+
metricsAggregator,err:=prometheusmetrics.NewMetricsAggregator(slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}),registry,time.Millisecond,agentmetrics.LabelAll)
266266
require.NoError(t,err)
267267

268268
ctx,cancelFunc:=context.WithCancel(context.Background())

‎coderd/prometheusmetrics/prometheusmetrics.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,8 @@ func AgentStats(ctx context.Context, logger slog.Logger, registerer prometheus.R
338338
aggregateByLabels=agentmetrics.LabelAgentStats
339339
}
340340

341+
aggregateByLabels=filterInvalidLabels(aggregateByLabels)
342+
341343
metricsCollectorAgentStats:=prometheus.NewHistogram(prometheus.HistogramOpts{
342344
Namespace:"coderd",
343345
Subsystem:"prometheusmetrics",
@@ -514,3 +516,20 @@ func AgentStats(ctx context.Context, logger slog.Logger, registerer prometheus.R
514516
<-done
515517
},nil
516518
}
519+
520+
// filterInvalidLabels handles a slightly messy situation whereby `prometheus-aggregate-agent-stats-by` can control on
521+
// which labels agent stats are aggregated, but for these specific metrics in this file there is no `template` label value,
522+
// and therefore we have to exclude it from the list of acceptable labels.
523+
funcfilterInvalidLabels(labels []string) []string {
524+
varout []string
525+
526+
for_,label:=rangelabels {
527+
iflabel==agentmetrics.LabelTemplateName {
528+
continue
529+
}
530+
531+
out=append(out,label)
532+
}
533+
534+
returnout
535+
}

‎coderd/prometheusmetrics/prometheusmetrics_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"database/sql"
66
"encoding/json"
77
"fmt"
8+
"github.com/coder/coder/v2/coderd/agentmetrics"
89
"os"
910
"reflect"
1011
"sync/atomic"
@@ -451,7 +452,7 @@ func TestAgentStats(t *testing.T) {
451452
// and it doesn't depend on the real time.
452453
closeFunc,err:=prometheusmetrics.AgentStats(ctx,slogtest.Make(t,&slogtest.Options{
453454
IgnoreErrors:true,
454-
}),registry,db,time.Now().Add(-time.Minute),time.Millisecond,nil)
455+
}),registry,db,time.Now().Add(-time.Minute),time.Millisecond,agentmetrics.LabelAll)
455456
require.NoError(t,err)
456457
t.Cleanup(closeFunc)
457458

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp