blob: 02fff84be7c4f50924d54fb753c0ac66acea2ea0 [file] [log] [blame]
khenaidoo59ce9dd2019-11-11 13:05:32 -05001// Copyright 2015 The etcd Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package rafthttp
16
17import "github.com/prometheus/client_golang/prometheus"
18
19var (
20 activePeers = prometheus.NewGaugeVec(prometheus.GaugeOpts{
21 Namespace: "etcd",
22 Subsystem: "network",
23 Name: "active_peers",
24 Help: "The current number of active peer connections.",
25 },
26 []string{"Local", "Remote"},
27 )
28
29 disconnectedPeers = prometheus.NewCounterVec(prometheus.CounterOpts{
30 Namespace: "etcd",
31 Subsystem: "network",
32 Name: "disconnected_peers_total",
33 Help: "The total number of disconnected peers.",
34 },
35 []string{"Local", "Remote"},
36 )
37
38 sentBytes = prometheus.NewCounterVec(prometheus.CounterOpts{
39 Namespace: "etcd",
40 Subsystem: "network",
41 Name: "peer_sent_bytes_total",
42 Help: "The total number of bytes sent to peers.",
43 },
44 []string{"To"},
45 )
46
47 receivedBytes = prometheus.NewCounterVec(prometheus.CounterOpts{
48 Namespace: "etcd",
49 Subsystem: "network",
50 Name: "peer_received_bytes_total",
51 Help: "The total number of bytes received from peers.",
52 },
53 []string{"From"},
54 )
55
56 sentFailures = prometheus.NewCounterVec(prometheus.CounterOpts{
57 Namespace: "etcd",
58 Subsystem: "network",
59 Name: "peer_sent_failures_total",
60 Help: "The total number of send failures from peers.",
61 },
62 []string{"To"},
63 )
64
65 recvFailures = prometheus.NewCounterVec(prometheus.CounterOpts{
66 Namespace: "etcd",
67 Subsystem: "network",
68 Name: "peer_received_failures_total",
69 Help: "The total number of receive failures from peers.",
70 },
71 []string{"From"},
72 )
73
74 snapshotSend = prometheus.NewCounterVec(prometheus.CounterOpts{
75 Namespace: "etcd",
76 Subsystem: "network",
77 Name: "snapshot_send_success",
78 Help: "Total number of successful snapshot sends",
79 },
80 []string{"To"},
81 )
82
83 snapshotSendInflights = prometheus.NewGaugeVec(prometheus.GaugeOpts{
84 Namespace: "etcd",
85 Subsystem: "network",
86 Name: "snapshot_send_inflights_total",
87 Help: "Total number of inflight snapshot sends",
88 },
89 []string{"To"},
90 )
91
92 snapshotSendFailures = prometheus.NewCounterVec(prometheus.CounterOpts{
93 Namespace: "etcd",
94 Subsystem: "network",
95 Name: "snapshot_send_failures",
96 Help: "Total number of snapshot send failures",
97 },
98 []string{"To"},
99 )
100
101 snapshotSendSeconds = prometheus.NewHistogramVec(prometheus.HistogramOpts{
102 Namespace: "etcd",
103 Subsystem: "network",
104 Name: "snapshot_send_total_duration_seconds",
105 Help: "Total latency distributions of v3 snapshot sends",
106
107 // lowest bucket start of upper bound 0.1 sec (100 ms) with factor 2
108 // highest bucket start of 0.1 sec * 2^9 == 51.2 sec
109 Buckets: prometheus.ExponentialBuckets(0.1, 2, 10),
110 },
111 []string{"To"},
112 )
113
114 snapshotReceive = prometheus.NewCounterVec(prometheus.CounterOpts{
115 Namespace: "etcd",
116 Subsystem: "network",
117 Name: "snapshot_receive_success",
118 Help: "Total number of successful snapshot receives",
119 },
120 []string{"From"},
121 )
122
123 snapshotReceiveInflights = prometheus.NewGaugeVec(prometheus.GaugeOpts{
124 Namespace: "etcd",
125 Subsystem: "network",
126 Name: "snapshot_receive_inflights_total",
127 Help: "Total number of inflight snapshot receives",
128 },
129 []string{"From"},
130 )
131
132 snapshotReceiveFailures = prometheus.NewCounterVec(prometheus.CounterOpts{
133 Namespace: "etcd",
134 Subsystem: "network",
135 Name: "snapshot_receive_failures",
136 Help: "Total number of snapshot receive failures",
137 },
138 []string{"From"},
139 )
140
141 snapshotReceiveSeconds = prometheus.NewHistogramVec(prometheus.HistogramOpts{
142 Namespace: "etcd",
143 Subsystem: "network",
144 Name: "snapshot_receive_total_duration_seconds",
145 Help: "Total latency distributions of v3 snapshot receives",
146
147 // lowest bucket start of upper bound 0.1 sec (100 ms) with factor 2
148 // highest bucket start of 0.1 sec * 2^9 == 51.2 sec
149 Buckets: prometheus.ExponentialBuckets(0.1, 2, 10),
150 },
151 []string{"From"},
152 )
153
154 rttSec = prometheus.NewHistogramVec(prometheus.HistogramOpts{
155 Namespace: "etcd",
156 Subsystem: "network",
157 Name: "peer_round_trip_time_seconds",
158 Help: "Round-Trip-Time histogram between peers",
159
160 // lowest bucket start of upper bound 0.0001 sec (0.1 ms) with factor 2
161 // highest bucket start of 0.0001 sec * 2^15 == 3.2768 sec
162 Buckets: prometheus.ExponentialBuckets(0.0001, 2, 16),
163 },
164 []string{"To"},
165 )
166)
167
168func init() {
169 prometheus.MustRegister(activePeers)
170 prometheus.MustRegister(disconnectedPeers)
171 prometheus.MustRegister(sentBytes)
172 prometheus.MustRegister(receivedBytes)
173 prometheus.MustRegister(sentFailures)
174 prometheus.MustRegister(recvFailures)
175
176 prometheus.MustRegister(snapshotSend)
177 prometheus.MustRegister(snapshotSendInflights)
178 prometheus.MustRegister(snapshotSendFailures)
179 prometheus.MustRegister(snapshotSendSeconds)
180 prometheus.MustRegister(snapshotReceive)
181 prometheus.MustRegister(snapshotReceiveInflights)
182 prometheus.MustRegister(snapshotReceiveFailures)
183 prometheus.MustRegister(snapshotReceiveSeconds)
184
185 prometheus.MustRegister(rttSec)
186}