metrics.go
935 Bytes
package client
import (
metrics "github.com/rcrowley/go-metrics"
)
const (
sampleSize int = 1028
sampleAlpha float64 = 0.015
)
type ClientMetrics struct {
// metrics
connGauge metrics.Gauge
connMeter metrics.Meter
connTimer metrics.Timer
proxySetupTimer metrics.Timer
bytesIn metrics.Histogram
bytesOut metrics.Histogram
bytesInCount metrics.Counter
bytesOutCount metrics.Counter
}
func NewClientMetrics() *ClientMetrics {
return &ClientMetrics{
connGauge: metrics.NewGauge(),
connMeter: metrics.NewMeter(),
connTimer: metrics.NewTimer(),
proxySetupTimer: metrics.NewTimer(),
bytesIn: metrics.NewHistogram(metrics.NewExpDecaySample(sampleSize, sampleAlpha)),
bytesOut: metrics.NewHistogram(metrics.NewExpDecaySample(sampleSize, sampleAlpha)),
bytesInCount: metrics.NewCounter(),
bytesOutCount: metrics.NewCounter(),
}
}