Если рассуждать в контексте базовых функций, то для вычисления изменения величины нам нужно минимум два измерения. Когда мы задаем временное окно, мы определяем, сколько значений попадает в расчет.
Чем больше окно, тем больше измерений включается, и график получается более сглаженным;
Чем меньше окно, тем меньше измерений участвует, что может привести к большему шуму.
Официальная документация советует, чтобы конечный пользователь выбирал временное окно, в которое попадает хотя бы 4 измерения. Это помогает избежать резких скачков и получения некорректных данных. Или другими словами:
Рекомендации к выбору временного окна
Возвращаясь к вопросу, а как лучше выбирать временное окно, то мне кажется тут нет однозначного ответа.
Официальная документация рекомендует, что лучше избегать использования:
констант (например, 30s, 1m, 2m);
$__interval.
Вместо этого рекомендуется использовать $__rate_interval, так как он автоматически подбирается так, чтобы временное окно было как минимум в 4 раза больше, чем Scrape Interval:
We recommend using $__rate_interval in the rate and increase functions instead of $__interval or a fixed interval value. Because $__rate_interval is always at least four times the value of the Scrape interval, it avoid problems specific to Prometheus.
Обычно я использую либо константы, либо $__rate_interval. В 99% случаев этого достаточно, и проблем не возникает.
Но однажды я столкнулся с редким случаем: мне нужно было посмотреть график перезапуска Pod'ов (счётчик менялся очень медленно) на большом временном интервале. Указание константы меня подвело, и я практически не видел "столбов" перезапуска на графике (хотя перезапусков было не мало). После замены константы на $__rate_interval Grafana уже корректно отобразила результаты.
Подскажите пожалуйста, реально ли в метод send() передавать объекты посложнее чем строковые литералы или строковые литералы + EL? И можно ли обратиться к атрибутам сессии, чтобы в метод send подсовывать объекты, у которых поля изменяются в процессе симуляции?
Если рассуждать в контексте базовых функций, то для вычисления изменения величины нам нужно минимум два измерения. Когда мы задаем временное окно, мы определяем, сколько значений попадает в расчет.
Чем больше окно, тем больше измерений включается, и график получается более сглаженным;
Чем меньше окно, тем меньше измерений участвует, что может привести к большему шуму.
Официальная документация советует, чтобы конечный пользователь выбирал временное окно, в которое попадает хотя бы 4 измерения. Это помогает избежать резких скачков и получения некорректных данных. Или другими словами:
Возвращаясь к вопросу, а как лучше выбирать временное окно, то мне кажется тут нет однозначного ответа.
Официальная документация рекомендует, что лучше избегать использования:
констант (например, 30s, 1m, 2m);
$__interval.
Вместо этого рекомендуется использовать $__rate_interval, так как он автоматически подбирается так, чтобы временное окно было как минимум в 4 раза больше, чем Scrape Interval:
Обычно я использую либо константы, либо $__rate_interval. В 99% случаев этого достаточно, и проблем не возникает.
Но однажды я столкнулся с редким случаем: мне нужно было посмотреть график перезапуска Pod'ов (счётчик менялся очень медленно) на большом временном интервале. Указание константы меня подвело, и я практически не видел "столбов" перезапуска на графике (хотя перезапусков было не мало). После замены константы на $__rate_interval Grafana уже корректно отобразила результаты.
Также приложу несколько ссылок (вдруг помогут):
https://grafana.com/blog/2020/09/28/new-in-grafana-7.2-__rate_interval-for-prometheus-rate-queries-that-just-work/
https://grafana.com/docs/grafana/latest/datasources/prometheus/template-variables/#use-__rate_interval
https://www.robustperception.io/what-range-should-i-use-with-rate/
del
Спасибо за статью!
Подскажите пожалуйста, реально ли в метод send() передавать объекты посложнее чем строковые литералы или строковые литералы + EL? И можно ли обратиться к атрибутам сессии, чтобы в метод send подсовывать объекты, у которых поля изменяются в процессе симуляции?