From 5b9d20871d9947afce373c680c4f4680c5addb6a Mon Sep 17 00:00:00 2001 From: Matthias Hanel Date: Thu, 16 Sep 2021 18:55:50 -0400 Subject: [PATCH] Exposing reserved memory in jsz/varz Signed-off-by: Matthias Hanel --- server/jetstream.go | 12 ++++++++---- server/monitor_test.go | 8 +++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/server/jetstream.go b/server/jetstream.go index 4e12637d..8dd92dee 100644 --- a/server/jetstream.go +++ b/server/jetstream.go @@ -49,10 +49,12 @@ type JetStreamConfig struct { } type JetStreamStats struct { - Memory uint64 `json:"memory"` - Store uint64 `json:"storage"` - Accounts int `json:"accounts,omitempty"` - API JetStreamAPIStats `json:"api"` + Memory uint64 `json:"memory"` + Store uint64 `json:"storage"` + Accounts int `json:"accounts,omitempty"` + API JetStreamAPIStats `json:"api"` + ReservedMemory uint64 `json:"reserved_memory"` + ReservedStore uint64 `json:"reserved_storage"` } type JetStreamAccountLimits struct { @@ -1645,6 +1647,8 @@ func (js *jetStream) usageStats() *JetStreamStats { var stats JetStreamStats js.mu.RLock() stats.Accounts = len(js.accounts) + stats.ReservedMemory = (uint64)(js.memReserved) + stats.ReservedStore = (uint64)(js.storeReserved) js.mu.RUnlock() stats.API.Total = (uint64)(atomic.LoadInt64(&js.apiCalls)) stats.API.Errors = (uint64)(atomic.LoadInt64(&js.apiErrors)) diff --git a/server/monitor_test.go b/server/monitor_test.go index 2f267349..9c932c3d 100644 --- a/server/monitor_test.go +++ b/server/monitor_test.go @@ -3959,7 +3959,7 @@ func TestMonitorJsz(t *testing.T) { } ACC { users [{user: usr, password: pwd}] - jetstream: enabled + jetstream: {max_store: 4Mb, max_memory: 5Mb} } BCC_TO_HAVE_ONE_EXTRA { users [{user: usr2, password: pwd}] @@ -4034,6 +4034,12 @@ func TestMonitorJsz(t *testing.T) { if info.Messages != 1 { t.Fatalf("expected one message but got %d", info.Messages) } + if info.ReservedStore != 4*1024*1024 { + t.Fatalf("expected 4Mb reserved, got %d bytes", info.ReservedStore) + } + if info.ReservedMemory != 5*1024*1024 { + t.Fatalf("expected 5Mb reserved, got %d bytes", info.ReservedStore) + } } }) t.Run("accounts", func(t *testing.T) {