prometheus/tsdb
beorn7 aa82fe198f tsdb: Fix histogram validation
So far, `ValidateHistogram` would not detect if the count did not
include the count in the zero bucket. This commit fixes the problem
and updates all the tests that have been undetected offenders so far.

Note that this problem would only ever create false negatives, so we
never falsely rejected to store a histogram because of it.

On the other hand, `ValidateFloatHistogram` has been to strict with
the count being at least as large as the sum of the counts in all the
buckets. Float precision issues could create false positives here, see
products of PromQL evaluations, it's actually quite hard to put an
upper limit no the floating point imprecision. Users could produce the
weirdest expressions, maxing out float precision problems. Therefore,
this commit simply removes that particular check from
`ValidateFloatHistogram`.

Signed-off-by: beorn7 <beorn@grafana.com>
2023-08-22 23:04:01 +02:00
..
agent Use zeropool when replaying agent's DB WAL (#12651) 2023-08-04 10:39:55 +02:00
chunkenc Fix typo in Appender.AppendHistogram() arg name 2023-08-04 10:21:16 +02:00
chunks Use a linked list for memSeries.headChunk (#11818) 2023-07-31 11:10:24 +02:00
docs
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
goversion lint: Adjust to the lint warnings raised by current versions of golint-ci 2023-04-19 17:10:10 +02:00
index Merge pull request #10623 from songjiayang/update-index 2023-07-18 13:47:27 +02:00
record tsdb: Support native histograms in snapshot on shutdown (#12258) 2023-07-05 11:44:13 +02:00
testdata
tombstones Copy tombstone intervals to avoid race (#12245) 2023-05-17 15:15:12 +02:00
tsdbutil tsdb: Fix histogram validation 2023-08-22 23:04:01 +02:00
wlog Add Zstandard compression option for wlog (#11666) 2023-07-11 14:57:57 +02:00
.gitignore
block.go tsdb: sort values for Postings only when required 2023-01-05 14:05:54 +00:00
block_test.go tsdb: Fix histogram validation 2023-08-22 23:04:01 +02: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
compact.go Replace sort.Slice with faster slices.SortFunc 2023-07-02 22:17:08 +00:00
compact_test.go tsdb: Fix histogram validation 2023-08-22 23:04:01 +02:00
db.go Merge pull request #12664 from prometheus/superq/cleanup_chunk_snapshots 2023-08-08 13:02:39 +02:00
db_test.go tsdb: Fix histogram validation 2023-08-22 23:04:01 +02:00
example_test.go storage: allow re-use of iterators 2022-12-15 18:32:45 +00:00
exemplar.go scrape: Enable ingestion of multiple exemplars per sample 2023-07-13 14:16:10 +02:00
exemplar_test.go
head.go Pass ref to SeriesLifecycleCallback.PostDeletion (#12626) 2023-08-03 10:56:27 +02:00
head_append.go tsdb: Fix histogram validation 2023-08-22 23:04:01 +02:00
head_bench_test.go Pass ref to SeriesLifecycleCallback.PostDeletion (#12626) 2023-08-03 10:56:27 +02:00
head_read.go Use a linked list for memSeries.headChunk (#11818) 2023-07-31 11:10:24 +02:00
head_read_test.go Use a linked list for memSeries.headChunk (#11818) 2023-07-31 11:10:24 +02:00
head_test.go tsdb: Fix histogram validation 2023-08-22 23:04:01 +02:00
head_wal.go fix: error message typo 2023-08-17 16:34:45 +03:00
isolation.go ci(lint): enable predeclared linter 2023-05-21 07:33:54 +00:00
isolation_test.go
mocks_test.go
ooo_head.go Name float values as "floats", not as "values" 2023-04-13 19:25:24 +02:00
ooo_head_read.go remove repetitive words (#12556) 2023-07-13 15:53:40 +02:00
ooo_head_read_test.go Add Zstandard compression option for wlog (#11666) 2023-07-11 14:57:57 +02:00
ooo_head_test.go Name float values as "floats", not as "values" 2023-04-13 19:25:24 +02:00
querier.go Hide histogram chunk append and reset header internals (#12352) 2023-07-26 15:08:16 +02:00
querier_bench_test.go Apply relevant label matchers in LabelValues before fetching extra postings (#12274) 2023-07-04 10:37:58 +01:00
querier_test.go tsdbutil/ChunkFromSamplesGeneric should not panic 2023-07-20 17:01:34 +02:00
README.md Fixed broken link in tsdb README.md 2022-10-07 16:20:20 +00:00
repair.go
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 Add Zstandard compression option for wlog (#11666) 2023-07-11 14:57:57 +02:00
wal_test.go Add Zstandard compression option for wlog (#11666) 2023-07-11 14:57:57 +02: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: