nginx, lua и время отклика

У меня есть nginx loadbalancer, который просто передает запросы нескольким вышестоящим серверам.

Теперь, что я хотел бы сделать, это:

Для одного из десяти запросов я хочу измерить время отклика nginx (в миллисекундах) и переслать это значение в базу данных метрики InfluxDB.

Я не уверен, как я могу сделать эту работу. Моя первоначальная идея состояла в том, чтобы использовать функциональность "access_by_lua_block", но, если я правильно понимаю, это выполняется перед отправкой запроса на вышестоящий сервер. Есть ли способ выполнить lua-код после получения ответа от вышестоящего сервера?

Просто для ясности: я хочу узнать время отклика самого балансировщика нагрузки nginx, а не сервера приложений верхнего уровня. Моя конечная цель - сравнить время отклика балансировщика нагрузки с временем отклика вышестоящих серверов, чтобы выявить возможные узкие места в конфигурации балансировщика нагрузки.

1 ответ

Поскольку вы не определились с маршрутом Lua, вы рассматривали New Relic с плагином Nginx? Особенно с Nginx Plus, вы можете получить много того, что вам нужно: https://newrelic.com/plugins/nginx-inc/13

Datadog имеет аналогичную функциональность и явно регистрирует производительность балансировщика нагрузки: https://www.datadoghq.com/blog/monitor-nginx-plus-load-balancing-metrics/

Другие вопросы по тегам