webserver-llc / angie

Angie - drop-in replacement for Nginx
https://en.angie.software
BSD 2-Clause "Simplified" License
1.24k stars 65 forks source link

Missing 499 status codes in prometheus metrics #95

Closed soda-pop-ice-cream closed 3 months ago

soda-pop-ice-cream commented 3 months ago

Похоже что ответы 499 полностью игнорируются в метриках prometheus. Я попробовал сгенерировать их 30 штук, все появились в логах, а в метриках пусто.

# HELP angie_http_location_zones_responses The number of responses with a specific status in an HTTP location zone.
# TYPE angie_http_location_zones_responses counter
angie_http_location_zones_responses{zone="bmo_metrics_api",code="200"} 2112811
angie_http_location_zones_responses{zone="bmo_metrics_api",code="400"} 77
angie_http_location_zones_responses{zone="bmo_metrics_api",code="404"} 1
angie_http_location_zones_responses{zone="bmo_metrics_api",code="500"} 16
angie_http_location_zones_responses{zone="bmo_metrics_api",code="502"} 11
VBart commented 3 months ago

Добрый день. Метрики ответов считают реальные ответы, т.е. то, что было отправлено клиенту.

499 - это не ответ, а служебный внутренний код, который сигнализирует о том, что обработка запроса прекратилась без отправки ответа. Никаких ответов на такие запросы не отправляется.

Запросы, обработка которых была завершена без отправки ответа - считаются в метрике discarded. Подробнее: https://angie.software/configuration/modules/http_api/#http-server-location

Сам код 499 родился только из-за ограничений формата логов, которых нет в случае API-метрик.

soda-pop-ice-cream commented 3 months ago

Спасибо, век живи - век учись :)