in aggregators/internal/telemetry/metrics.go [246:286]
func (i *Metrics) registerCallback(meter metric.Meter, provider pebbleProvider) (err error) {
i.registration, err = meter.RegisterCallback(func(ctx context.Context, obs metric.Observer) error {
pm := provider()
obs.ObserveInt64(i.pebbleMemtableTotalSize, int64(pm.MemTable.Size))
obs.ObserveInt64(i.pebbleTotalDiskUsage, int64(pm.DiskSpaceUsage()))
obs.ObserveInt64(i.pebbleFlushes, pm.Flush.Count)
obs.ObserveInt64(i.pebbleFlushedBytes, int64(pm.Levels[0].BytesFlushed))
obs.ObserveInt64(i.pebbleCompactions, pm.Compact.Count)
obs.ObserveInt64(i.pebblePendingCompaction, int64(pm.Compact.EstimatedDebt))
obs.ObserveInt64(i.pebbleMarkedForCompactionFiles, int64(pm.Compact.MarkedFiles))
obs.ObserveInt64(i.pebbleTableReadersMemEstimate, pm.TableCache.Size)
obs.ObserveInt64(i.pebbleKeysTombstones, int64(pm.Keys.TombstoneCount))
lm := pm.Total()
obs.ObserveInt64(i.pebbleNumSSTables, lm.NumFiles)
obs.ObserveInt64(i.pebbleIngestedBytes, int64(lm.BytesIngested))
obs.ObserveInt64(i.pebbleCompactedBytesRead, int64(lm.BytesRead))
obs.ObserveInt64(i.pebbleCompactedBytesWritten, int64(lm.BytesCompacted))
obs.ObserveInt64(i.pebbleReadAmplification, int64(lm.Sublevels))
return nil
},
i.pebbleMemtableTotalSize,
i.pebbleTotalDiskUsage,
i.pebbleFlushes,
i.pebbleFlushedBytes,
i.pebbleCompactions,
i.pebbleIngestedBytes,
i.pebbleCompactedBytesRead,
i.pebbleCompactedBytesWritten,
i.pebbleReadAmplification,
i.pebbleNumSSTables,
i.pebbleTableReadersMemEstimate,
i.pebblePendingCompaction,
i.pebbleMarkedForCompactionFiles,
i.pebbleKeysTombstones,
)
return
}