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

haproxy, нельзя ли отслеживать общее время запроса http?

при использовании HTTP-журналов haproxy с http-server-close of keep-alive счетчики времени в журналах (TR, Tt ...) основаны на начале TCP-соединения. Это означает, что только первый запрос со статусом cookie * NI (--NI) имеет таймеры, соответствующие времени выполнения HTTP-запроса.

Следующие будут с начала TCP-соединения (время простоя + время предыдущего запроса).

Есть ли способ обойти это поведение haproxy, не отключая keepalive или http-server-close, или я вынужден изменить эту конфигурацию, или добавить прокси перед haproxy ..?


В конце концов, есть ли способ получить общее время ответа на HTTP-запрос, а не время с начала TCP?

После уточнения того, что вы имели в виду, я считаю, что вы хотите точно выяснить, что на самом деле делает ha-proxy, а не генерировать тест производительности от клиента с использованием curl и ab (apache bench).

Прокси-сервер Ha поставляется со страницей статистики, которая может предоставить вам множество параметров. Это может быть именно то, что вам нужно.

https://www.haproxy.com/blog/exploring-the-haproxy-stats-page/

Вы можете получить статистику, которую генерирует haproxy. Вам должно быть интересно

Response time   

The server response time in milliseconds, averaged over the last 1024 successful connections.

Удачи!

time curl -v http://www.google.com http://www.google.com 

это будет использовать keepalive и не открывать новое TCP-соединение для любого запроса (если ваш веб-сервер поддерживает keepalive).

  • Подключение # 0 к хосту www.google.com оставлен нетронутым
  • Повторное использование существующего соединения! (# 0) с хостом www.google.com

Может быть, это даст вам начало.

В Curl есть неплохие возможности для отслеживания времени подключения.

https://stackoverflow.com/questions/18215389/how-do-i-measure-request-and-response-times-at-once-using-curl

Так что это может дать вам именно то, что вы хотите.

Удачи!