2018-01-26 13:58:03 +03:00
package testhelpers
import "github.com/go-kit/kit/metrics"
// CollectingCounter is a metrics.Counter implementation that enables access to the CounterValue and LastLabelValues.
type CollectingCounter struct {
CounterValue float64
LastLabelValues [ ] string
}
// With is there to satisfy the metrics.Counter interface.
func ( c * CollectingCounter ) With ( labelValues ... string ) metrics . Counter {
c . LastLabelValues = labelValues
return c
}
// Add is there to satisfy the metrics.Counter interface.
func ( c * CollectingCounter ) Add ( delta float64 ) {
c . CounterValue += delta
}
// CollectingGauge is a metrics.Gauge implementation that enables access to the GaugeValue and LastLabelValues.
type CollectingGauge struct {
GaugeValue float64
LastLabelValues [ ] string
}
// With is there to satisfy the metrics.Gauge interface.
func ( g * CollectingGauge ) With ( labelValues ... string ) metrics . Gauge {
g . LastLabelValues = labelValues
return g
}
// Set is there to satisfy the metrics.Gauge interface.
2018-04-16 11:28:04 +03:00
func ( g * CollectingGauge ) Set ( value float64 ) {
g . GaugeValue = value
}
// Add is there to satisfy the metrics.Gauge interface.
func ( g * CollectingGauge ) Add ( delta float64 ) {
2018-01-26 13:58:03 +03:00
g . GaugeValue = delta
}
// CollectingHealthCheckMetrics can be used for testing the Metrics instrumentation of the HealthCheck package.
type CollectingHealthCheckMetrics struct {
Gauge * CollectingGauge
}
// BackendServerUpGauge is there to satisfy the healthcheck.metricsRegistry interface.
func ( m * CollectingHealthCheckMetrics ) BackendServerUpGauge ( ) metrics . Gauge {
return m . Gauge
}
2018-06-05 13:32:03 +03:00
// NewCollectingHealthCheckMetrics creates a new CollectingHealthCheckMetrics instance.
func NewCollectingHealthCheckMetrics ( ) * CollectingHealthCheckMetrics {
return & CollectingHealthCheckMetrics { & CollectingGauge { } }
}