при использовании 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).
Может быть, это даст вам начало.
В Curl есть неплохие возможности для отслеживания времени подключения.
Так что это может дать вам именно то, что вы хотите.
Удачи!