Назад | Перейти на главную страницу

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

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

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

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

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

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

Поскольку вы не определились с маршрутом 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/