подсчет кол-ва ошибок при обращении к апстриму

pturrr nginx-forum at nginx.us
Wed Aug 21 11:35:48 UTC 2013


Добрый день.

У нас есть апстрим, у которого установлены достаточно маленькие значения
таймаутов. В error.log пишется, что Connection timed out while reading
upstream... Это для нас нормальная ситуация. Мы озаботились тем, чтобы
считать кол-во ошибок, которые попадают в лог. Берем последнюю минуту,
считаем все строки, где есть Сonnection timed out и рисуем график. 

Когда у нас произошел таймаут к апстриму, мы отдаем пустую страничку и HTTP
200/OK
error_page 500 501 502 503 504 = наш локейшен, который отдает 200ок

В локейшене, который отдает 200ок у нас есть аксесс лог, в который мы пишем
обращения к нему.

То есть у нас есть два лога - error.log, и access.log другого локейшена,
куда нжинкс перенаправляет в случае ошибки первого. Логично было бы
предположить, что кол-во ошибок за секунду было бы равно кол-ву ошибок
access лога того локейшена, куды мы редиректим. Но это не так. Кол-во ошибок
в error.log намного больше, чем кол-во обращений к локейшену, который отдает
HTTP 200. 

Как такое может быть?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,242076,242076#msg-242076



Подробная информация о списке рассылки nginx-ru