From 817d2f40d10adb94adb0f178a6abefc04172eeab Mon Sep 17 00:00:00 2001 From: Geeta Gharpure Date: Mon, 27 Sep 2021 17:00:33 -0700 Subject: [PATCH 1/3] storage/backend: Add a gauge to indicate if defrag is active --- server/storage/backend/backend.go | 2 ++ server/storage/backend/metrics.go | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/server/storage/backend/backend.go b/server/storage/backend/backend.go index b7207c1717a..529f83b0f25 100644 --- a/server/storage/backend/backend.go +++ b/server/storage/backend/backend.go @@ -432,6 +432,8 @@ func (b *backend) Defrag() error { func (b *backend) defrag() error { now := time.Now() + isDefragActive.Set(1) + defer isDefragActive.Set(0) // TODO: make this non-blocking? // lock batchTx to ensure nobody is using previous tx, and then diff --git a/server/storage/backend/metrics.go b/server/storage/backend/metrics.go index d9641af7ae2..9d58c00638b 100644 --- a/server/storage/backend/metrics.go +++ b/server/storage/backend/metrics.go @@ -83,6 +83,13 @@ var ( // highest bucket start of 0.01 sec * 2^16 == 655.36 sec Buckets: prometheus.ExponentialBuckets(.01, 2, 17), }) + + isDefragActive = prometheus.NewGauge(prometheus.GaugeOpts{ + Namespace: "etcd", + Subsystem: "disk", + Name: "defrag_inflight", + Help: "Whether or not defrag is active on the member. 1 means active, 0 means not.", + }) ) func init() { @@ -92,4 +99,5 @@ func init() { prometheus.MustRegister(writeSec) prometheus.MustRegister(defragSec) prometheus.MustRegister(snapshotTransferSec) + prometheus.MustRegister(isDefragActive) } From 2d7a7d7da4dea74f5bbd0248a3a6ed47a042024f Mon Sep 17 00:00:00 2001 From: Geeta Gharpure Date: Sat, 2 Oct 2021 14:52:29 -0700 Subject: [PATCH 2/3] CHANGELOG - etcd_disk_defrag_inflight Add a gauge to indicate if defrag is active --- CHANGELOG-3.5.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG-3.5.md b/CHANGELOG-3.5.md index 974c1bde600..05b5e9a9386 100644 --- a/CHANGELOG-3.5.md +++ b/CHANGELOG-3.5.md @@ -122,6 +122,7 @@ Note that any `etcd_debugging_*` metrics are experimental and subject to change. - Add [`etcd_wal_write_bytes_total`](https://github.com/etcd-io/etcd/pull/11738). - Add [`etcd_debugging_auth_revision`](https://github.com/etcd-io/etcd/commit/f14d2a087f7b0fd6f7980b95b5e0b945109c95f3). - Add [`os_fd_used` and `os_fd_limit` to monitor current OS file descriptors](https://github.com/etcd-io/etcd/pull/12214). +- Add [`etcd_disk_defrag_inflight`](https://github.com/etcd-io/etcd/pull/13371). ### etcd server From 205720c69688f68d6cee0a2d1a56f49e954f56c6 Mon Sep 17 00:00:00 2001 From: Geeta Gharpure Date: Mon, 4 Oct 2021 12:52:20 -0700 Subject: [PATCH 3/3] CHANGELOG-3.6 Add etcd_disk_defrag_inflight to indicate if defrag is active --- CHANGELOG-3.5.md | 1 - CHANGELOG-3.6.md | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG-3.5.md b/CHANGELOG-3.5.md index 05b5e9a9386..974c1bde600 100644 --- a/CHANGELOG-3.5.md +++ b/CHANGELOG-3.5.md @@ -122,7 +122,6 @@ Note that any `etcd_debugging_*` metrics are experimental and subject to change. - Add [`etcd_wal_write_bytes_total`](https://github.com/etcd-io/etcd/pull/11738). - Add [`etcd_debugging_auth_revision`](https://github.com/etcd-io/etcd/commit/f14d2a087f7b0fd6f7980b95b5e0b945109c95f3). - Add [`os_fd_used` and `os_fd_limit` to monitor current OS file descriptors](https://github.com/etcd-io/etcd/pull/12214). -- Add [`etcd_disk_defrag_inflight`](https://github.com/etcd-io/etcd/pull/13371). ### etcd server diff --git a/CHANGELOG-3.6.md b/CHANGELOG-3.6.md index 360f25f4978..dac73f7a40d 100644 --- a/CHANGELOG-3.6.md +++ b/CHANGELOG-3.6.md @@ -28,3 +28,10 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0). - Package `mvcc/buckets` was moved to `storage/schema` - Package `wal` was moved to `storage/wal` - Package `datadir` was moved to `storage/datadir` + + +### Metrics, Monitoring + +See [List of metrics](https://etcd.io/docs/latest/metrics/) for all metrics per release. + +- Add [`etcd_disk_defrag_inflight`](https://github.com/etcd-io/etcd/pull/13371).