blob: 0d3b7e63e5e854f7c772e03a88395bcfcffa025e [file] [log] [blame]
khenaidood948f772021-08-11 17:49:24 -04001// 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 snap
16
17import "github.com/prometheus/client_golang/prometheus"
18
19var (
20 // TODO: save_fsync latency?
21 saveDurations = prometheus.NewHistogram(prometheus.HistogramOpts{
22 Namespace: "etcd_debugging",
23 Subsystem: "snap",
24 Name: "save_total_duration_seconds",
25 Help: "The total latency distributions of save called by snapshot.",
26 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
27 })
28
29 marshallingDurations = prometheus.NewHistogram(prometheus.HistogramOpts{
30 Namespace: "etcd_debugging",
31 Subsystem: "snap",
32 Name: "save_marshalling_duration_seconds",
33 Help: "The marshalling cost distributions of save called by snapshot.",
34 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
35 })
36
37 snapDBSaveSec = prometheus.NewHistogram(prometheus.HistogramOpts{
38 Namespace: "etcd",
39 Subsystem: "snap_db",
40 Name: "save_total_duration_seconds",
41 Help: "The total latency distributions of v3 snapshot save",
42
43 // lowest bucket start of upper bound 0.1 sec (100 ms) with factor 2
44 // highest bucket start of 0.1 sec * 2^9 == 51.2 sec
45 Buckets: prometheus.ExponentialBuckets(0.1, 2, 10),
46 })
47
48 snapDBFsyncSec = prometheus.NewHistogram(prometheus.HistogramOpts{
49 Namespace: "etcd",
50 Subsystem: "snap_db",
51 Name: "fsync_duration_seconds",
52 Help: "The latency distributions of fsyncing .snap.db file",
53
54 // lowest bucket start of upper bound 0.001 sec (1 ms) with factor 2
55 // highest bucket start of 0.001 sec * 2^13 == 8.192 sec
56 Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
57 })
58)
59
60func init() {
61 prometheus.MustRegister(saveDurations)
62 prometheus.MustRegister(marshallingDurations)
63 prometheus.MustRegister(snapDBSaveSec)
64 prometheus.MustRegister(snapDBFsyncSec)
65}