layer1: add namespace manager summary

This commit is contained in:
Naeel
2026-04-26 10:55:56 +03:00
parent 67db8d71f1
commit 5c481b7293
5 changed files with 74 additions and 0 deletions
+14
View File
@@ -59,6 +59,7 @@ func (s NamespaceSubscriberFuncs) OnNamespaceResync(ctx context.Context, record
type NamespaceManager interface {
Snapshot() []string
SnapshotRecords() []NamespaceRecord
Summary() NamespaceManagerSummary
Get(name string) (NamespaceRecord, bool)
Bootstrap(namespaces []string, source NamespaceSource, observedAt time.Time) []NamespaceRecord
BootstrapAndDispatch(ctx context.Context, namespaces []string, source NamespaceSource, observedAt time.Time) ([]NamespaceRecord, error)
@@ -240,6 +241,19 @@ func StartManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, compo
})
}
func (m *inMemoryNamespaceManager) Summary() NamespaceManagerSummary {
records := m.SnapshotRecords()
summary := NamespaceManagerSummary{
TotalNamespaces: len(records),
PhaseCounts: make(map[NamespacePhase]int),
Subscribers: m.SnapshotSubscribers(),
}
for _, record := range records {
summary.PhaseCounts[record.Phase]++
}
return summary
}
func (m *inMemoryNamespaceManager) Subscribe(subscriber NamespaceSubscriber) {
m.mu.Lock()
defer m.mu.Unlock()