MCPcopy
hub / github.com/prometheus/client_golang / TestWrapCollector

Function TestWrapCollector

prometheus/wrap_test.go:349–468  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

347}
348
349func TestWrapCollector(t *testing.T) {
350 t.Run("can be registered and un-registered", func(t *testing.T) {
351 inner := NewPedanticRegistry()
352 g := NewGauge(GaugeOpts{Name: "testing"})
353 g.Set(42)
354 err := inner.Register(g)
355 if err != nil {
356 t.Fatal("registering failed:", err)
357 }
358
359 wrappedWithLabels := WrapCollectorWith(Labels{"lbl": "1"}, inner)
360 wrappedWithPrefix := WrapCollectorWithPrefix("prefix", inner)
361 reg := NewPedanticRegistry()
362 err = reg.Register(wrappedWithLabels)
363 if err != nil {
364 t.Fatal("registering failed:", err)
365 }
366 err = reg.Register(wrappedWithPrefix)
367 if err != nil {
368 t.Fatal("registering failed:", err)
369 }
370
371 gathered, err := reg.Gather()
372 if err != nil {
373 t.Fatal("gathering failed:", err)
374 }
375
376 lg := NewGauge(GaugeOpts{Name: "testing", ConstLabels: Labels{"lbl": "1"}})
377 lg.Set(42)
378 pg := NewGauge(GaugeOpts{Name: "prefixtesting"})
379 pg.Set(42)
380 expected := toMetricFamilies(lg, pg)
381 assertEqualMFs(t, expected, gathered)
382
383 if !reg.Unregister(wrappedWithLabels) {
384 t.Fatal("unregistering failed")
385 }
386 if !reg.Unregister(wrappedWithPrefix) {
387 t.Fatal("unregistering failed")
388 }
389
390 gathered, err = reg.Gather()
391 if err != nil {
392 t.Fatal("gathering failed:", err)
393 }
394 if len(gathered) != 0 {
395 t.Fatalf("expected 0 metric families, got %d", len(gathered))
396 }
397 })
398
399 t.Run("can wrap same collector twice", func(t *testing.T) {
400 inner := NewPedanticRegistry()
401 g := NewGauge(GaugeOpts{Name: "testing"})
402 g.Set(42)
403 err := inner.Register(g)
404 if err != nil {
405 t.Fatal("registering failed:", err)
406 }

Callers

nothing calls this directly

Calls 11

SetMethod · 0.95
NewPedanticRegistryFunction · 0.85
WrapCollectorWithFunction · 0.85
WrapCollectorWithPrefixFunction · 0.85
toMetricFamiliesFunction · 0.85
assertEqualMFsFunction · 0.85
RunMethod · 0.80
NewGaugeFunction · 0.70
RegisterMethod · 0.65
GatherMethod · 0.65
UnregisterMethod · 0.65

Tested by

no test coverage detected