This repository is based on Prometheus tsdb v0.8.0.
The design of the original Prometheus tsdb can be found here.
The original compression methods are based on the Gorilla white papers.
See also the format documentation.
You can find the data set here.
Please copy the files to folder "testdata/bigdata/node_exporter".
Prepare the dependency:
$ go mod vendor
Need to turn off profiling and set flag ne (use node exporter labels).
> cd cmd/tsdb
Random data
> go run -mod=vendor main.go bench write --osleep [baseline sleep seconds] --gsleep [group sleep seconds] --metrics [num of ts] --batch [batch size]
Timeseries data
> go run -mod=vendor main.go bench write --osleep [baseline sleep seconds] --gsleep [group sleep seconds] --metrics [num of ts] --batch [batch size] --timeseries
You can midify the numSeries
in db_bench_tsbs_test.go
to test different data volumes.
Test Prometheus tsdb
> go test -mod=vendor -run ^$ -bench ^BenchmarkDBtsbs$ . -timeout 99999s -benchtime 10s -v
Test TGroup
> go test -mod=vendor -run ^$ -bench ^BenchmarkGroupDBtsbs$ . -timeout 99999s -benchtime 10s -v