Skip to content

Commit d6ff23e

Browse files
authored
Merge pull request #9820 from gyuho/quota-size
*: add "etcd_server_quota_backend_bytes" metric
2 parents a9aafc8 + 184372c commit d6ff23e

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

etcdserver/metrics.go

+7
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ var (
8484
Name: "lease_expired_total",
8585
Help: "The total number of expired leases.",
8686
})
87+
quotaBackendBytes = prometheus.NewGauge(prometheus.GaugeOpts{
88+
Namespace: "etcd",
89+
Subsystem: "server",
90+
Name: "quota_backend_bytes",
91+
Help: "Current backend storage quota size in bytes.",
92+
})
8793
currentVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{
8894
Namespace: "etcd",
8995
Subsystem: "server",
@@ -104,6 +110,7 @@ func init() {
104110
prometheus.MustRegister(proposalsPending)
105111
prometheus.MustRegister(proposalsFailed)
106112
prometheus.MustRegister(leaseExpired)
113+
prometheus.MustRegister(quotaBackendBytes)
107114
prometheus.MustRegister(currentVersion)
108115

109116
currentVersion.With(prometheus.Labels{

etcdserver/quota.go

+2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ const (
6262

6363
func NewBackendQuota(s *EtcdServer, name string) Quota {
6464
lg := s.getLogger()
65+
quotaBackendBytes.Set(float64(s.Cfg.QuotaBackendBytes))
6566

6667
if s.Cfg.QuotaBackendBytes < 0 {
6768
// disable quotas if negative
@@ -87,6 +88,7 @@ func NewBackendQuota(s *EtcdServer, name string) Quota {
8788
zap.String("quota-size", humanize.Bytes(uint64(DefaultQuotaBytes))),
8889
)
8990
}
91+
quotaBackendBytes.Set(float64(DefaultQuotaBytes))
9092
return &backendQuota{s, DefaultQuotaBytes}
9193
}
9294

integration/metrics_test.go

+20
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"testing"
2121
"time"
2222

23+
"github.com/coreos/etcd/etcdserver"
24+
2325
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
2426
"github.com/coreos/etcd/pkg/testutil"
2527
)
@@ -145,3 +147,21 @@ func testMetricDbSizeDefrag(t *testing.T, name string) {
145147
t.Fatalf("db size in use (%d) is expected less than db size (%d) after defrag", adiu, av)
146148
}
147149
}
150+
151+
func TestMetricQuotaBackendBytes(t *testing.T) {
152+
defer testutil.AfterTest(t)
153+
clus := NewClusterV3(t, &ClusterConfig{Size: 1})
154+
defer clus.Terminate(t)
155+
156+
qs, err := clus.Members[0].Metric("etcd_server_quota_backend_bytes")
157+
if err != nil {
158+
t.Fatal(err)
159+
}
160+
qv, err := strconv.ParseFloat(qs, 64)
161+
if err != nil {
162+
t.Fatal(err)
163+
}
164+
if int64(qv) != etcdserver.DefaultQuotaBytes {
165+
t.Fatalf("expected %d, got %f", etcdserver.DefaultQuotaBytes, qv)
166+
}
167+
}

0 commit comments

Comments
 (0)