go.etcd.io/etcd@v3.3.27+incompatible/snap/metrics.go (about) 1 // 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 15 package snap 16 17 import "github.com/prometheus/client_golang/prometheus" 18 19 var ( 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 60 func init() { 61 prometheus.MustRegister(saveDurations) 62 prometheus.MustRegister(marshallingDurations) 63 prometheus.MustRegister(snapDBSaveSec) 64 prometheus.MustRegister(snapDBFsyncSec) 65 }