gauge.go 550 B

123456789101112131415161718192021222324252627282930313233
  1. package mock
  2. import (
  3. "github.com/ydb-platform/ydb/library/go/core/metrics"
  4. "go.uber.org/atomic"
  5. )
  6. var _ metrics.Gauge = (*Gauge)(nil)
  7. // Gauge tracks single float64 value.
  8. type Gauge struct {
  9. Name string
  10. Tags map[string]string
  11. Value *atomic.Float64
  12. }
  13. func (g *Gauge) Set(value float64) {
  14. g.Value.Store(value)
  15. }
  16. func (g *Gauge) Add(value float64) {
  17. g.Value.Add(value)
  18. }
  19. var _ metrics.FuncGauge = (*FuncGauge)(nil)
  20. type FuncGauge struct {
  21. function func() float64
  22. }
  23. func (g FuncGauge) Function() func() float64 {
  24. return g.function
  25. }