prometheus/tsdb
Filip Petkovski 6100e756a8 Ignore stale histograms for counter reset detection
The histogram stats decoder keeps track of the last seen histogram sample
in order to properly detect counter resets. We are seeing an issue where
a histogram with UnknownResetHint gets treated as a counter reset when it follows
a stale histogram sample.

I believe that this is incorrect since stale samples should be completely ignored
in PromQL. As a result, they should not be stored in the histogram stats iterator
and the counter reset detection needs to be done against the last non-stale sample.

Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
2024-08-08 08:56:55 +02:00
..
agent [PRW 2.0] Merging remote-write-2.0 feature branch to main (PRW 2.0 support + metadata in WAL) (#14395) 2024-07-04 14:29:20 -07:00
chunkenc Fix a couple of comments 2024-07-05 15:25:42 +02:00
chunks TSDB: Simplify OOO Select by copying the head chunk (#14396) 2024-07-03 15:08:07 +01:00
docs Fix language in docs and comments (#14041) 2024-05-08 17:57:09 +02:00
encoding tsdb/encoding: use Go standard errors package 2023-11-11 19:01:11 +01:00
errors Enable default revive rules (#13068) 2023-11-29 17:23:34 +00:00
fileutil tests: remove err from message when testify prints it already 2024-02-01 14:18:01 +00:00
goversion remove obsolete build tag 2024-01-17 22:26:32 +08:00
index Replace ListPostings.Seek's binary search call by the generic slices.BinarySearch (#14393) 2024-07-02 14:51:05 +01:00
record Fix a couple of comments 2024-07-05 15:25:42 +02:00
testdata tsdb: Delete blocks atomically; Remove tmp blocks on start; Added test. (#7772) 2020-08-11 06:56:08 +01:00
tombstones Update tombstones.go 2023-11-11 19:22:06 +01:00
tsdbutil Ignore stale histograms for counter reset detection 2024-08-08 08:56:55 +02:00
wlog Merge branch 'release-2.53' into merge-2.53.1 2024-07-10 11:17:53 +01:00
.gitignore Moving tsdb into its own subdirectory 2019-08-13 13:58:49 +05:30
block.go tsdb: Extend compactor interface to allow compactions to create multiple output blocks (#14143) 2024-06-12 17:31:25 -04:00
block_test.go tsdb: Extend compactor interface to allow compactions to create multiple output blocks (#14143) 2024-06-12 17:31:25 -04:00
blockwriter.go tsdb: Extend compactor interface to allow compactions to create multiple output blocks (#14143) 2024-06-12 17:31:25 -04:00
blockwriter_test.go Add a chunk size limit in bytes (#12054) 2023-08-24 15:21:17 +02:00
CHANGELOG.md Rename default branch to main 2021-02-22 20:28:02 +01:00
compact.go TSDB: Change block populator to accept postings index function (#14213) 2024-06-25 09:21:48 +01:00
compact_test.go TSDB: Change block populator to accept postings index function (#14213) 2024-06-25 09:21:48 +01:00
db.go [Test] TSDB: TestOOOCompaction with samples added after compaction starts 2024-08-05 10:35:34 +01:00
db_test.go [Test] TSDB: TestOOOCompaction with samples added after compaction starts 2024-08-05 10:35:34 +01:00
example_test.go Add context argument to Querier.Select (#12660) 2023-09-12 12:37:38 +02:00
exemplar.go [ENHANCEMENT] TSDB: Save map lookup on validation 2024-05-30 09:17:11 +01:00
exemplar_test.go [Test] TSDB: BenchmarkResizeExemplar multiple per series 2024-05-30 09:17:11 +01:00
head.go TSDB: shrink memSeries by moving bools together 2024-07-15 16:09:48 +01:00
head_append.go Merge pull request #14438 from prometheus/cedwards/ooo-chunk-encoding 2024-07-16 11:12:23 -07:00
head_bench_test.go tsdb: use Go standard errors 2023-12-11 12:18:54 +00:00
head_dedupelabels.go tsdb: reset symbol table for exemplars periodically 2024-07-05 10:19:07 +01:00
head_other.go TSDB: rebuild labels symbol-table on each compaction 2024-07-05 10:19:07 +01:00
head_read.go [BUGFIX] TSDB: Exclude OOO chunks mapped after compaction starts 2024-08-05 10:35:34 +01:00
head_read_test.go TSDB: Simplify OOO Select by copying the head chunk (#14396) 2024-07-03 15:08:07 +01:00
head_test.go Refactor TestWBLReplay to use scenarios 2024-07-16 10:53:28 -07:00
head_wal.go TSDB: Lock around access to labels in head under -tags dedupelabels (#14322) 2024-07-05 10:11:32 +01:00
isolation.go tsdb: create isolation transaction slice on demand 2023-10-21 13:45:47 +00:00
isolation_test.go tsdb: turn off transaction isolation for head compaction (#11317) 2022-09-27 19:31:23 +05:30
mocks_test.go tsdb: use Go standard errors 2023-12-11 12:18:54 +00:00
ooo_head.go [BUGFIX] TSDB: Exclude OOO chunks mapped after compaction starts 2024-08-05 10:35:34 +01:00
ooo_head_read.go [BUGFIX] TSDB: Exclude OOO chunks mapped after compaction starts 2024-08-05 10:35:34 +01:00
ooo_head_read_test.go [BUGFIX] TSDB: Exclude OOO chunks mapped after compaction starts 2024-08-05 10:35:34 +01:00
ooo_head_test.go ci(lint): enable godot; append dot at the end of comments 2023-10-31 19:53:38 +02:00
ooo_isolation.go Fix issue where queries can fail or omit OOO samples if OOO head compaction occurs between creating a querier and reading chunks (#13115) 2023-11-24 12:38:38 +01:00
ooo_isolation_test.go Fix issue where queries can fail or omit OOO samples if OOO head compaction occurs between creating a querier and reading chunks (#13115) 2023-11-24 12:38:38 +01:00
querier.go Pass limit param as hint to storage.Querier 2024-06-20 09:47:38 -07:00
querier_bench_test.go Optimize label values with matchers by taking shortcuts (#13426) 2024-01-23 11:40:21 +01:00
querier_test.go Pass limit param as hint to storage.Querier 2024-06-20 09:47:38 -07:00
README.md Fixed broken link in tsdb README.md 2022-10-07 16:20:20 +00:00
repair.go tsdb: use Go standard errors 2023-12-11 12:18:54 +00:00
repair_test.go tsdb tests: use go-cmp instead of DeepEquals 2024-02-08 19:32:33 +00:00
testutil.go Testutil refactoring 2024-07-03 09:28:38 -07:00
tsdbblockutil.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00

TSDB

GoPkg

This directory contains the Prometheus TSDB (Time Series DataBase) library, which handles storage and querying of all Prometheus v2 data.

Documentation

External resources

A series of blog posts explaining different components of TSDB: