Сервис отвечает 500-кой, а вы не понимаете — проблема в сети, DNS, SSL или бэкенд лёг? Прежде чем лезть в логи и разворачивать Wireshark, попробуйте curl -w и получите полный таймлайн запроса за секунду.
🔹 Зачем это нужно
— Разбивает запрос на фазы: DNS, TCP-коннект, TLS-хендшейк, ожидание первого байта, передача данных.
— Моментально показывает, где именно bottleneck — на уровне сети или приложения.
— Работает везде: на проде, в контейнере, на CI-раннере.
🔹 Как использовать
— Полный таймлайн запроса:
curl -o /dev/null -s -w "\n DNS: %{time_namelookup}s\n TCP: %{time_connect}s\n TLS: %{time_appconnect}s\n TTFB: %{time_starttransfer}s\n Total: %{time_total}s\n" https://your-api.com/health— Если time_namelookup высокий, проблема в DNS, смотрите резолвер.
— Если между time_connect и time_appconnect большой разрыв, тормозит TLS, проверяйте сертификаты.
— Если time_starttransfer зашкаливает при нормальном коннекте, бэкенд думает слишком долго.
— Удобно завернуть в алиас и дёргать по крону для бедняцкого мониторинга latency.
💡 Про-тип: сохраните шаблон в файл и вызывайте через curl -w имя_файла. Не придётся каждый раз гуглить формат переменных.