diff --git a/internal/client/client_batch.go b/internal/client/client_batch.go index 95aed9013..49b8fe04e 100644 --- a/internal/client/client_batch.go +++ b/internal/client/client_batch.go @@ -70,7 +70,6 @@ type batchCommandsEntry struct { // canceled indicated the request is canceled or not. canceled int32 err error - start time.Time } func (b *batchCommandsEntry) isCanceled() bool { @@ -383,14 +382,11 @@ func (a *batchConn) getClientAndSend() { } defer cli.unlockForSend() - now := time.Now() - tiKVBatchWaitToSendDuration := metrics.TiKVBatchWaitDuration.WithLabelValues("wait-to-send", target) req, forwardingReqs := a.reqBuilder.build(func(id uint64, e *batchCommandsEntry) { cli.batched.Store(id, e) if trace.IsEnabled() { trace.Log(e.ctx, "rpc", "send") } - tiKVBatchWaitToSendDuration.Observe(float64(now.Sub(e.start))) }) if req != nil { cli.send("", req) @@ -515,14 +511,6 @@ func (c *batchCommandsClient) isStopped() bool { } func (c *batchCommandsClient) send(forwardedHost string, req *tikvpb.BatchCommandsRequest) { - start := time.Now() - defer func() { - if forwardedHost == "" { - metrics.TiKVBatchConnSendDuration.WithLabelValues(c.target).Observe(time.Since(start).Seconds()) - } else { - metrics.TiKVBatchConnSendDuration.WithLabelValues(forwardedHost).Observe(time.Since(start).Seconds()) - } - }() err := c.initBatchClient(forwardedHost) if err != nil { logutil.BgLogger().Warn( @@ -789,7 +777,6 @@ func sendBatchRequest( req *tikvpb.BatchCommandsRequest_Request, timeout time.Duration, ) (*tikvrpc.Response, error) { - start := time.Now() entry := &batchCommandsEntry{ ctx: ctx, req: req, @@ -797,11 +784,11 @@ func sendBatchRequest( forwardedHost: forwardedHost, canceled: 0, err: nil, - start: start, } timer := time.NewTimer(timeout) defer timer.Stop() + start := time.Now() select { case batchConn.batchCommandsCh <- entry: case <-ctx.Done(): @@ -812,7 +799,7 @@ func sendBatchRequest( return nil, errors.WithMessage(context.DeadlineExceeded, "wait sendLoop") } waitDuration := time.Since(start) - metrics.TiKVBatchWaitDuration.WithLabelValues("wait-to-chan", addr).Observe(float64(waitDuration)) + metrics.TiKVBatchWaitDuration.Observe(float64(waitDuration)) select { case res, ok := <-entry.res: diff --git a/metrics/metrics.go b/metrics/metrics.go index ff3b13802..7a9cfcf36 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -62,8 +62,7 @@ var ( TiKVLocalLatchWaitTimeHistogram prometheus.Histogram TiKVStatusDuration *prometheus.HistogramVec TiKVStatusCounter *prometheus.CounterVec - TiKVBatchWaitDuration *prometheus.HistogramVec - TiKVBatchConnSendDuration *prometheus.HistogramVec + TiKVBatchWaitDuration prometheus.Histogram TiKVBatchSendLatency prometheus.Histogram TiKVBatchWaitOverLoad prometheus.Counter TiKVBatchPendingRequests *prometheus.HistogramVec @@ -334,25 +333,15 @@ func initMetrics(namespace, subsystem string, constLabels prometheus.Labels) { ConstLabels: constLabels, }, []string{LblResult}) - TiKVBatchWaitDuration = prometheus.NewHistogramVec( + TiKVBatchWaitDuration = prometheus.NewHistogram( prometheus.HistogramOpts{ Namespace: namespace, Subsystem: subsystem, Name: "batch_wait_duration", - Buckets: prometheus.ExponentialBuckets(64, 2, 34), // 64ns ~ 549s - Help: "batch-cmd wait duration, unit is nanosecond", - ConstLabels: constLabels, - }, []string{LblType, LblStore}) - - TiKVBatchConnSendDuration = prometheus.NewHistogramVec( - prometheus.HistogramOpts{ - Namespace: namespace, - Subsystem: subsystem, - Name: "batch_conn_send_seconds", - Buckets: prometheus.ExponentialBuckets(0.0005, 2, 22), // 0.5ms ~ 1048s - Help: "batch conn send duration", + Buckets: prometheus.ExponentialBuckets(1, 2, 34), // 1ns ~ 8s + Help: "batch wait duration", ConstLabels: constLabels, - }, []string{LblStore}) + }) TiKVBatchSendLatency = prometheus.NewHistogram( prometheus.HistogramOpts{ @@ -779,7 +768,6 @@ func RegisterMetrics() { prometheus.MustRegister(TiKVStatusDuration) prometheus.MustRegister(TiKVStatusCounter) prometheus.MustRegister(TiKVBatchWaitDuration) - prometheus.MustRegister(TiKVBatchConnSendDuration) prometheus.MustRegister(TiKVBatchSendLatency) prometheus.MustRegister(TiKVBatchRecvLatency) prometheus.MustRegister(TiKVBatchWaitOverLoad)