mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
snap: export durations of marshalling cost during snapshot save
Currently, total duration of snapshot saving is exported for prometheus. For more detailed analysis, this commit let etcd export durations of marshalling for prometheus.
This commit is contained in:
parent
28b61acd9e
commit
7a6d33620f
@ -18,15 +18,22 @@ import "github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/clien
|
||||
|
||||
var (
|
||||
// TODO: save_fsync latency?
|
||||
// TODO: save_encoding latency?
|
||||
saveDurations = prometheus.NewSummary(prometheus.SummaryOpts{
|
||||
Namespace: "etcd",
|
||||
Subsystem: "snapshot",
|
||||
Name: "save_total_durations_microseconds",
|
||||
Help: "The total latency distributions of save called by snapshot.",
|
||||
})
|
||||
|
||||
marshallingDurations = prometheus.NewSummary(prometheus.SummaryOpts{
|
||||
Namespace: "etcd",
|
||||
Subsystem: "snapshot",
|
||||
Name: "save_marshalling_durations_microseconds",
|
||||
Help: "The marshalling cost distributions of save called by snapshot.",
|
||||
})
|
||||
)
|
||||
|
||||
func init() {
|
||||
prometheus.MustRegister(saveDurations)
|
||||
prometheus.MustRegister(marshallingDurations)
|
||||
}
|
||||
|
@ -73,7 +73,10 @@ func (s *Snapshotter) save(snapshot *raftpb.Snapshot) error {
|
||||
d, err := snap.Marshal()
|
||||
if err != nil {
|
||||
return err
|
||||
} else {
|
||||
marshallingDurations.Observe(float64(time.Since(start).Nanoseconds() / int64(time.Microsecond)))
|
||||
}
|
||||
|
||||
err = ioutil.WriteFile(path.Join(s.dir, fname), d, 0666)
|
||||
if err == nil {
|
||||
saveDurations.Observe(float64(time.Since(start).Nanoseconds() / int64(time.Microsecond)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user