From bb769669923a830ae11f284905979017c2ac7a12 Mon Sep 17 00:00:00 2001 From: Lukasz Mierzwa Date: Tue, 15 Apr 2025 17:52:24 +0100 Subject: [PATCH] Use stringlabels by default This removes the stringlabels build tag, makes that implementation the default one, and moves the old labels implementation under the slicelabels build tag. Fixes #16064. Signed-off-by: Lukasz Mierzwa --- .github/workflows/ci.yml | 4 ++-- model/labels/labels.go | 4 ++-- model/labels/labels_stringlabels.go | 2 +- model/labels/sharding.go | 2 +- model/labels/sharding_stringlabels.go | 2 +- tsdb/agent/series_test.go | 10 +++++----- tsdb/head_test.go | 10 +++++----- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2263689a3..f280e9ad78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,8 +18,8 @@ jobs: - uses: ./.github/promci/actions/setup_environment with: enable_npm: true - - run: make GOOPTS=--tags=stringlabels GO_ONLY=1 SKIP_GOLANGCI_LINT=1 - - run: go test --tags=stringlabels ./tsdb/ -test.tsdb-isolation=false + - run: make GO_ONLY=1 SKIP_GOLANGCI_LINT=1 + - run: go test ./tsdb/ -test.tsdb-isolation=false - run: make -C documentation/examples/remote_storage - run: make -C documentation/examples diff --git a/model/labels/labels.go b/model/labels/labels.go index ed66d73cbf..5ebdf6a3fe 100644 --- a/model/labels/labels.go +++ b/model/labels/labels.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build !stringlabels && !dedupelabels +//go:build slicelabels package labels @@ -453,7 +453,7 @@ func (b *ScratchBuilder) Add(name, value string) { } // UnsafeAddBytes adds a name/value pair, using []byte instead of string. -// The '-tags stringlabels' version of this function is unsafe, hence the name. +// The default version of this function is unsafe, hence the name. // This version is safe - it copies the strings immediately - but we keep the same name so everything compiles. func (b *ScratchBuilder) UnsafeAddBytes(name, value []byte) { b.add = append(b.add, Label{Name: string(name), Value: string(value)}) diff --git a/model/labels/labels_stringlabels.go b/model/labels/labels_stringlabels.go index f49ed96f65..8d611492b5 100644 --- a/model/labels/labels_stringlabels.go +++ b/model/labels/labels_stringlabels.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build stringlabels +//go:build !slicelabels && !dedupelabels package labels diff --git a/model/labels/sharding.go b/model/labels/sharding.go index 8b3a369397..ed05da675f 100644 --- a/model/labels/sharding.go +++ b/model/labels/sharding.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build !stringlabels && !dedupelabels +//go:build slicelabels package labels diff --git a/model/labels/sharding_stringlabels.go b/model/labels/sharding_stringlabels.go index 798f268eb9..4dcbaa21d1 100644 --- a/model/labels/sharding_stringlabels.go +++ b/model/labels/sharding_stringlabels.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build stringlabels +//go:build !slicelabels && !dedupelabels package labels diff --git a/tsdb/agent/series_test.go b/tsdb/agent/series_test.go index bc5a4af5d3..257f5815f9 100644 --- a/tsdb/agent/series_test.go +++ b/tsdb/agent/series_test.go @@ -77,13 +77,13 @@ func TestNoDeadlock(t *testing.T) { func labelsWithHashCollision() (labels.Labels, labels.Labels) { // These two series have the same XXHash; thanks to https://github.com/pstibrany/labels_hash_collisions - ls1 := labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "l6CQ5y") - ls2 := labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "v7uDlF") + ls1 := labels.FromStrings("__name__", "metric", "lbl", "HFnEaGl") + ls2 := labels.FromStrings("__name__", "metric", "lbl", "RqcXatm") if ls1.Hash() != ls2.Hash() { - // These ones are the same when using -tags stringlabels - ls1 = labels.FromStrings("__name__", "metric", "lbl", "HFnEaGl") - ls2 = labels.FromStrings("__name__", "metric", "lbl", "RqcXatm") + // These ones are the same when using -tags slicelabels + ls1 = labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "l6CQ5y") + ls2 = labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "v7uDlF") } if ls1.Hash() != ls2.Hash() { diff --git a/tsdb/head_test.go b/tsdb/head_test.go index 8cd44db841..100d5b1265 100644 --- a/tsdb/head_test.go +++ b/tsdb/head_test.go @@ -6286,13 +6286,13 @@ func TestHeadCompactionWhileAppendAndCommitExemplar(t *testing.T) { func labelsWithHashCollision() (labels.Labels, labels.Labels) { // These two series have the same XXHash; thanks to https://github.com/pstibrany/labels_hash_collisions - ls1 := labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "l6CQ5y") - ls2 := labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "v7uDlF") + ls1 := labels.FromStrings("__name__", "metric", "lbl", "HFnEaGl") + ls2 := labels.FromStrings("__name__", "metric", "lbl", "RqcXatm") if ls1.Hash() != ls2.Hash() { - // These ones are the same when using -tags stringlabels - ls1 = labels.FromStrings("__name__", "metric", "lbl", "HFnEaGl") - ls2 = labels.FromStrings("__name__", "metric", "lbl", "RqcXatm") + // These ones are the same when using -tags slicelabels + ls1 = labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "l6CQ5y") + ls2 = labels.FromStrings("__name__", "metric", "lbl1", "value", "lbl2", "v7uDlF") } if ls1.Hash() != ls2.Hash() {