prometheus/tsdb
Bryan Boreham 82860a770c
tsdb: use simpler map key to improve exemplar ingest performance (#10111)
* tsdb: fix exemplar benchmarks

Go benchmarks are expected to do an amount of work that varies with
the `b.N` parameter. Previously these benchmarks would report a result
like 0.01 ns/op, which is nonsense.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* tsdb: use simpler map key to improve exemplar perf

Prometheus holds an index of exemplars so it can discard the oldest one
for a series when a new one is added.
Since the keys are not for human eyes, we can use a simpler format
and save the effort of quoting label values.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Exemplars: allocate index map with estimated size

This avoids Go having to re-size the map several times as it grows.
16 exemplars per series is a guess; if it is too low then the map will
be sparse, while if it is too high then the map will have to resize once
or twice.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2022-01-06 15:58:58 +05:30
..
agent tsdb/agent: Synchronize appender code with grafana/agent main (#9664) 2021-11-30 21:14:40 +05:30
chunkenc improve bstream comments and doc (#9560) 2021-10-25 18:44:15 +05:30
chunks clarify HeadChunkID type and usage (#9726) 2021-11-17 18:35:10 +05:30
docs clarify HeadChunkID type and usage (#9726) 2021-11-17 18:35:10 +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 Pop intersected postings heap without popping (#10092) 2022-01-05 16:16:43 +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 storage: fix bug #10027 in iterators' Seek method 2021-12-16 12:07:35 +01: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 CompactBlockMetas should produce correct mint/maxt for overlapping blocks. (#10108) 2022-01-05 15:10:00 +05:30
compact_test.go CompactBlockMetas should produce correct mint/maxt for overlapping blocks. (#10108) 2022-01-05 15:10:00 +05:30
db.go Add the ability to disable tsdb isolation (#9270) 2021-11-19 15:41:32 +05:30
db_test.go Fix panic, out of order chunks, and race warning during WAL replay (#9856) 2021-11-25 13:36:14 +05:30
example_test.go Add basic initial developer docs for TSDB (#9451) 2021-11-17 15:51:27 +05:30
exemplar.go tsdb: use simpler map key to improve exemplar ingest performance (#10111) 2022-01-06 15:58:58 +05:30
exemplar_test.go tsdb: use simpler map key to improve exemplar ingest performance (#10111) 2022-01-06 15:58:58 +05:30
head.go Fix queries after a failed snapshot replay (#9980) 2021-12-09 15:15:27 +05:30
head_append.go Add the ability to disable tsdb isolation (#9270) 2021-11-19 15:41:32 +05:30
head_bench_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
head_read.go Label values with matchers by intersecting postings (#9907) 2021-12-28 15:59:03 +01:00
head_test.go Fix queries after a failed snapshot replay (#9980) 2021-12-09 15:15:27 +05:30
head_wal.go Fix queries after a failed snapshot replay (#9980) 2021-12-09 15:15:27 +05:30
isolation.go Add the ability to disable tsdb isolation (#9270) 2021-11-19 15:41:32 +05:30
isolation_test.go Add the ability to disable tsdb isolation (#9270) 2021-11-19 15:41:32 +05:30
mocks_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
querier.go Label values with matchers by intersecting postings (#9907) 2021-12-28 15:59:03 +01:00
querier_bench_test.go Label values with matchers by intersecting postings (#9907) 2021-12-28 15:59:03 +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 fix potential goroutine leaks 2021-12-17 18:35:30 -05: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: