From bf54f47c346c86c923113daa27430f6b3ef2ee5c Mon Sep 17 00:00:00 2001 From: wei liu Date: Tue, 18 Feb 2025 14:32:52 +0800 Subject: [PATCH] enhance: [2.5] use rated logger for high frequency log in dist handler (#39452) (#39928) pr: #39452 Signed-off-by: Wei Liu --- .../balance/channel_level_score_balancer.go | 11 +++++---- .../balance/score_based_balancer.go | 18 +++++++------- internal/querycoordv2/dist/dist_handler.go | 24 +++++++++++-------- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/internal/querycoordv2/balance/channel_level_score_balancer.go b/internal/querycoordv2/balance/channel_level_score_balancer.go index 92d12f0b1f..f0a1e0b13c 100644 --- a/internal/querycoordv2/balance/channel_level_score_balancer.go +++ b/internal/querycoordv2/balance/channel_level_score_balancer.go @@ -180,11 +180,12 @@ func (b *ChannelLevelScoreBalancer) genSegmentPlan(ctx context.Context, br *bala if len(nodeItemsMap) == 0 { return nil } - log.Info("node workload status", - zap.Int64("collectionID", replica.GetCollectionID()), - zap.Int64("replicaID", replica.GetID()), - zap.String("channelName", channelName), - zap.Stringers("nodes", lo.Values(nodeItemsMap))) + + log.Ctx(ctx).WithRateGroup(fmt.Sprintf("genSegmentPlan-%d-%d", replica.GetCollectionID(), replica.GetID()), 1, 60). + RatedInfo(30, "node segment workload status", + zap.Int64("collectionID", replica.GetCollectionID()), + zap.Int64("replicaID", replica.GetID()), + zap.Stringers("nodes", lo.Values(nodeItemsMap))) // list all segment which could be balanced, and calculate node's score for _, node := range onlineNodes { diff --git a/internal/querycoordv2/balance/score_based_balancer.go b/internal/querycoordv2/balance/score_based_balancer.go index 8e19c8921d..ca387145f2 100644 --- a/internal/querycoordv2/balance/score_based_balancer.go +++ b/internal/querycoordv2/balance/score_based_balancer.go @@ -525,10 +525,11 @@ func (b *ScoreBasedBalancer) genSegmentPlan(ctx context.Context, br *balanceRepo return nil } - log.Info("node segment workload status", - zap.Int64("collectionID", replica.GetCollectionID()), - zap.Int64("replicaID", replica.GetID()), - zap.Stringers("nodes", lo.Values(nodeItemsMap))) + log.Ctx(ctx).WithRateGroup(fmt.Sprintf("genSegmentPlan-%d-%d", replica.GetCollectionID(), replica.GetID()), 1, 60). + RatedInfo(30, "node segment workload status", + zap.Int64("collectionID", replica.GetCollectionID()), + zap.Int64("replicaID", replica.GetID()), + zap.Stringers("nodes", lo.Values(nodeItemsMap))) // list all segment which could be balanced, and calculate node's score for _, node := range onlineNodes { @@ -593,10 +594,11 @@ func (b *ScoreBasedBalancer) genChannelPlan(ctx context.Context, br *balanceRepo return nil } - log.Info("node channel workload status", - zap.Int64("collectionID", replica.GetCollectionID()), - zap.Int64("replicaID", replica.GetID()), - zap.Stringers("nodes", lo.Values(nodeItemsMap))) + log.Ctx(ctx).WithRateGroup(fmt.Sprintf("genSegmentPlan-%d-%d", replica.GetCollectionID(), replica.GetID()), 1, 60). + RatedInfo(30, "node channel workload status", + zap.Int64("collectionID", replica.GetCollectionID()), + zap.Int64("replicaID", replica.GetID()), + zap.Stringers("nodes", lo.Values(nodeItemsMap))) channelDist := make(map[int64][]*meta.DmChannel) for _, node := range onlineNodes { diff --git a/internal/querycoordv2/dist/dist_handler.go b/internal/querycoordv2/dist/dist_handler.go index 237c8c0855..de4d907554 100644 --- a/internal/querycoordv2/dist/dist_handler.go +++ b/internal/querycoordv2/dist/dist_handler.go @@ -247,11 +247,13 @@ func (dh *distHandler) updateLeaderView(ctx context.Context, resp *querypb.GetDa // check leader serviceable if err := utils.CheckDelegatorDataReady(dh.nodeManager, dh.target, view, meta.CurrentTarget); err != nil { view.UnServiceableError = err - log.Info("leader is not available due to distribution not ready", - zap.Int64("collectionID", view.CollectionID), - zap.Int64("nodeID", view.ID), - zap.String("channel", view.Channel), - zap.Error(err)) + log.Ctx(ctx). + WithRateGroup(fmt.Sprintf("distHandler.updateLeaderView.%s", view.Channel), 1, 60). + RatedInfo(10, "leader is not available due to distribution not ready", + zap.Int64("collectionID", view.CollectionID), + zap.Int64("nodeID", view.ID), + zap.String("channel", view.Channel), + zap.Error(err)) continue } @@ -266,11 +268,13 @@ func (dh *distHandler) updateLeaderView(ctx context.Context, resp *querypb.GetDa // make dist handler pull next distribution until all delegator is serviceable dh.lastUpdateTs = 0 collectionsToSync.Insert(lview.Collection) - log.Info("leader is not available due to target version not ready", - zap.Int64("collectionID", view.CollectionID), - zap.Int64("nodeID", view.ID), - zap.String("channel", view.Channel), - zap.Error(err)) + log.Ctx(ctx). + WithRateGroup(fmt.Sprintf("distHandler.updateLeaderView.%s", view.Channel), 1, 60). + RatedInfo(10, "leader is not available due to target version not ready", + zap.Int64("collectionID", view.CollectionID), + zap.Int64("nodeID", view.ID), + zap.String("channel", view.Channel), + zap.Error(err)) } }