// Copyright 2015 The etcd Authors // // 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 rafthttp import "github.com/prometheus/client_golang/prometheus" var ( activePeers = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "network", Name: "active_peers", Help: "The current number of active peer connections.", }, []string{"Local", "Remote"}, ) disconnectedPeers = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "disconnected_peers_total", Help: "The total number of disconnected peers.", }, []string{"Local", "Remote"}, ) sentBytes = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "peer_sent_bytes_total", Help: "The total number of bytes sent to peers.", }, []string{"To"}, ) receivedBytes = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "peer_received_bytes_total", Help: "The total number of bytes received from peers.", }, []string{"From"}, ) sentFailures = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "peer_sent_failures_total", Help: "The total number of send failures from peers.", }, []string{"To"}, ) recvFailures = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "peer_received_failures_total", Help: "The total number of receive failures from peers.", }, []string{"From"}, ) snapshotSend = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_send_success", Help: "Total number of successful snapshot sends", }, []string{"To"}, ) snapshotSendInflights = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_send_inflights_total", Help: "Total number of inflight snapshot sends", }, []string{"To"}, ) snapshotSendFailures = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_send_failures", Help: "Total number of snapshot send failures", }, []string{"To"}, ) snapshotSendSeconds = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_send_total_duration_seconds", Help: "Total latency distributions of v3 snapshot sends", // lowest bucket start of upper bound 0.1 sec (100 ms) with factor 2 // highest bucket start of 0.1 sec * 2^9 == 51.2 sec Buckets: prometheus.ExponentialBuckets(0.1, 2, 10), }, []string{"To"}, ) snapshotReceive = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_receive_success", Help: "Total number of successful snapshot receives", }, []string{"From"}, ) snapshotReceiveInflights = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_receive_inflights_total", Help: "Total number of inflight snapshot receives", }, []string{"From"}, ) snapshotReceiveFailures = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_receive_failures", Help: "Total number of snapshot receive failures", }, []string{"From"}, ) snapshotReceiveSeconds = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: "etcd", Subsystem: "network", Name: "snapshot_receive_total_duration_seconds", Help: "Total latency distributions of v3 snapshot receives", // lowest bucket start of upper bound 0.1 sec (100 ms) with factor 2 // highest bucket start of 0.1 sec * 2^9 == 51.2 sec Buckets: prometheus.ExponentialBuckets(0.1, 2, 10), }, []string{"From"}, ) rttSec = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: "etcd", Subsystem: "network", Name: "peer_round_trip_time_seconds", Help: "Round-Trip-Time histogram between peers", // lowest bucket start of upper bound 0.0001 sec (0.1 ms) with factor 2 // highest bucket start of 0.0001 sec * 2^15 == 3.2768 sec Buckets: prometheus.ExponentialBuckets(0.0001, 2, 16), }, []string{"To"}, ) ) func init() { prometheus.MustRegister(activePeers) prometheus.MustRegister(disconnectedPeers) prometheus.MustRegister(sentBytes) prometheus.MustRegister(receivedBytes) prometheus.MustRegister(sentFailures) prometheus.MustRegister(recvFailures) prometheus.MustRegister(snapshotSend) prometheus.MustRegister(snapshotSendInflights) prometheus.MustRegister(snapshotSendFailures) prometheus.MustRegister(snapshotSendSeconds) prometheus.MustRegister(snapshotReceive) prometheus.MustRegister(snapshotReceiveInflights) prometheus.MustRegister(snapshotReceiveFailures) prometheus.MustRegister(snapshotReceiveSeconds) prometheus.MustRegister(rttSec) }