mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-11 08:04:04 -08:00
96a303b348
Currently, if a series stops to exist, its head chunk will be kept open for an hour. That prevents it from being persisted. Which prevents it from being evicted. Which prevents the series from being archived. Most of the time, once no sample has been added to a series within the staleness limit, we can be pretty confident that this series will not receive samples anymore. The whole chain as described above can be started after 5m instead of 1h. In the relaxed case, this doesn't change a lot as the head chunk timeout is only checked during series maintenance, and usually, a series is only maintained every six hours. However, there is the typical scenario where a large service is deployed, the deoply turns out to be bad, and then it is deployed again within minutes, and quite quickly the number of time series has tripled. That's the point where the Prometheus server is stressed and switches (rightfully) into rushed mode. In that mode, time series are processed as quickly as possible, but all of that is in vein if all of those recently ended time series cannot be persisted yet for another hour. In that scenario, this change will help most, and it's exactly the scenario where help is most desperately needed. |
||
---|---|---|
.. | ||
chunk | ||
codable | ||
fixtures/b0 | ||
index | ||
storagetool | ||
crashrecovery.go | ||
heads.go | ||
instrumentation.go | ||
interface.go | ||
locker.go | ||
locker_test.go | ||
mapper.go | ||
mapper_test.go | ||
noop_storage.go | ||
persistence.go | ||
persistence_test.go | ||
series.go | ||
series_test.go | ||
storage.go | ||
storage_test.go | ||
test_helpers.go |