diff --git a/app/vmstorage/main.go b/app/vmstorage/main.go index 7935e5b060..511207d553 100644 --- a/app/vmstorage/main.go +++ b/app/vmstorage/main.go @@ -312,6 +312,9 @@ func registerStorageMetrics(strg *storage.Storage) { metrics.NewGauge(`vm_cache_entries{type="storage/date_metricID"}`, func() float64 { return float64(m().DateMetricIDCacheSize) }) + metrics.NewGauge(`vm_cache_entries{type="storage/hour_metric_ids"}`, func() float64 { + return float64(m().HourMetricIDCacheSize) + }) metrics.NewGauge(`vm_cache_entries{type="storage/bigIndexBlocks"}`, func() float64 { return float64(tm().BigIndexBlocksCacheSize) }) diff --git a/lib/storage/storage.go b/lib/storage/storage.go index 85ea1cc2d2..5c2bb828a0 100644 --- a/lib/storage/storage.go +++ b/lib/storage/storage.go @@ -295,6 +295,8 @@ type Metrics struct { DateMetricIDCacheMisses uint64 DateMetricIDCacheCollisions uint64 + HourMetricIDCacheSize uint64 + IndexDBMetrics IndexDBMetrics TableMetrics TableMetrics } @@ -338,6 +340,14 @@ func (s *Storage) UpdateMetrics(m *Metrics) { m.DateMetricIDCacheMisses += cs.Misses m.DateMetricIDCacheCollisions += cs.Collisions + hmCurr := s.currHourMetricIDs.Load().(*hourMetricIDs) + hmPrev := s.prevHourMetricIDs.Load().(*hourMetricIDs) + hourMetricIDsLen := len(hmPrev.m) + if len(hmCurr.m) > hourMetricIDsLen { + hourMetricIDsLen = len(hmCurr.m) + } + m.HourMetricIDCacheSize += uint64(hourMetricIDsLen) + s.idb().UpdateMetrics(&m.IndexDBMetrics) s.tb.UpdateMetrics(&m.TableMetrics) }