From fc010ee86b431231dc9750fad4cff6b20c8b0757 Mon Sep 17 00:00:00 2001 From: "yihao.dai" Date: Sun, 7 May 2023 20:52:38 +0800 Subject: [PATCH] Improve the metric of stored binlog size to the level of collection and segment (#23859) Signed-off-by: bigsheeper --- internal/datacoord/meta.go | 7 ++----- pkg/metrics/datacoord_metrics.go | 9 ++++++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/internal/datacoord/meta.go b/internal/datacoord/meta.go index aff41ecd2e..e691853b91 100644 --- a/internal/datacoord/meta.go +++ b/internal/datacoord/meta.go @@ -257,7 +257,6 @@ func (m *meta) GetCollectionBinlogSize() (int64, map[UniqueID]int64) { m.RLock() defer m.RUnlock() collectionBinlogSize := make(map[UniqueID]int64) - sizesOfStates := make(map[commonpb.SegmentState]int64) segments := m.segments.GetSegments() var total int64 for _, segment := range segments { @@ -266,10 +265,8 @@ func (m *meta) GetCollectionBinlogSize() (int64, map[UniqueID]int64) { total += segmentSize collectionBinlogSize[segment.GetCollectionID()] += segmentSize } - sizesOfStates[segment.GetState()] += segmentSize - } - for state, size := range sizesOfStates { - metrics.DataCoordStoredBinlogSize.WithLabelValues(state.String()).Set(float64(size)) + metrics.DataCoordStoredBinlogSize.WithLabelValues( + fmt.Sprint(segment.GetCollectionID()), fmt.Sprint(segment.GetID())).Set(float64(segmentSize)) } return total, collectionBinlogSize } diff --git a/pkg/metrics/datacoord_metrics.go b/pkg/metrics/datacoord_metrics.go index e03be006d5..f6efae92ac 100644 --- a/pkg/metrics/datacoord_metrics.go +++ b/pkg/metrics/datacoord_metrics.go @@ -96,7 +96,10 @@ var ( Subsystem: typeutil.DataCoordRole, Name: "stored_binlog_size", Help: "binlog size of segments", - }, []string{segmentStateLabelName}) + }, []string{ + collectionIDLabelName, + segmentIDLabelName, + }) DataCoordSegmentBinLogFileCount = prometheus.NewGaugeVec( prometheus.GaugeOpts{ @@ -204,4 +207,8 @@ func CleanupDataCoordSegmentMetrics(collectionID int64, segmentID int64) { collectionIDLabelName: fmt.Sprint(collectionID), segmentIDLabelName: fmt.Sprint(segmentID), }) + DataCoordStoredBinlogSize.Delete(prometheus.Labels{ + collectionIDLabelName: fmt.Sprint(collectionID), + segmentIDLabelName: fmt.Sprint(segmentID), + }) }