"github.com/prometheus/client_golang/maths" "github.com/prometheus/client_golang/metrics" "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 ( 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), ReportablePercentiles: []float64{0.01, 0.05, 0.5, 0.9, 0.99}, }) startTime = metrics.NewGauge() ) func init() { startTime.Set(nil, float64(time.Now().Unix())) 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)
"github.com/prometheus/client_golang/metrics" ) const ( address = "instance" alive = "alive" failure = "failure" outcome = "outcome" state = "state" success = "success" unreachable = "unreachable" ) var ( networkLatencyHistogram = &metrics.HistogramSpecification{ Starts: metrics.LogarithmicSizedBucketsFor(0, 1000), BucketBuilder: metrics.AccumulatingBucketBuilder(metrics.EvictAndReplaceWith(10, maths.Average), 100), ReportablePercentiles: []float64{0.01, 0.05, 0.5, 0.90, 0.99}, } targetOperationLatencies = metrics.NewHistogram(networkLatencyHistogram) retrievalDurations = metrics.NewHistogram(&metrics.HistogramSpecification{ Starts: metrics.LogarithmicSizedBucketsFor(0, 10000), BucketBuilder: metrics.AccumulatingBucketBuilder(metrics.EvictAndReplaceWith(10, maths.Average), 100), ReportablePercentiles: []float64{0.01, 0.05, 0.5, 0.90, 0.99}}) targetOperations = metrics.NewCounter() ) func init() {