diff options
Diffstat (limited to 'middleware/metrics/metrics.go')
-rw-r--r-- | middleware/metrics/metrics.go | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/middleware/metrics/metrics.go b/middleware/metrics/metrics.go index 50aeaa52c..1c7db29d2 100644 --- a/middleware/metrics/metrics.go +++ b/middleware/metrics/metrics.go @@ -12,14 +12,16 @@ import ( ) var ( - requestCount *prometheus.CounterVec - requestDuration *prometheus.HistogramVec - requestSize *prometheus.HistogramVec - requestDo *prometheus.CounterVec - requestType *prometheus.CounterVec - - responseSize *prometheus.HistogramVec - responseRcode *prometheus.CounterVec + requestCount *prometheus.CounterVec + requestDuration *prometheus.HistogramVec + requestSize *prometheus.HistogramVec + requestTransferSize *prometheus.HistogramVec + requestDo *prometheus.CounterVec + requestType *prometheus.CounterVec + + responseSize *prometheus.HistogramVec + responseTransferSize *prometheus.HistogramVec + responseRcode *prometheus.CounterVec ) // Metrics holds the prometheus configuration. The metrics' path is fixed to be /metrics @@ -47,10 +49,12 @@ func (m *Metrics) Start() error { prometheus.MustRegister(requestCount) prometheus.MustRegister(requestDuration) prometheus.MustRegister(requestSize) + prometheus.MustRegister(requestTransferSize) prometheus.MustRegister(requestDo) prometheus.MustRegister(requestType) prometheus.MustRegister(responseSize) + prometheus.MustRegister(responseTransferSize) prometheus.MustRegister(responseRcode) m.mux.Handle(path, prometheus.Handler()) @@ -80,9 +84,9 @@ func define() { requestDuration = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: middleware.Namespace, Subsystem: subsystem, - Name: "request_duration_seconds", - Buckets: append([]float64{.0001, .0005, .001, .0025}, prometheus.DefBuckets...), - Help: "Histogram of the time (in seconds) each request took.", + Name: "request_duration_milliseconds", + Buckets: append(prometheus.DefBuckets, []float64{50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000}...), + Help: "Histogram of the time (in milliseconds) each request took.", }, []string{"zone"}) requestSize = prometheus.NewHistogramVec(prometheus.HistogramOpts{ @@ -93,6 +97,14 @@ func define() { Buckets: []float64{0, 100, 200, 300, 400, 511, 1023, 2047, 4095, 8291, 16e3, 32e3, 48e3, 64e3}, }, []string{"zone", "proto"}) + requestTransferSize = prometheus.NewHistogramVec(prometheus.HistogramOpts{ + Namespace: middleware.Namespace, + Subsystem: subsystem, + Name: "request_transfer_size_bytes", + Help: "Size of the incoming zone transfer in bytes.", + Buckets: []float64{0, 100, 200, 300, 400, 511, 1023, 2047, 4095, 8291, 16e3, 32e3, 48e3, 64e3}, + }, []string{"zone", "proto"}) + requestDo = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: middleware.Namespace, Subsystem: subsystem, @@ -111,7 +123,15 @@ func define() { Namespace: middleware.Namespace, Subsystem: subsystem, Name: "response_size_bytes", - Help: "Size of the returns response in bytes.", + Help: "Size of the returned response in bytes.", + Buckets: []float64{0, 100, 200, 300, 400, 511, 1023, 2047, 4095, 8291, 16e3, 32e3, 48e3, 64e3}, + }, []string{"zone", "proto"}) + + responseTransferSize = prometheus.NewHistogramVec(prometheus.HistogramOpts{ + Namespace: middleware.Namespace, + Subsystem: subsystem, + Name: "response_transfer_size_bytes", + Help: "Size of the returned zone transfer in bytes.", Buckets: []float64{0, 100, 200, 300, 400, 511, 1023, 2047, 4095, 8291, 16e3, 32e3, 48e3, 64e3}, }, []string{"zone", "proto"}) |