Выбор ответа Middle PromQL обновлено
Доля ошибок без sum
Вопрос
Что вернёт запрос без агрегации, если есть ряды {status="200"} и {status="500"}?
rate(http_requests_total{status=~"5.."}[5m])
/ rate(http_requests_total[5m])
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Ряд {status="500"} со значением 1, ряды 200 выпадают. Бинарная операция сопоставляет ряды с одинаковыми метками.
Варианты ответа
- Правильную долю ошибок для каждого пода
- Ошибку синтаксиса: деление рядов с разными метками запрещено
- Ряд
{status="500"}со значением 1, ряды 200 выпадаютправильный ответ - Пустой результат, потому что метки не совпадают
Разбор
Бинарная операция сопоставляет ряды с одинаковыми метками. Ряд status="500" из числителя находит в знаменателе ряд с теми же метками, то есть самого себя, и результат 1 (100%). Ряды status="200" есть только в знаменателе и пропадают. Правильно агрегировать обе части: sum(rate(...{status=~"5.."}[5m])) / sum(rate(...[5m])) или sum by (job) с обеих сторон. Проверено на движке PromQL из Prometheus 3.5.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.