prometheus/tsdb
Sunil Thaha a484a83d4a
fix: panic when checkpoint directory is empty (#9687)
Calling `wal.NewSegmentBufReader()` without any segments would cause a
`panic` resulting in prometheus crashing. This patch fixes the panic by
making segmentBufReader return a EOF if there are not segments.

This also means an empty checkpoint directory which should never be the
case unless it has been tampered with (or has issues due to the
underlying filesystem e.g. NFS) would be ignored by Prometheus and would
continue to run instead of the current behaviour which is to panic.

Fixes: https://github.com/prometheus/prometheus/issues/9605

Signed-off-by: Sunil Thaha <sthaha@redhat.com>
2021-11-17 16:39:04 +05:30
..
agent Share TSDB locker code with agent (#9623) 2021-11-11 11:45:25 -05:00
chunkenc improve bstream comments and doc (#9560) 2021-10-25 18:44:15 +05:30
chunks Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
docs Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
encoding Format Go source files using 'gofumpt -w -s -extra' 2021-11-02 19:52:34 +01:00
errors Address golint failures from revive 2021-10-23 00:53:11 +02:00
fileutil tsdb: Add windows arm64 support. 2021-11-09 11:07:27 +01:00
goversion Add new Go build tags. 2021-08-27 10:24:14 +02:00
index Add more size checks when writing individual sections in the index. (#9710) 2021-11-11 15:44:28 +05:30
record Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
test Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
testdata tsdb: Delete blocks atomically; Remove tmp blocks on start; Added test. (#7772) 2020-08-11 06:56:08 +01:00
tombstones TSDB: demistify SeriesRefs and ChunkRefs (#9536) 2021-11-06 15:40:04 +05:30
tsdbutil Share TSDB locker code with agent (#9623) 2021-11-11 11:45:25 -05:00
wal fix: panic when checkpoint directory is empty (#9687) 2021-11-17 16:39:04 +05:30
.gitignore Moving tsdb into its own subdirectory 2019-08-13 13:58:49 +05:30
block.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
block_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
blockwriter.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
blockwriter_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
CHANGELOG.md Rename default branch to main 2021-02-22 20:28:02 +01:00
compact.go TSDB: demistify SeriesRefs and ChunkRefs (#9536) 2021-11-06 15:40:04 +05:30
compact_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
db.go Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
db_test.go Share TSDB locker code with agent (#9623) 2021-11-11 11:45:25 -05:00
example_test.go Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
exemplar.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
exemplar_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
head.go Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
head_append.go Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
head_bench_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
head_read.go Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
head_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
head_wal.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
isolation.go Add present_over_time (#9097) 2021-07-29 12:38:11 +02:00
isolation_test.go tsdb: Block Head GC till pending readers are done reading (#9081) 2021-07-20 14:17:20 +05:30
mocks_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
querier.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
querier_bench_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
querier_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
README.md Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
repair.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
repair_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
tsdbblockutil.go TSDB: demistify SeriesRefs and ChunkRefs (#9536) 2021-11-06 15:40:04 +05:30
wal.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
wal_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00

TSDB

GoPkg

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

Due to an issue with versioning, the "latest" docs shown on Godoc are outdated. Instead you may use the docs for v2.31.1

Documentation

External resources

A series of blog posts explaining different components of TSDB: