2013-01-18 18:47:40 +04:00
/ *
Copyright ( c ) 2013 , Matt T . Proud
All rights reserved .
Use of this source code is governed by a BSD - style license that can be found in
the LICENSE file .
* /
package registry
import (
2013-01-25 20:50:41 +04:00
"github.com/prometheus/client_golang/maths"
"github.com/prometheus/client_golang/metrics"
2013-01-18 18:47:40 +04:00
"time"
)
/ *
Boilerplate metrics about the metrics reporting subservice . These are only
exposed if the DefaultRegistry ' s exporter is hooked into the HTTP request
handler .
* /
var (
2013-01-19 17:48:30 +04:00
marshalErrorCount = metrics . NewCounter ( )
dumpErrorCount = metrics . NewCounter ( )
requestCount = metrics . NewCounter ( )
requestLatencyBuckets = metrics . LogarithmicSizedBucketsFor ( 0 , 1000 )
requestLatency = metrics . NewHistogram ( & metrics . HistogramSpecification {
Starts : requestLatencyBuckets ,
BucketBuilder : metrics . AccumulatingBucketBuilder ( metrics . EvictAndReplaceWith ( 50 , maths . Average ) , 1000 ) ,
2013-01-18 18:47:40 +04:00
ReportablePercentiles : [ ] float64 { 0.01 , 0.05 , 0.5 , 0.9 , 0.99 } ,
} )
2013-01-19 17:48:30 +04:00
startTime = metrics . NewGauge ( )
2013-01-18 18:47:40 +04:00
)
func init ( ) {
2013-01-19 17:48:30 +04:00
startTime . Set ( nil , float64 ( time . Now ( ) . Unix ( ) ) )
2013-01-18 18:47:40 +04:00
2013-01-19 17:48:30 +04:00
DefaultRegistry . Register ( "telemetry_requests_metrics_total" , "A counter of the total requests made against the telemetry system." , NilLabels , requestCount )
DefaultRegistry . Register ( "telemetry_requests_metrics_latency_microseconds" , "A histogram of the response latency for requests made against the telemetry system." , NilLabels , requestLatency )
2013-01-18 18:47:40 +04:00
DefaultRegistry . Register ( "instance_start_time_seconds" , "The time at which the current instance started (UTC)." , NilLabels , startTime )
}