prometheus/tsdb
Robert Fratto a344a91f67 tsdb/agent: ensure that new series get written to WAL on rollback #12592
If a new series is introduced in a storage.Appender instance, that
series should be written to the WAL once the storage.Appender is closed,
even on Rollback.

Previously, new series would only be written to the WAL when calling
Commit. However, because the series is stored in memory regardless,
subsequent calls to Commit may write samples to the WAL which reference
a series ID which that was never written.

Related to #11589. It's likely that this fix also resolves this issue,
but we need more testing from users to see if the problem persists after
this fix; there may be more cases where samples get written to the WAL
in Prometheus Agent mode without the corresponding series record.

Signed-off-by: Robert Fratto <robertfratto@gmail.com>
2024-04-30 16:33:15 +02:00
..
agent tsdb/agent: ensure that new series get written to WAL on rollback #12592 2024-04-30 16:33:15 +02:00
chunkenc Fix HistogramAppender.Appendable array out of bound error 2023-05-14 17:38:52 +02:00
chunks style: Replace else if cascades with switch 2023-04-19 17:22:31 +02:00
docs Merge branch 'main' into sparsehistogram 2022-08-10 17:54:37 +02:00
encoding Merge 'main' into sparsehistogram 2022-10-05 22:14:49 +02:00
errors Fix context.Canceled wrapping in compaction 2023-03-23 11:10:00 +01:00
fileutil Update go to 1.19, set min version to 1.18 (#11279) 2022-09-07 11:30:48 +02:00
goversion lint: Adjust to the lint warnings raised by current versions of golint-ci 2023-04-19 17:10:10 +02:00
index make sure response error when TOC parse failed #10623 2023-08-03 10:10:00 +02:00
record tsdb: Add counter reset hint to histograms and support in WAL 2023-01-10 17:41:53 +05:30
testdata tsdb: Delete blocks atomically; Remove tmp blocks on start; Added test. (#7772) 2020-08-11 06:56:08 +01:00
tombstones Copy tombstone intervals to avoid race (#12245) 2023-05-17 15:15:12 +02:00
tsdbutil Fix populateWithDelChunkSeriesIterator and gauge histograms (#12330) 2023-05-19 10:24:06 +02:00
wlog [tsdb] re-implement WAL watcher to read via a "notification" channel (#11949) 2023-05-15 12:31:49 -07:00
.gitignore Moving tsdb into its own subdirectory 2019-08-13 13:58:49 +05:30
block.go tsdb: sort values for Postings only when required 2023-01-05 14:05:54 +00:00
block_test.go enable gocritic, unconvert and unused linters 2023-04-13 19:20:22 +00:00
blockwriter.go Merge 'main' into sparsehistogram 2022-10-05 22:14:49 +02:00
blockwriter_test.go Name float values as "floats", not as "values" 2023-04-13 19:25:24 +02:00
CHANGELOG.md Rename default branch to main 2021-02-22 20:28:02 +01:00
compact.go Merge branch 'main' into linter/nilerr 2023-04-19 19:56:39 +02:00
compact_test.go Merge branch 'main' into linter/nilerr 2023-04-19 19:56:39 +02:00
db.go Feat: Get block by id directly on promtool analyze & get latest block if ID not provided (#12031) 2023-06-01 17:13:09 +05:30
db_test.go Feat: Get block by id directly on promtool analyze & get latest block if ID not provided (#12031) 2023-06-01 17:13:09 +05:30
example_test.go storage: allow re-use of iterators 2022-12-15 18:32:45 +00:00
exemplar.go ci(lint): enable predeclared linter 2023-05-21 07:33:54 +00:00
exemplar_test.go tsdb: in tests use labels.FromStrings 2022-09-09 13:34:49 +02:00
head.go head.go: Remove an unneeded snapshot trigger that was moved in https://github.com/prometheus/prometheus/pull/9328 2024-01-23 14:25:54 +01:00
head_append.go Remove samplesPerChunk from memSeries (#12390) 2023-05-25 11:18:41 +02:00
head_bench_test.go Add out-of-order sample support to the TSDB (#11075) 2022-09-20 22:35:50 +05:30
head_read.go Fix populateWithDelChunkSeriesIterator and gauge histograms (#12330) 2023-05-19 10:24:06 +02:00
head_read_test.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
head_test.go Remove samplesPerChunk from memSeries (#12390) 2023-05-25 11:18:41 +02:00
head_wal.go Remove samplesPerChunk from memSeries (#12390) 2023-05-25 11:18:41 +02:00
isolation.go ci(lint): enable predeclared linter 2023-05-21 07:33:54 +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 Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
ooo_head.go Name float values as "floats", not as "values" 2023-04-13 19:25:24 +02:00
ooo_head_read.go style: Replace else if cascades with switch 2023-04-19 17:22:31 +02:00
ooo_head_read_test.go Name float values as "floats", not as "values" 2023-04-13 19:25:24 +02:00
ooo_head_test.go Name float values as "floats", not as "values" 2023-04-13 19:25:24 +02:00
querier.go PostingsForMatchers race with appends #12558 2023-12-18 12:10:33 +01:00
querier_bench_test.go Opmizing Group Regex (#12375) 2023-05-30 13:49:22 +02:00
querier_test.go PostingsForMatchers race with appends #12558 2023-12-18 12:10:33 +01:00
README.md Fixed broken link in tsdb README.md 2022-10-07 16:20:20 +00:00
repair.go refactor: move from io/ioutil to io and os packages (#10528) 2022-04-27 11:24:36 +02:00
repair_test.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
tsdbblockutil.go Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
wal.go Merge branch 'main' into linter/nilerr 2023-04-19 19:56:39 +02:00
wal_test.go TSDB: Rename wal package to wlog (#11352) 2022-10-10 20:38:46 +05:30

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: