blob: d9641af7ae2341bac6747c5700f0670b3132f77a [file] [log] [blame]
khenaidooab1f7bd2019-11-14 14:00:27 -05001// Copyright 2016 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 backend
16
17import "github.com/prometheus/client_golang/prometheus"
18
19var (
20 commitSec = prometheus.NewHistogram(prometheus.HistogramOpts{
21 Namespace: "etcd",
22 Subsystem: "disk",
23 Name: "backend_commit_duration_seconds",
24 Help: "The latency distributions of commit called by backend.",
25
26 // lowest bucket start of upper bound 0.001 sec (1 ms) with factor 2
27 // highest bucket start of 0.001 sec * 2^13 == 8.192 sec
28 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
29 })
30
31 rebalanceSec = prometheus.NewHistogram(prometheus.HistogramOpts{
32 Namespace: "etcd_debugging",
33 Subsystem: "disk",
34 Name: "backend_commit_rebalance_duration_seconds",
35 Help: "The latency distributions of commit.rebalance called by bboltdb backend.",
36
37 // lowest bucket start of upper bound 0.001 sec (1 ms) with factor 2
38 // highest bucket start of 0.001 sec * 2^13 == 8.192 sec
39 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
40 })
41
42 spillSec = prometheus.NewHistogram(prometheus.HistogramOpts{
43 Namespace: "etcd_debugging",
44 Subsystem: "disk",
45 Name: "backend_commit_spill_duration_seconds",
46 Help: "The latency distributions of commit.spill called by bboltdb backend.",
47
48 // lowest bucket start of upper bound 0.001 sec (1 ms) with factor 2
49 // highest bucket start of 0.001 sec * 2^13 == 8.192 sec
50 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
51 })
52
53 writeSec = prometheus.NewHistogram(prometheus.HistogramOpts{
54 Namespace: "etcd_debugging",
55 Subsystem: "disk",
56 Name: "backend_commit_write_duration_seconds",
57 Help: "The latency distributions of commit.write called by bboltdb backend.",
58
59 // lowest bucket start of upper bound 0.001 sec (1 ms) with factor 2
60 // highest bucket start of 0.001 sec * 2^13 == 8.192 sec
61 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
62 })
63
64 defragSec = prometheus.NewHistogram(prometheus.HistogramOpts{
65 Namespace: "etcd",
66 Subsystem: "disk",
67 Name: "backend_defrag_duration_seconds",
68 Help: "The latency distribution of backend defragmentation.",
69
70 // 100 MB usually takes 1 sec, so start with 10 MB of 100 ms
71 // lowest bucket start of upper bound 0.1 sec (100 ms) with factor 2
72 // highest bucket start of 0.1 sec * 2^12 == 409.6 sec
73 Buckets: prometheus.ExponentialBuckets(.1, 2, 13),
74 })
75
76 snapshotTransferSec = prometheus.NewHistogram(prometheus.HistogramOpts{
77 Namespace: "etcd",
78 Subsystem: "disk",
79 Name: "backend_snapshot_duration_seconds",
80 Help: "The latency distribution of backend snapshots.",
81
82 // lowest bucket start of upper bound 0.01 sec (10 ms) with factor 2
83 // highest bucket start of 0.01 sec * 2^16 == 655.36 sec
84 Buckets: prometheus.ExponentialBuckets(.01, 2, 17),
85 })
86)
87
88func init() {
89 prometheus.MustRegister(commitSec)
90 prometheus.MustRegister(rebalanceSec)
91 prometheus.MustRegister(spillSec)
92 prometheus.MustRegister(writeSec)
93 prometheus.MustRegister(defragSec)
94 prometheus.MustRegister(snapshotTransferSec)
95}