1558 Commits

Author SHA1 Message Date
bwplotka
8f3a6020d8 Merge branch 'main' into st-main-sync2 2026-02-25 13:54:25 +00:00
Julien
9d38077e50
Merge pull request #18080 from ldufr/ldufresne/retention-size-percentage
Add percentage based retention
2026-02-24 15:50:36 +01:00
Laurent Dufresne
c76e78d0a4 Added test for percentage-based retention
Signed-off-by: Laurent Dufresne <laurent.dufresne@grafana.com>
2026-02-24 15:28:45 +01:00
Laurent Dufresne
971143edac Added Retention.Percentage to config file with runtime config reloading
Signed-off-by: Laurent Dufresne <laurent.dufresne@grafana.com>
2026-02-24 15:28:20 +01:00
Jérôme LOYET
696679e50c Add storage.tsdb.retention.percentage config
Signed-off-by: Jérôme LOYET <822436+fatpat@users.noreply.github.com>
Signed-off-by: Laurent Dufresne <laurent.dufresne@grafana.com>
2026-02-24 15:27:45 +01:00
Atıl Sensalduz
7a9c057727
Merge pull request #18180 from atilsensalduz/bugfix/tsdb-writeMetaFile-fd-leak
fix(tsdb): close file descriptor on json.MarshalIndent failure in writeMetaFile
2026-02-24 12:25:00 +00:00
harsh kumar
f312fde4a2
test: Enable parallel execution for chunk write queue tests (#17338)
* test(tsdb): Enable parallel execution for chunk write queue tests

Signed-off-by: Harsh <harshmastic@gmail.com>
2026-02-24 12:37:20 +01:00
bwplotka
d3f4053012 fix test after merge
Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-02-23 10:02:32 +00:00
bwplotka
56c46af6a6 Merge branch 'main' into st-f-main 2026-02-23 10:00:39 +00:00
George Krajcsovits
223f016c44
feat(tsdb): allow using ST capable XOR chunks - retain format on read (#18013)
* feat(tsdb): allow appending to ST capable XOR chunk optionally

Only for float samples as of now.  Supports for in-order and out-of-order
samples.

Make sure that on readout the ST capable chunks are returned automatically.
When the chunks are returned as is, this is trivially true.
When a chunk needs to be re-coded due to deletion (tombstone) markers,
we take the encoding of the original chunk.
When a chunk needs to be created from overlapping chunks, we observe
whether ST is zero or not and create the new chunk based on that.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-20 09:15:51 +01:00
George Krajcsovits
dc8613df54
fix(tsdb): missing passing head option to wal/wbl write (#18113)
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-18 18:49:25 +01:00
Matthieu MOREL
addc3dcb47 chore: enable staticcheck linter and update golangci-lint to 2.10.1
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2026-02-18 15:58:16 +00:00
George Krajcsovits
d1220defd3
refact(tsdb): trivial rename (#18109)
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-18 15:23:37 +01:00
George Krajcsovits
e25dc289be
feat(tsdb): change head opt EnableSTStorage to atomic (#18107)
In downstream projects this needs to be set dynamically per tenant.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-18 10:56:03 +01:00
Julien Pivotto
7d0a39ac93 chore(lint): enable wg.Go
Since our minimum supported go version is now go 1.25, we can use wg.Go.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-02-17 15:21:51 +01:00
bwplotka
5ac1080a60 refactor: sed enableStStorage/enableSTStorage
Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-02-17 11:11:46 +00:00
Bartlomiej Plotka
e4c997c126
Merge pull request #18085 from aknuds1/arve/fix-test-block-ranges
tsdb: fix flaky TestBlockRanges by using explicit compaction
2026-02-17 09:08:38 +00:00
Kyle Eckhart
ae062151cd
tsdb/wlog: Remove any temproary checkpoints when creating a Checkpoint (#17598)
* RemoveTmpDirs function to tsdbutil
* Refactor db to use RemoveTmpDirs and no longer cleanup checkpoint tmp dirs
* Use RemoveTmpDirs in wlog checkpoint to cleanup all checkpoint tmp folders
* Add tests for RemoveTmpDirs
* Ensure db.Open will still cleanup extra temporary checkpoints

Signed-off-by: Kyle Eckhart <kgeckhart@users.noreply.github.com>
2026-02-17 09:23:54 +01:00
Bryan Boreham
b908cc48a2
Merge pull request #18069 from mishraa-G/optimize-label-api
tsdb:Optimize LabelValues API performance (#14551)
2026-02-16 21:51:40 +00:00
Arve Knudsen
b0718d5c93 tsdb: fix flaky TestBlockRanges by using explicit compaction
Replace polling loops (for range 100 { time.Sleep }) with explicit
db.Compact() calls after disabling background compaction, eliminating
CI flakiness on slow machines. Also fix incorrect overlap assertions
that were checking the wrong direction (LessOrEqual -> GreaterOrEqual).

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-02-15 11:44:23 +01:00
Divyansh Mishra
fcb68060cb tsdb: Optimize LabelValues for sparse intersections (Fixes #14551)
Signed-off-by: Divyansh Mishra <divyanshmishra@Divyanshs-MacBook-Air-3.local>
2026-02-14 15:18:54 +05:30
Owen Williams
b57f5b59b3
tsdb: ST-in-WAL: Counter implementation and benchmarks (#17671)
Initial implementation of https://github.com/prometheus/prometheus/issues/17790.
Only implements ST-per-sample for Counters. Tests and benchmarks updated.

Note: This increases the size of the RefSample object for all users, whether st-per-sample is turned on or not.

Signed-off-by: Owen Williams <owen.williams@grafana.com>
2026-02-12 13:17:50 -05:00
György Krajcsovits
64208c7e62
Add cases with jitter in the start time as well
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-11 16:34:44 +01:00
Bartlomiej Plotka
d86068c52e
Take latest from main (#18060)
* Update npm dependencies for v3.10

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>

* Fix critical npm vulnerabilities with npm audit fix

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>

* UI: Move HistoryCompleteStrategy into its own file and fix lint

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>

* [REFACTOR] Relabel: Remove unnecessary Process() function

All uses can be replaced by ProcessBuilder, which is more efficient.

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

* promql: use Kahan summation for Native Histograms (#15687)

As for float samples, Kahan summation is used for the `sum` and `avg` aggregation and for the respective `_over_time` functions.

Kahan summation is not perfect. This commit also adds tests that even Kahan summation cannot reliably pass.
These tests are commented out.

Note that the behavior might be different on other hardware platforms. We have to keep an eye on test failing on other hardware platforms and adjust them accordingly.

Signed-off-by: Aleksandr Smirnov <5targazer@mail.ru>

* fix(docs): typo in prometheus_agent.md doc

Signed-off-by: Mohammad Abbasi <mohammad.v184@gmail.com>

* AWS SD: ECS Standalone Tasks

The current ECS role in AWS SD assumes that a task is part of a service.
This means that tasks that are started as part of AWS Batch will get
missed and not be discovered. This changed fixes this so that standalone
tasks can be discovered as well.

Signed-off-by: matt-gp <small_minority@hotmail.com>

* AWS SD: Optmise MSK Role

Signed-off-by: matt-gp <small_minority@hotmail.com>

* promtool: support missing promql syntax features (#17926)

Namely promql-duration-expr and promql-extended-range-selectors. This
allows promtool to e.g. check rules files using syntax gated by these
features.

Signed-off-by: Ian Kerins <git@isk.haus>

* Also run CI on release tags

Make sure we also run the main CI workflow `v*` release tags
so `publish_release` job is run.

Signed-off-by: SuperQ <superq@gmail.com>

* chore(deps): bump github.com/hashicorp/consul/api from 1.32.0 to 1.33.2 (#17449)

Bumps [github.com/hashicorp/consul/api](https://github.com/hashicorp/consul) from 1.32.0 to 1.33.2.
- [Release notes](https://github.com/hashicorp/consul/releases)
- [Changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/consul/compare/api/v1.32.0...api/v1.33.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/consul/api
  dependency-version: 1.33.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* AWS SD: Load Region Fallback (#18019)

* AWS SD: Load Region Fallback

---------

Signed-off-by: matt-gp <small_minority@hotmail.com>

* Build riscv64 docker image by default (#17508)

* Allow building riscv64 docker  image

Co-authored by: nijincheng@iscas.ac.cn;

Signed-off-by: ffgan <sudoemt@gmail.com>

* Update Makefile

Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: ffgan <sudoemt@gmail.com>

---------

Signed-off-by: ffgan <sudoemt@gmail.com>
Co-authored-by: Ben Kochie <superq@gmail.com>

* Increase Renovate speed (#18052)

* Allow Renovate to run all day on the monthly day.
* Increase the max PRs from 10 to 20.
* Incresae the PR open rate from 2 to 5.

Signed-off-by: SuperQ <superq@gmail.com>

* docs(api): clarify metadata vs remote protocols (#17481)

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>

* tsdb/index: export sentinel error for symbol table size exceeded

Signed-off-by: Patryk Prus <p@trykpr.us>

* Update Go dependencies for v3.10 release

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>

* Kubernetes SD: Disable WatchListClient in tests

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>

* Replace deprecated google.CredentialsFromJSON with option.WithAuthCredentialsFile

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>

* chore(deps): update actions/checkout action to v4.3.1 (#18054)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update actions/cache action to v5.0.3 (#18053)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update actions/setup-go action to v6.2.0 (#18055)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

---------

Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
Signed-off-by: Aleksandr Smirnov <5targazer@mail.ru>
Signed-off-by: Mohammad Abbasi <mohammad.v184@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
Signed-off-by: Ian Kerins <git@isk.haus>
Signed-off-by: SuperQ <superq@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Signed-off-by: ffgan <sudoemt@gmail.com>
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
Signed-off-by: Patryk Prus <p@trykpr.us>
Co-authored-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
Co-authored-by: Bryan Boreham <bjboreham@gmail.com>
Co-authored-by: Sasha <103973965+crush-on-anechka@users.noreply.github.com>
Co-authored-by: Mohammad Abbasi <mohammad.v184@gmail.com>
Co-authored-by: matt-gp <small_minority@hotmail.com>
Co-authored-by: Ian Kerins <git@isk.haus>
Co-authored-by: SuperQ <superq@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Julien <291750+roidelapluie@users.noreply.github.com>
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Co-authored-by: ffgan <sudoemt@gmail.com>
Co-authored-by: Patryk Prus <p@trykpr.us>
Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
Co-authored-by: Joe Adams <github@joeadams.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-11 09:20:27 +00:00
Patryk Prus
d8c24c6bde
tsdb/index: export sentinel error for symbol table size exceeded
Signed-off-by: Patryk Prus <p@trykpr.us>
2026-02-10 12:44:32 -05:00
George Krajcsovits
411eb36b13
Merge pull request #17909 from prometheus/krajo/st-in-xorchunk
feat(tsdb/chunkenc): add float chunk format with start timestamp support
2026-02-06 19:28:22 +01:00
György Krajcsovits
b2491c7cf7
fix(chunkenc): bug in initializing appender on existing chunk
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-06 15:35:45 +01:00
György Krajcsovits
07c543f02d
test(chunkenc): test that appender can contonue chunks
Test that initializing a chunk appender from an existing chunk
works correctly.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-06 15:35:20 +01:00
Ganesh Vernekar
fe5cb190e6
tsdb: Add metrics for stale series compaction (#17957)
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-02-06 09:05:56 +00:00
György Krajcsovits
de4a24325e
add st equal t to bechmarks
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-05 18:52:37 +01:00
György Krajcsovits
65efa8f95a
test the case where st equals the t
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-05 18:44:01 +01:00
Bartlomiej Plotka
c8e7f4e2a6
tests: Unify TestDiskFillingUpAfterDisablingOOO and avoid hiding errors (#18017)
* tests: Unify TestDiskFillingUpAfterDisablingOOO and avoid hiding errors

Signed-off-by: bwplotka <bwplotka@gmail.com>

* addressed comments

Signed-off-by: bwplotka <bwplotka@gmail.com>

---------

Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-02-05 16:11:35 +00:00
György Krajcsovits
2917c91727
Merge remote-tracking branch 'origin/main' into krajo/st-in-xorchunk 2026-02-04 21:26:18 +01:00
György Krajcsovits
59bd0a2a30
Reduce size of first st stored a little
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-04 21:20:32 +01:00
György Krajcsovits
e777d4077c
verify chunk sample len function
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-04 19:48:15 +01:00
Ben Kochie
8d491cc642
tsdb: Migrate multi-errors to errors package (#17768)
Modernize tsdb package by migrating multi-error handling
to the standard library errors package.
* Add a modernized CloseAll helper.

Signed-off-by: SuperQ <superq@gmail.com>
2026-02-04 10:41:57 +01:00
György Krajcsovits
bbc85a3a96
Write ST after T and V so we can write a single bit on the second sample
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-03 22:11:04 +01:00
György Krajcsovits
59a6706abb
Switch to delta of difference of st to prev t
from delta of delta of st.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-03 20:55:44 +01:00
György Krajcsovits
9fc9033ad8
Add delta st inclusive test case for random vt
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-02-03 08:24:12 +01:00
Bartlomiej Plotka
eefa6178fb
fix: fix rare race on empty head.initialized() vs head.initTime() (#17963)
* fix: fix rare race on empty head.initized() vs head.initTime()

Relates to https://github.com/prometheus/prometheus/issues/17941

Signed-off-by: bwplotka <bwplotka@gmail.com>

* Apply suggestions from code review

Co-authored-by: Owen Williams <owen.williams@grafana.com>
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>

* addressed comments

Signed-off-by: bwplotka <bwplotka@gmail.com>

---------

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Co-authored-by: Owen Williams <owen.williams@grafana.com>
2026-02-02 09:13:02 +00:00
Arve Knudsen
d9db76631d
tsdb: fix flaky TestWaitForPendingReadersInTimeRange tests (#17985)
The tests were flaky because they used hard-coded time.After(550ms)
waits, which had only 50ms margin over WaitForPendingReadersInTimeRange's
500ms poll interval. On slow CI runners, this margin wasn't reliable.

Use synctest for deterministic time control:
- Wrap test logic in synctest.Test() to use fake time
- Use synctest.Wait() to let goroutines reach dormant state
- Use time.Sleep() to advance fake time past the poll interval
- No more timing-dependent assertions

This makes the tests both reliable and ~60x faster (0.05s vs 3s).

Fixes both TestWaitForPendingReadersInTimeRange and
TestWaitForPendingReadersInTimeRange_AppenderV2.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-02-01 15:52:26 +00:00
György Krajcsovits
e7c5105772
Merge remote-tracking branch 'origin/main' into krajo/st-in-xorchunk 2026-01-30 13:46:16 +01:00
Bartlomiej Plotka
88f6ee4c8e
tests(scrape): add TestScrapeLoopAppend_WithStorage (#17937)
Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-01-30 11:44:07 +00:00
György Krajcsovits
1ac3b8d8ec
Small simplification in the doc
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 11:34:59 +01:00
György Krajcsovits
6133dd5f3e
documentation
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 11:31:54 +01:00
György Krajcsovits
475dfb5ea9
Drop commented out line
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 10:41:05 +01:00
György Krajcsovits
65b70bbe77
drop unused code
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 10:39:50 +01:00
György Krajcsovits
e6a0193a27
make testcases independent of order
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 09:30:05 +01:00
György Krajcsovits
4ef8186575
add inclusive delta test case
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 09:23:29 +01:00
György Krajcsovits
a0314d5539
Fix benchmark expectations on ST in interator
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-30 09:01:29 +01:00