From 2d61d012ff7c96a12a8d1aba52d3eb19e8d2db46 Mon Sep 17 00:00:00 2001 From: "Xiaochao Dong (@damnever)" Date: Fri, 30 Dec 2022 19:11:29 +0800 Subject: [PATCH] Avoid copy during remote write if external labels is empty Signed-off-by: Xiaochao Dong (@damnever) --- storage/remote/queue_manager.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/storage/remote/queue_manager.go b/storage/remote/queue_manager.go index f907615fc9..15634aa68d 100644 --- a/storage/remote/queue_manager.go +++ b/storage/remote/queue_manager.go @@ -847,6 +847,10 @@ func (t *QueueManager) releaseLabels(ls labels.Labels) { // processExternalLabels merges externalLabels into ls. If ls contains // a label in externalLabels, the value in ls wins. func processExternalLabels(ls labels.Labels, externalLabels []labels.Label) labels.Labels { + if len(externalLabels) == 0 { + return ls + } + b := labels.NewScratchBuilder(ls.Len() + len(externalLabels)) j := 0 ls.Range(func(l labels.Label) {