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",
|
Name: "lease_expired_total",
|
||||||
Help: "The total number of expired leases.",
|
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{
|
currentVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{
|
||||||
Namespace: "etcd",
|
Namespace: "etcd",
|
||||||
Subsystem: "server",
|
Subsystem: "server",
|
||||||
@ -104,6 +110,7 @@ func init() {
|
|||||||
prometheus.MustRegister(proposalsPending)
|
prometheus.MustRegister(proposalsPending)
|
||||||
prometheus.MustRegister(proposalsFailed)
|
prometheus.MustRegister(proposalsFailed)
|
||||||
prometheus.MustRegister(leaseExpired)
|
prometheus.MustRegister(leaseExpired)
|
||||||
|
prometheus.MustRegister(quotaBackendBytes)
|
||||||
prometheus.MustRegister(currentVersion)
|
prometheus.MustRegister(currentVersion)
|
||||||
|
|
||||||
currentVersion.With(prometheus.Labels{
|
currentVersion.With(prometheus.Labels{
|
||||||
|
@ -62,6 +62,7 @@ const (
|
|||||||
|
|
||||||
func NewBackendQuota(s *EtcdServer, name string) Quota {
|
func NewBackendQuota(s *EtcdServer, name string) Quota {
|
||||||
lg := s.getLogger()
|
lg := s.getLogger()
|
||||||
|
quotaBackendBytes.Set(float64(s.Cfg.QuotaBackendBytes))
|
||||||
|
|
||||||
if s.Cfg.QuotaBackendBytes < 0 {
|
if s.Cfg.QuotaBackendBytes < 0 {
|
||||||
// disable quotas if negative
|
// disable quotas if negative
|
||||||
@ -87,6 +88,7 @@ func NewBackendQuota(s *EtcdServer, name string) Quota {
|
|||||||
zap.String("quota-size", humanize.Bytes(uint64(DefaultQuotaBytes))),
|
zap.String("quota-size", humanize.Bytes(uint64(DefaultQuotaBytes))),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
quotaBackendBytes.Set(float64(DefaultQuotaBytes))
|
||||||
return &backendQuota{s, DefaultQuotaBytes}
|
return &backendQuota{s, DefaultQuotaBytes}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/coreos/etcd/etcdserver"
|
||||||
|
|
||||||
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
|
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
|
||||||
"github.com/coreos/etcd/pkg/testutil"
|
"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)
|
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