2013-01-04 16:55:58 +00:00
// Copyright 2013 Prometheus Team
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package retrieval
import (
2013-04-28 17:40:30 +00:00
"github.com/prometheus/client_golang/prometheus"
2013-01-04 16:55:58 +00:00
)
2013-01-23 16:18:45 +00:00
const (
address = "instance"
alive = "alive"
failure = "failure"
outcome = "outcome"
state = "state"
success = "success"
unreachable = "unreachable"
)
2013-01-04 16:55:58 +00:00
var (
2013-04-28 17:40:30 +00:00
networkLatencyHistogram = & prometheus . HistogramSpecification {
Starts : prometheus . LogarithmicSizedBucketsFor ( 0 , 1000 ) ,
BucketBuilder : prometheus . AccumulatingBucketBuilder ( prometheus . EvictAndReplaceWith ( 10 , prometheus . AverageReducer ) , 100 ) ,
2013-01-04 16:55:58 +00:00
ReportablePercentiles : [ ] float64 { 0.01 , 0.05 , 0.5 , 0.90 , 0.99 } ,
}
2013-04-28 17:40:30 +00:00
targetOperationLatencies = prometheus . NewHistogram ( networkLatencyHistogram )
2013-01-04 16:55:58 +00:00
2013-04-28 17:40:30 +00:00
retrievalDurations = prometheus . NewHistogram ( & prometheus . HistogramSpecification {
Starts : prometheus . LogarithmicSizedBucketsFor ( 0 , 10000 ) ,
BucketBuilder : prometheus . AccumulatingBucketBuilder ( prometheus . EvictAndReplaceWith ( 10 , prometheus . AverageReducer ) , 100 ) ,
2013-01-28 15:36:28 +00:00
ReportablePercentiles : [ ] float64 { 0.01 , 0.05 , 0.5 , 0.90 , 0.99 } } )
2013-01-22 17:37:01 +00:00
2014-01-24 15:05:30 +00:00
targetOperations = prometheus . NewCounter ( )
2013-12-14 01:50:48 +00:00
dnsSDLookupsCount = prometheus . NewCounter ( )
2013-01-04 16:55:58 +00:00
)
2013-12-14 01:50:48 +00:00
func recordOutcome ( err error ) {
message := success
if err != nil {
message = failure
}
dnsSDLookupsCount . Increment ( map [ string ] string { outcome : message } )
}
2013-01-04 16:55:58 +00:00
func init ( ) {
2013-04-28 17:40:30 +00:00
prometheus . Register ( "prometheus_target_operations_total" , "The total numbers of operations of the various targets that are being monitored." , prometheus . NilLabels , targetOperations )
prometheus . Register ( "prometheus_target_operation_latency_ms" , "The latencies for various target operations." , prometheus . NilLabels , targetOperationLatencies )
prometheus . Register ( "prometheus_targetpool_duration_ms" , "The durations for each TargetPool to retrieve state from all included entities." , prometheus . NilLabels , retrievalDurations )
2013-12-14 01:50:48 +00:00
prometheus . Register ( "prometheus_dns_sd_lookups_total" , "The number of DNS-SD lookup successes/failures per pool." , prometheus . NilLabels , dnsSDLookupsCount )
2013-01-04 16:55:58 +00:00
}