Как получить квантиль скорости в прометее - PullRequest
0 голосов
/ 01 апреля 2020

Я смотрю на эту статью

# TYPE prometheus_http_request_duration_seconds histogram
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.1"} 25547
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.2"} 26688
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.4"} 27760
prometheus_http_request_duration_seconds_bucket{handler="/",le="1"} 28641
prometheus_http_request_duration_seconds_bucket{handler="/",le="3"} 28782

Я не понимаю, почему

histogram_quantile(0.9, 
    rate(prometheus_http_request_duration_seconds_bucket[5m])
)

не дает вам квантиль скорости с единицей observe event / second но вместо этого дайте квантиль длительности запроса с единицей second / observe event

rate(prometheus_http_request_duration_seconds_bucket[5m]

должен дать вам number of observe event in certain bucket / second среднее значение за 5 минут

Я бы предположил, что histogram_quantile даст вам квантили курса

Я должен что-то неправильно понимать

1 Ответ

0 голосов
/ 02 апреля 2020

Функция rate() предназначена для указания времени windows для вычисления квантиля , как указано в функции histogram_quantile () . Он переводится как «за последние 5 минут, какое максимальное время ответа http было у 90% моих пользователей?»

Функция histogram_quantile() интерполирует квантильные значения, предполагая линейное распределение внутри сегмента, le дает максимальное время наблюдения. Ведро - это счетчик, измеряющий количество наблюдений с момента начала процесса. rate() делает ссылку, вычисляя количество появлений наблюдений в секунду (в среднем), из которого можно интерполировать время ответа (в среднем) за временной интервал.

Вы правы, что это не так 100% точность измерения из-за среднего, но функция делает много предположений, и выбор сегментов уже вводит смещение.

Я думаю, вы могли бы использовать irate() для вычисления мгновенных квантилей, но есть вероятность, что было бы более шумно.

...