Skip to content

Commit ad973cf

Browse files
prateeknayakPrateek
andauthored
Add testcase to check for missing labels from the generated metrics (#116)
* Fixes the missing label issue Signed-off-by: Prateek <prateek@bluekanvas.com> * Fixes the missing label issue Signed-off-by: Prateek <prateek@bluekanvas.com> * Updates the test to tap into the ch Signed-off-by: Prateek <prateek@bluekanvas.com> * Fixes formating issues in the serve_test.gp Signed-off-by: Prateek <prateek@bluekanvas.com> * Remove the accidental merge conflict Signed-off-by: Prateek <prateek@bluekanvas.com> --------- Signed-off-by: Prateek <prateek@bluekanvas.com> Co-authored-by: Prateek <prateek@bluekanvas.com>
1 parent 5bc6482 commit ad973cf

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

metrics/serve_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,3 +414,53 @@ func TestRunMetricsSpikeChange(t *testing.T) {
414414
}
415415
}
416416
}
417+
418+
func TestCollectorLabels(t *testing.T) {
419+
testCfg := Config{
420+
GaugeMetricCount: 1,
421+
LabelCount: 2,
422+
SeriesCount: 100,
423+
MaxSeriesCount: 30,
424+
MinSeriesCount: 10,
425+
SpikeMultiplier: 1.5,
426+
MetricLength: 1,
427+
LabelLength: 1,
428+
SeriesOperationMode: spikeOpMode,
429+
ConstLabels: []string{"constLabel=test"},
430+
}
431+
432+
assert.NoError(t, testCfg.Validate())
433+
434+
reg := prometheus.NewRegistry()
435+
col := NewCollector(testCfg)
436+
reg.MustRegister(col)
437+
438+
go col.Run()
439+
t.Cleanup(func() {
440+
col.Stop(nil)
441+
})
442+
443+
select {
444+
case <-col.updateNotifyCh:
445+
metricsFamilies, err := reg.Gather()
446+
assert.NotEmpty(t, metricsFamilies)
447+
assert.NoError(t, err)
448+
449+
for _, mf := range metricsFamilies {
450+
for _, m := range mf.Metric {
451+
labels := m.GetLabel()
452+
labelMap := make(map[string]string)
453+
for _, l := range labels {
454+
labelMap[l.GetName()] = l.GetValue()
455+
}
456+
assert.Equal(t, "test", labelMap["constLabel"])
457+
assert.Contains(t, labelMap, "label_key_k_0")
458+
assert.Contains(t, labelMap, "label_key_k_1")
459+
assert.Contains(t, labelMap, "series_id")
460+
assert.Contains(t, labelMap, "cycle_id")
461+
}
462+
}
463+
case <-time.After(2 * time.Second):
464+
t.Fail()
465+
}
466+
}

0 commit comments

Comments
 (0)