wal: use Histogram for syncDuration

This commit is contained in:
Xiang Li 2015-10-17 12:25:26 -07:00
parent fd07e02604
commit 1c7f52d931
3 changed files with 9 additions and 8 deletions

View File

@ -33,11 +33,11 @@ Failed proposals (`proposal_failed_total`) are normally related to two issues: t
### wal ### wal
| Name | Description | Type | | Name | Description | Type |
|------------------------------------|--------------------------------------------------|---------| |------------------------------------|--------------------------------------------------|-----------|
| fsync_durations_microseconds | The latency distributions of fsync called by wal | Summary | | fsync_durations_seconds | The latency distributions of fsync called by wal | Histogram |
| last_index_saved | The index of the last entry saved by wal | Gauge | | last_index_saved | The index of the last entry saved by wal | Gauge |
Abnormally high fsync duration (`fsync_durations_microseconds`) indicates disk issues and might cause the cluster to be unstable. Abnormally high fsync duration (`fsync_durations_seconds`) indicates disk issues and might cause the cluster to be unstable.
### http requests ### http requests

View File

@ -17,11 +17,12 @@ package wal
import "github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/client_golang/prometheus" import "github.com/coreos/etcd/Godeps/_workspace/src/github.com/prometheus/client_golang/prometheus"
var ( var (
syncDurations = prometheus.NewSummary(prometheus.SummaryOpts{ syncDurations = prometheus.NewHistogram(prometheus.HistogramOpts{
Namespace: "etcd", Namespace: "etcd",
Subsystem: "wal", Subsystem: "wal",
Name: "fsync_durations_microseconds", Name: "fsync_durations_seconds",
Help: "The latency distributions of fsync called by wal.", Help: "The latency distributions of fsync called by wal.",
Buckets: prometheus.ExponentialBuckets(0.001, 2, 14),
}) })
lastIndexSaved = prometheus.NewGauge(prometheus.GaugeOpts{ lastIndexSaved = prometheus.NewGauge(prometheus.GaugeOpts{
Namespace: "etcd", Namespace: "etcd",

View File

@ -403,7 +403,7 @@ func (w *WAL) sync() error {
} }
start := time.Now() start := time.Now()
err := w.f.Sync() err := w.f.Sync()
syncDurations.Observe(float64(time.Since(start).Nanoseconds() / int64(time.Microsecond))) syncDurations.Observe(float64(time.Since(start)) / float64(time.Second))
return err return err
} }