diff --git a/internal/proxy/proxy.go b/internal/proxy/proxy.go index 9c77a066b0..e3201f46e2 100644 --- a/internal/proxy/proxy.go +++ b/internal/proxy/proxy.go @@ -311,8 +311,24 @@ func (node *Proxy) sendChannelsTimeTickLoop() { Timestamps: tss, DefaultTimestamp: maxTs, } - sub := tsoutil.SubByNow(maxTs) - metrics.ProxySyncTimeTickLag.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), "default").Set(float64(sub)) + + func() { + // we should pay more attention to the max lag. + minTs := maxTs + minTsOfChannel := "default" + + // find the min ts and the related channel. + for channel, ts := range stats { + if ts < minTs { + minTs = ts + minTsOfChannel = channel + } + } + + sub := tsoutil.SubByNow(minTs) + metrics.ProxySyncTimeTickLag.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), minTsOfChannel).Set(float64(sub)) + }() + status, err := node.rootCoord.UpdateChannelTimeTick(node.ctx, req) if err != nil { log.Warn("sendChannelsTimeTickLoop.UpdateChannelTimeTick", zap.Error(err))