The application running on the monitored disk intermittently doubles the amount of space it requires, causing disk utilization peaks that only last for a few seconds / minutes.
If the storage space is not enough to account for those peaks, the applications storage gets corrupted.
The monitoring examples I found only account for the usual amount of storage used, and sees the peaks as temporarily glitches.

I tried to use min_over_time(...[12h]) along with predict_linear, but it's not working due to a type error :
I currently have the following PromQL :
predict_linear(node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}[6h]
but what I actually want to monitor is the min_over_time(node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}[12h]) instead of node_filesystem_avail_bytes{job="nodeexporter",fstype!=""} , to account for sporadic disk utilisation peaks.
I thought it make sense, but unfortunately the following is not an accepted PromQL query:
predict_linear(min_over_time(node_filesystem_avail_bytes{job="nodeexporter",fstype!=""}[12h])[6h], 4*60*60)
Error :
Error executing query: invalid parameter "query": 1:94: parse error: ranges only allowed for vector selectors
How would you monitor the disk utilization to take those peaks into account ?
How would you use min_over_time + predict_linear together ?
Thanks in advance for any clue or suggestion !
Just add :5m aftet 6h in the second square brackets. This enables subquery mode, which instructs Prometheus to execute the inner query (e.g. min_over_time(...) on the given time range per every 5 minute step and then to execute the outer query (e.g. predict_linear(...) on top of results returned by inner query.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With