Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions fracmanager/fracs_stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@ type fracsStats struct {
totalSizeOnDisk uint64 // Total storage size, including documents, index and metadata
}

func (s *fracsStats) Set(info *common.Info) {
s.count = 1
s.docsCount = uint64(info.DocsTotal)
s.docsSizeRaw = info.DocsRaw
s.docsSizeOnDisk = info.DocsOnDisk
s.indexSizeOnDisk = info.IndexOnDisk + info.MetaOnDisk
s.totalSizeOnDisk = info.FullSize()
}

// Add incorporates fraction information into the statistics
// Updates all aggregate metrics with the values from the provided fraction info
func (s *fracsStats) Add(info *common.Info) {
Expand Down Expand Up @@ -64,20 +73,23 @@ func (s *fracsStats) SetMetrics(metric *prometheus.GaugeVec, stage string) {
// registryStats contains statistical data for all fraction queues
// Used for monitoring and memory management decisions
type registryStats struct {
active fracsStats // Statistics for active fraction
sealing fracsStats // Statistics for fractions in the sealing process
sealed fracsStats // Statistics for fractions on sealed disk
offloading fracsStats // Statistics for fractions in the offloading process
remotes fracsStats // Statistics for fractions in remote storage
}

func (s *registryStats) Log() {
s.active.Log("active")
s.sealing.Log("sealing")
s.sealed.Log("sealed")
s.offloading.Log("offloading")
s.remotes.Log("remotes")
}

func (s *registryStats) SetMetrics() {
s.active.SetMetrics(dataSizeTotal, "active")
s.sealing.SetMetrics(dataSizeTotal, "sealing")
s.sealed.SetMetrics(dataSizeTotal, "sealed")
s.offloading.SetMetrics(dataSizeTotal, "offloading")
Expand Down
2 changes: 2 additions & 0 deletions fracmanager/fraction_registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ func (r *fractionRegistry) AllFractions() []frac.Fraction {
func (r *fractionRegistry) Stats() registryStats {
r.mu.RLock()
defer r.mu.RUnlock()

r.stats.active.Set(r.active.instance.Info())
return r.stats
}

Expand Down
2 changes: 1 addition & 1 deletion fracmanager/lifecycle_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@ func (lc *lifecycleManager) SyncInfoCache() {
// seal converts an active fraction to sealed state.
// It freezes writes, waits for pending operations, then seals the fraction.
func (lc *lifecycleManager) seal(active *activeProxy) error {
sealsTotal.Inc()
now := time.Now()
sealed, err := lc.provider.Seal(active.instance)
if err != nil {
return err
}
sealsTotal.Inc()
sealingTime := time.Since(now)
sealsDoneSeconds.Observe(sealingTime.Seconds())

Expand Down
Loading