К
КИБ
@kibinfo1.1K подп.
1.1Kпросмотров
100.0%от подписчиков
27 октября 2025 г.
Score: 1.2K
Решал конкретно свою задачу и в итоге решил, что это можно выкатить в опенсорс. Мне нужно было задебажить запросы к удаленному API по перформансу - не просто увидеть "запрос занял 800 мс", а получить реальную картину: какие этапы есть у запроса, сколько времени тратится на каждый шаг (DNS, коннект, TLS, ожидание ответа и т д), что именно тормозит. Так и появился httptap. 🔗 Репозиторий: https://github.com/ozeranskii/httptap Пока не опубликован в PyPI - профукал учетку, пытаюсь восстановить. Если не получится, сделаю новую 🤦‍♂️ PyPi - https://pypi.org/project/httptap/ Почему не httpstat Когда искал готовые решения, нашел два инструмента: - https://github.com/reorx/httpstat (Python) - https://github.com/davecheney/httpstat (Go) И вот какие там ограничения. httpstat (Python): - это по сути обертка над curl - без curl не работает - проект давно не развивается - по набору фичей тоже получается бедней, чем у меня httpstat (Go): - нативная реализация без curl. Удобно - но это скорее удобный curl -v с подсветкой - нет глубокого TLS аудита - нет JSON экспорта для автоматизации и регрессионных проверок Короче, ни одно решение не закрывало мои сценарии полностью, плюс захотел свое ,как мне кажется, более интересное. Что делает httptap по другому 🎯 Чистая Python экосистема - без внешнего curl и системных зависимостей - минимум зависимостей: httpx, dnspython, rich - работает на macOS, Linux, Windows - можно использовать как CLI и можно использовать как библиотеку внутри питоновского кода 📊 Продвинутый трейсинг - точные замеры через httpcore trace hooks, а не парсинг вывода curl - полная цепочка редиректов с таймингами на каждом хопе - честно помечает метрики как is_estimated, если где то пришлось сделать фолбек - это не просто "запрос занял N мс", это поэтапный waterfall 🔒 Глубокая TLS инспекция - версия протокола и cipher suite - common name сертификата - сколько дней осталось до истечения (cert_days_left) - отдельный TLS probe чтобы это измерить и показать отдельно 🌐 Работа с сетью - определяет IPv4/IPv6 - показывает какой IP был на каждом шаге редиректа 💾 Удобные форматы вывода - rich waterfall - человекочитаемая табличка с этапами - compact - однострочник для логов - metrics-only - только цифры, чтобы парсить в скриптах или в CI - полный JSON экспорт со всеми метаданными по каждому шагу, включая тайминги DNS/TCP/TLS/TTFB/Transfer, хедеры, сертификаты, summary - максирование чувствительных заголовков при экспорте в JSON 🔧 Расширяемость - четкие интерфейсы для DNS резолвера, TLS инспектора, визуализации - можно подменить компонент и встроить httptap в свою отладку - это не тупо консолька, это реально пригодно как часть пайплайна Как это устроено внутри В отличие от httpstat (python), который полагается на curl, httptap делает все сам внутри Python: - использует httpx/httpcore и низкоуровневые trace hooks, то есть мы реально видим поведение клиента на уровне сокетов - лезет в TLS руками и вытаскивает параметры шифрования и сертификат - полностью контролирует измерения, а не просто печатает чужую статистику Для чего это вообще - performance troubleshooting - где именно тормозит API - regression analysis - сравнение базовой метрики и текущей - tls audit - что там с сертификатом и шифром - network diagnostics - DNS, IPv4 vs IPv6, латентность соединения - redirect chain analysis - как реально ходит запрос до финальной точки Если вы отлаживаете API и вам нужно не просто "оно отвечает медленно", а понять почему - забирайте, пишите фидбек и контрибутьте. 🚀
1.1K
просмотров
3522
символов
Да
эмодзи
Нет
медиа

Другие посты @kibinfo

Все посты канала →
Решал конкретно свою задачу и в итоге решил, что это можно в — @kibinfo | PostSniper