prometheus/tsdb
Dieter Plaetinck d5afe0a577
TSDB: Use a dedicated head chunk reference type (#9501)
* Use dedicated Ref type

Throughout the code base, there are reference types masked as
regular integers.  Let's use dedicated types.  They are
equivalent, but clearer semantically.
This also makes it trivial to find where they are used,
and from uses, find the centralized docs.

Signed-off-by: Dieter Plaetinck <dieter@grafana.com>

* postpone some work until after possible return

Signed-off-by: Dieter Plaetinck <dieter@grafana.com>

* clarify

Signed-off-by: Dieter Plaetinck <dieter@grafana.com>

* rename feedback

Signed-off-by: Dieter Plaetinck <dieter@grafana.com>

* skip header is up to caller

Signed-off-by: Dieter Plaetinck <dieter@grafana.com>
2021-10-13 17:44:32 +05:30
..
chunkenc remove redundant parentheses (#9134) 2021-07-29 18:26:57 +05:30
chunks TSDB: Use a dedicated head chunk reference type (#9501) 2021-10-13 17:44:32 +05:30
docs/format Exemplars in snapshot (#9255) 2021-08-30 19:34:38 +05:30
encoding Snapshot in-memory chunks on shutdown for faster restarts (#7229) 2021-08-06 17:51:01 +01:00
errors MultiError: Refactored MultiError for more concise and safe usage. (#8066) 2020-10-28 15:24:58 +00:00
fileutil Add new Go build tags. 2021-08-27 10:24:14 +02:00
goversion Add new Go build tags. 2021-08-27 10:24:14 +02:00
index Replace calls to strings.Compare (#9397) 2021-09-27 17:33:53 +05:30
record Exemplars in snapshot (#9255) 2021-08-30 19:34:38 +05:30
test labels: Reduce allocated memory and latency of Hash method; Added tests. (#8025) 2020-10-15 11:31:28 +01:00
testdata tsdb: Delete blocks atomically; Remove tmp blocks on start; Added test. (#7772) 2020-08-11 06:56:08 +01:00
tombstones Call delete on head if interval overlaps (#9151) 2021-09-16 12:20:03 +05:30
tsdbutil storage: Split chunks if more than 120 samples (#8582) 2021-05-18 18:37:16 +02:00
wal Snapshot in-memory chunks on shutdown for faster restarts (#7229) 2021-08-06 17:51:01 +01:00
.gitignore
CHANGELOG.md Rename default branch to main 2021-02-22 20:28:02 +01:00
README.md Link 2 more TSDB blog posts in tsdb/README.md (#9371) 2021-09-21 21:35:33 +05:30
block.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
block_test.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
blockwriter.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
blockwriter_test.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
compact.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
compact_test.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
db.go Call delete on head if interval overlaps (#9151) 2021-09-16 12:20:03 +05:30
db_test.go Also ignore `func1` 2021-08-28 22:42:22 -04:00
exemplar.go Fix div by 0 panic is resize function. (#9286) 2021-09-02 11:08:05 -07:00
exemplar_test.go Fix div by 0 panic is resize function. (#9286) 2021-09-02 11:08:05 -07:00
head.go TSDB: Use a dedicated head chunk reference type (#9501) 2021-10-13 17:44:32 +05:30
head_append.go Decrement active_appenders metric when no samples added (#9230) 2021-09-08 14:49:58 +05:30
head_bench_test.go React UI: Add Starting Screen (#8662) 2021-06-05 15:29:32 +01:00
head_read.go Remove symbols map from TSDB head (#9301) 2021-09-08 14:48:48 +05:30
head_test.go TSDB: Use a dedicated head chunk reference type (#9501) 2021-10-13 17:44:32 +05:30
head_wal.go Fix panic on failed snapshot replay and don't hard fail replay on disabled exemplars (#9438) 2021-10-05 10:51:25 +05:30
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 away from testutil, refactor imports (#8087) 2020-10-22 11:00:08 +02:00
querier.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
querier_bench_test.go React UI: Add Starting Screen (#8662) 2021-06-05 15:29:32 +01:00
querier_test.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
repair.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
repair_test.go React UI: Add Starting Screen (#8662) 2021-06-05 15:29:32 +01:00
tsdbblockutil.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
wal.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
wal_test.go Add new Go build tags. 2021-08-27 10:24:14 +02:00

README.md

TSDB

GoPkg

This directory contains the Prometheus storage layer that is used in its 2.x releases.

A writeup of its design can be found here.

Based on the Gorilla TSDB white papers.

Video: Storing 16 Bytes at Scale from PromCon 2017.

See also the format documentation.

A series of blog posts explaining different components of TSDB: