mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #9820 from gyuho/quota-size
*: add "etcd_server_quota_backend_bytes" metric
This commit is contained in:
commit
d6ff23e669
@ -84,6 +84,12 @@ var (
|
||||
Name: "lease_expired_total",
|
||||
Help: "The total number of expired leases.",
|
||||
})
|
||||
quotaBackendBytes = prometheus.NewGauge(prometheus.GaugeOpts{
|
||||
Namespace: "etcd",
|
||||
Subsystem: "server",
|
||||
Name: "quota_backend_bytes",
|
||||
Help: "Current backend storage quota size in bytes.",
|
||||
})
|
||||
currentVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{
|
||||
Namespace: "etcd",
|
||||
Subsystem: "server",
|
||||
@ -104,6 +110,7 @@ func init() {
|
||||
prometheus.MustRegister(proposalsPending)
|
||||
prometheus.MustRegister(proposalsFailed)
|
||||
prometheus.MustRegister(leaseExpired)
|
||||
prometheus.MustRegister(quotaBackendBytes)
|
||||
prometheus.MustRegister(currentVersion)
|
||||
|
||||
currentVersion.With(prometheus.Labels{
|
||||
|
@ -62,6 +62,7 @@ const (
|
||||
|
||||
func NewBackendQuota(s *EtcdServer, name string) Quota {
|
||||
lg := s.getLogger()
|
||||
quotaBackendBytes.Set(float64(s.Cfg.QuotaBackendBytes))
|
||||
|
||||
if s.Cfg.QuotaBackendBytes < 0 {
|
||||
// disable quotas if negative
|
||||
@ -87,6 +88,7 @@ func NewBackendQuota(s *EtcdServer, name string) Quota {
|
||||
zap.String("quota-size", humanize.Bytes(uint64(DefaultQuotaBytes))),
|
||||
)
|
||||
}
|
||||
quotaBackendBytes.Set(float64(DefaultQuotaBytes))
|
||||
return &backendQuota{s, DefaultQuotaBytes}
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/coreos/etcd/etcdserver"
|
||||
|
||||
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
|
||||
"github.com/coreos/etcd/pkg/testutil"
|
||||
)
|
||||
@ -145,3 +147,21 @@ func testMetricDbSizeDefrag(t *testing.T, name string) {
|
||||
t.Fatalf("db size in use (%d) is expected less than db size (%d) after defrag", adiu, av)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMetricQuotaBackendBytes(t *testing.T) {
|
||||
defer testutil.AfterTest(t)
|
||||
clus := NewClusterV3(t, &ClusterConfig{Size: 1})
|
||||
defer clus.Terminate(t)
|
||||
|
||||
qs, err := clus.Members[0].Metric("etcd_server_quota_backend_bytes")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
qv, err := strconv.ParseFloat(qs, 64)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if int64(qv) != etcdserver.DefaultQuotaBytes {
|
||||
t.Fatalf("expected %d, got %f", etcdserver.DefaultQuotaBytes, qv)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user