Codebase list golang-github-go-kit-kit / dff50435-7a33-4f0c-bbdc-f455eb10d80a/v0.2.0 metrics / scaled_histogram.go
dff50435-7a33-4f0c-bbdc-f455eb10d80a/v0.2.0

Tree @dff50435-7a33-4f0c-bbdc-f455eb10d80a/v0.2.0 (Download .tar.gz)

scaled_histogram.go @dff50435-7a33-4f0c-bbdc-f455eb10d80a/v0.2.0raw · history · blame

package metrics

type scaledHistogram struct {
	Histogram
	scale int64
}

// NewScaledHistogram returns a Histogram whose observed values are downscaled
// (divided) by scale.
func NewScaledHistogram(h Histogram, scale int64) Histogram {
	return scaledHistogram{h, scale}
}

func (h scaledHistogram) With(f Field) Histogram {
	return scaledHistogram{
		Histogram: h.Histogram.With(f),
		scale:     h.scale,
	}
}

func (h scaledHistogram) Observe(value int64) {
	h.Histogram.Observe(value / h.scale)
}