1287 Commits

Author SHA1 Message Date
Ben Ye
919a5b657e
Expose ListPostings Length via Len() method (#15678)
tsdb: expose remaining ListPostings Length

Signed-off-by: Ben Ye <benye@amazon.com>

---------

Signed-off-by: Ben Ye <benye@amazon.com>
2025-01-07 17:58:26 +01:00
György Krajcsovits
1e420ef373 Merge branch 'main' into cedwards/nhcb-wal-wbl
# Conflicts:
#	tsdb/tsdbutil/histogram.go
2025-01-02 12:50:19 +01:00
György Krajcsovits
a7ccc8e091 record_test.go: avoid captures, simply return test refs
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2025-01-02 12:45:20 +01:00
Bryan Boreham
096e2aa7bd
Merge pull request #14518 from bboreham/faster-listpostings-merge
TSDB: Optimization: Merge postings using concrete type
2025-01-02 10:43:45 +00:00
johncming
061400e31b
tsdb: export CheckpointPrefix constant (#15636)
Exported the CheckpointPrefix constant to be used in other packages.
Updated references to the constant in db.go and checkpoint.go files.
This change improves code readability and maintainability.

Signed-off-by: johncming <johncming@yahoo.com>
Co-authored-by: johncming <conjohn668@gmail.com>
2024-12-29 17:54:45 +01:00
Carrie Edwards
1508149184 Update benchmark test and comment 2024-12-27 09:09:13 -08:00
Bryan Boreham
cfa32f3d28 TSDB: Move merge of head postings into index
This enables it to take advantage of a more compact data structure
since all postings are known to be `*ListPostings`.

Remove the `Get` member which was not used for anything else, and fix up
tests.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-12-20 19:22:30 +00:00
Bryan Boreham
0a8779f46d TSDB: Make mergedPostings generic
Now we can call it with more specific types which is more efficient than
making everything go through the `Postings` interface.

Benchmark the concrete type.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-12-20 17:09:21 +00:00
Bryan Boreham
1b22242024 TSDB BenchmarkMerge: run fewer sizes
As long as we run small and big sizes, we don't need all the sizes inbetween.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-12-20 17:09:21 +00:00
Bryan Boreham
e630ffdbed TSDB: extend BenchmarkMemPostings_PostingsForLabelMatching to check merge speed
We need to create more postings entries so the merger has some work to do.
Not material for the regexp ones as they match so few series.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-12-20 17:09:21 +00:00
Björn Rabenstein
318d6bc4bf
Merge pull request #15548 from TinfoilSubmarine/fix/386-test-failures
test: fixes for 32-bit archs
2024-12-18 15:49:30 +01:00
Björn Rabenstein
ff398062cb
Merge pull request #15679 from colega/update-comment-on-mempostings-lvs
Update comment on MemPostings.lvs
2024-12-17 19:41:56 +01:00
Oleg Zaytsev
c8359fcd6b
Fix bug in lbl!~".+" shortcut (#15684)
We were appending to the wrong slice, so instead of removing values, we
were adding them.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-12-17 17:34:24 +01:00
Oleg Zaytsev
17d5bc4e54
Update comment on MemPostings.lvs
There was a missing verb there.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-12-16 17:20:51 +01:00
Joel Beckmeyer
39f5a07236 fix TestOOOHeadChunkReader_Chunk on 32-bit
Signed-off-by: Joel Beckmeyer <joel@beckmeyer.us>
2024-12-16 10:45:07 -05:00
Bryan Boreham
ac4f8a5e23
[ENHANCEMENT] TSDB: Improve calculation of space used by labels (#13880)
* [ENHANCEMENT] TSDB: Improve calculation of space used by labels

The labels for each series in the Head take up some some space in the
Postings index, but far more space in the `memSeries` structure.

Instead of having the Postings index calculate this overhead, which is
a layering violation, have the caller pass in a function to do it.

Provide three implementations of this function for the three Labels
versions.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-12-16 09:42:52 +00:00
David Ashpole
953a873342
update links to openmetrics to reference the v1.0.0 release
Signed-off-by: David Ashpole <dashpole@google.com>
2024-12-13 21:32:27 +00:00
György Krajcsovits
df88de5800 Fix lint for real
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-12 12:52:01 +01:00
György Krajcsovits
cf36792e14 Fix unused import
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-12 12:49:28 +01:00
György Krajcsovits
fdb1516af1 Fix lint errors
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-12 12:47:43 +01:00
György Krajcsovits
d64d1c4c0a Benchmark encoding classic and nhcb
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-12 10:59:06 +01:00
György Krajcsovits
a325ff142c fix(test): do not run automatic WAL truncate during test
Remove the 2 minute timeout as the default is 2 hours and wouldn't
interfere. With the test. Otherwise the extra samples combined with
race detection can push the test over 2 minutes and make it fail.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-10 17:30:46 +01:00
György Krajcsovits
07276aeece fix(test): if we are dereferencing a slice we should check its len
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-10 16:25:50 +01:00
György Krajcsovits
8f572fe905 fix(lint): linter errors
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-10 16:25:20 +01:00
György Krajcsovits
b94c87bea6 fix(test): TestCheckpoint segment size too low
The segment size was too low for the additional NHCB data, thus it created
more segments then expected. This meant that less were in the lower
numbered segments, which meant more was kept.

FAIL: TestCheckpoint (4.05s)
  FAIL: TestCheckpoint/compress=none (0.22s)
        checkpoint_test.go:361:
            	Error Trace:	/home/krajo/go/github.com/prometheus/prometheus/tsdb/wlog/checkpoint_test.go:361
            	Error:      	"0.8586956521739131" is not less than "0.8"
            	Test:       	TestCheckpoint/compress=none

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-12-10 16:16:46 +01:00
György Krajcsovits
efdd0880c1 Merge branch 'main' into cedwards/nhcb-wal-wbl
# Conflicts:
#	tsdb/docs/format/wal.md
2024-12-10 14:33:35 +01:00
bwplotka
eeef17ea0a docs: Added native histogram WAL record documentation.
Signed-off-by: bwplotka <bwplotka@gmail.com>
2024-12-09 11:47:28 +00:00
Carrie Edwards
1933ccc9be Fix test 2024-12-06 14:55:19 -08:00
Carrie Edwards
a046417bc0 Use new record type only for NHCB 2024-12-06 13:46:20 -08:00
Carrie Edwards
45944c1847 Extend tsdb agent tests with custom bucket histograms 2024-12-05 09:21:47 -08:00
Carrie Edwards
6b44c1437f Fix comment and histogram record string 2024-12-05 09:21:47 -08:00
Carrie Edwards
f8a39767a4 Update WAL doc to include native histogram encodings 2024-12-05 09:21:47 -08:00
Carrie Edwards
6684344026 Rename old histogram record type, use old names for new records 2024-12-05 09:21:47 -08:00
Carrie Edwards
454f6d39ca Add separate handling for histograms and custom bucket histograms 2024-12-05 09:21:47 -08:00
Carrie Edwards
37df50adb9 Attempt for record type 2024-12-05 09:21:47 -08:00
Carrie Edwards
cfcd51538d Remove references to custom values record 2024-12-05 09:21:47 -08:00
Carrie Edwards
6d413fad36 Use histogram records for custom value handling 2024-12-05 09:21:47 -08:00
Carrie Edwards
aa144b7263 Handle custom buckets in WAL and WBL 2024-12-05 09:21:47 -08:00
Antoine Pultier
f1340bac64
documentation: put back trailing punctuation.
markdownlint wasn't happy about the trailing punctuation in the headings.

Signed-off-by: Antoine Pultier <antoine.pultier@sintef.no>
2024-12-03 14:36:56 +01:00
Antoine Pultier
5c2fd7988b
Merge remote-tracking branch 'upstream/main' into patch-2
Signed-off-by: Antoine Pultier <antoine.pultier@sintef.no>
2024-12-03 14:32:28 +01:00
Antoine Pultier
6046769941
tsdb documenation: Improve Chunk documentation
Signed-off-by: Antoine Pultier <45740+fungiboletus@users.noreply.github.com>

Signed-off-by: Antoine Pultier <45740+fungiboletus@users.noreply.github.com>
2024-12-03 14:24:50 +01:00
Oleg Zaytsev
cd1f8ac129
MemPostings: keep a map of label values slices (#15426)
While investigating lock contention on `MemPostings`, we saw that lots
of locking is happening in `LabelValues` and
`PostingsForLabelsMatching`, both copying the label values slices while
holding the mutex.

This adds an extra map that holds an append-only label values slice for
each one of the label names. Since the slice is append-only, it can be
copied without holding the mutex.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-11-29 12:52:56 +01:00
Charles Korn
96adc410ba
tsdb/chunkenc: don't reuse custom value slices between histograms
Signed-off-by: Charles Korn <charles.korn@grafana.com>
2024-11-29 16:28:09 +11:00
Oleg Zaytsev
9ad93ba8df
Optimize l=~".+" matcher (#15474)
Since dot is matching newline now, `l=~".+"` is "any non empty label
value", and #14144 added a specific method in the index for that so we
don't need to run the matcher on each one of the label values.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-11-27 12:33:20 +01:00
Bryan Boreham
ca3119bd24 TSDB: eliminate one yolostring
When the only use of a []byte->string conversion is as a map key, Go
doesn't allocate.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-11-26 17:21:55 +00:00
Bryan Boreham
e98c19c1ce [PERF] TSDB: Cache all symbols for compaction
Trade a bit more memory for a lot less CPU spent looking up symbols.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-11-26 17:21:55 +00:00
Oleg Zaytsev
9aa6e041d3
MemPostings: allocate ListPostings once in PFALV (#15465)
Same as #15427 but for the new method added in #14144

Instead of allocating each ListPostings one by one, allocate them all in
one go.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-11-26 16:03:45 +01:00
DC
d535d501d1
[DOCS] Improve description of WAL record format (#14936)
Signed-off-by: DC <413331538@qq.com>
2024-11-26 11:48:17 +00:00
Bryan Boreham
dd0252a774
Merge pull request #15380 from bboreham/improve-loadwbl
[BUGFIX] TSDB: Apply fixes from loadWAL to loadWBL
2024-11-25 17:31:49 +00:00
Bryan Boreham
7996a13fdd
Merge pull request #15403 from bboreham/fix-rw-benchmark-startup
[TESTS] Remote-Write: Fix BenchmarkStartup
2024-11-25 17:31:24 +00:00