Query Range Computational Model
query_range runs each step independently of the other steps.
There's some performance optimisations, but you'd get the exact same results if you were to call
query 61 times for each of the steps individually.
This means that
topk(5, X) can return far more than 5 time series on a graph, as each time slice is independent.
Beware that too small a duration on an rate/increase compared to the step will miss samples, as range vectors only include data inside their duration. So if you have
rate(my_counter_total[1m]) with a
step URL parameter of 600 (5 minutes), you'll miss 80% of your data.