Одна метрика приложения даёт много рядов; чтобы ответить «сколько ошибок», их складывают.
Учебное приложение labapp считает запросы метрикой labapp_http_requests_total с метками code, method и path — у каждого сочетания свой ряд. Нужные ряды выбирает селектор — условия на метки в фигурных скобках: {code="500"} — равно, {code!="200"} — не равно, {path=~"/api/.*"} — подходит под регулярное выражение.
Складывает ряды агрегация. sum by (code) (…) суммирует все ряды с одинаковым code и оставляет только эту метку; sum without (method) (…) убирает названную метку, а остальные оставляет. Так же работают avg, max и count. Складывают скорости — sum by (code) (rate(…[1m])): сумма самих счётчиков снова дала бы итог с запуска.
Сложи запросы по кодам
Prometheus собирает метрики учебного приложения labapp. Посмотри скорость запросов по каждому ряду labapp_http_requests_total, а потом — сумму скоростей по кодам ответа.
Сначала предположи
Сколько строк напечатает запрос с sum by (code)?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Метки, которых нет в by, из ответа пропали: строки с разными адресами и методами сложились в одну. Без by — sum(rate(…)) — осталась бы одна строка: все запросы приложения в секунду.