goreplay README

The project's README from github.com/probelabs/goreplay. As one markdown file: README.md.

GitHub release codebeat Go Report Card Join the chat at https://gitter.im/buger/gor Reviewed by Hound

Go Replay

https://goreplay.org/

GoReplay is an open-source network monitoring tool which can record your live traffic and use it for shadowing, load testing, monitoring and detailed analysis.

About

As your application grows, the effort required to test it also grows exponentially. GoReplay offers you the simple idea of reusing your existing traffic for testing, which makes it incredibly powerful. Our state of art technique allows you to analyze and record your application traffic without affecting it. This eliminates the risks that come with putting a third party component in the critical path.

GoReplay increases your confidence in code deployments, configuration and infrastructure changes.

GoReplay offers a unique approach for shadowing. Instead of being a proxy, GoReplay listens in the background for traffic on your network interfaces, requiring no changes in your production infrastructure, other than running GoReplay daemon on the same machine as your service.

Diagram

Check latest documentation.

Installation

Download the latest binary from https://github.com/buger/goreplay/releases or compile by yourself.

Getting started

The most basic setup will be sudo ./gor --input-raw :8000 --output-stdout which acts like tcpdump. If you already have a test environment, you can start replaying by running: sudo ./gor --input-raw :8000 --output-http http://staging.env.

See our documentation and the Getting Started page for more info.

Newsletter

Subscribe to our newsletter to stay informed about the latest features and changes to the Gor project.

Want to Upgrade?

We have created a GoReplay PRO extension which provides additional features such as support for binary protocols like Thrift or ProtocolBuffers, saving and replaying from cloud storage, TCP session replication, etc. The PRO version also includes a commercial-friendly license, dedicated support, and it also allows you to support high-quality open source development.

Problems?

If you have a problem, please review the FAQ and Troubleshooting wiki pages. Searching the issues for your problem is also a good idea.

All bug-reports and suggestions should go through Github Issues or our Google Group (you can just send email to [email protected]). If you have a private question feel free to send email to [email protected].

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Companies using Gor

If you are using Gor, we are happy to add you to the list and share your story, just write to: [email protected]

Author

Leonid Bugaev, @buger, https://leonsbox.com

goreplay (probelabs/goreplay)

Searching Database…

19.3K ·GitHub
Что это такое?GoReplay — инструмент мониторинга сети с открытым исходным кодом: он записывает ваш реальный HTTP-трафик и использует его повторно — для теневого тестирования, нагрузочных тестов, мониторинга и анализа. Вы тестируете на настоящих данных, а не на синтетических скриптах, и выпускаете изменения с большей уверенностью.
Он стоит между моими пользователями и приложением, как прокси?Нет. Он работает в фоне на ваших сетевых интерфейсах и запускается как демон на той же машине, что и ваш сервис: продакшн-инфраструктура остаётся нетронутой, и в путь запроса не попадает ни один сторонний компонент.
Как начать им пользоваться?Скачайте готовый бинарник или соберите его сами. Самый базовый запуск — sudo ./gor --input-raw :8000 --output-stdout: он печатает перехваченный трафик, как tcpdump; направьте --output-http на тестовое окружение, чтобы воспроизвести трафик там.
Чтобы он заработал, нужно что-то ещё ставить?Во время работы — ничего: это самодостаточный бинарник на Go, который при желании можно собрать из исходников (в репозитории есть Makefile). Команды захвата выполняются под sudo, потому что прослушивание сырого трафика интерфейсов требует повышенных прав.
Захват трафика не замедлит мой продакшн-сервис?Избежать этого — главная цель дизайна: GoReplay анализирует и записывает трафик, не влияя на него. А поскольку он не прокси в пути запроса, он избавлен от рисков, которые несёт сторонний компонент в критическом пути.
Можно просто бесплатно использовать его в коммерческих целях?Ядро бесплатное, но в репозитории лежит нестандартная собственная лицензия (GitHub помечает её как NOASSERTION), поэтому перед коммерческим использованием посмотрите файл LICENSE; лицензия, дружественная к коммерческому использованию, входит в платную редакцию PRO.
Зачем воспроизводить реальный трафик вместо того, чтобы писать скрипты нагрузочных тестов?Потому что объём тестовой работы растёт экспоненциально по мере роста приложения. Простая идея автора — переиспользовать трафик, который у вас уже есть: тесты становятся реалистичными без единого скрипта, и он называет это невероятно мощным подходом.
Что даёт платная версия PRO?Поддержку бинарных протоколов вроде Thrift и ProtocolBuffers, сохранение и воспроизведение трафика из облачных хранилищ, репликацию TCP-сессий, а также лицензию, дружественную к коммерческому использованию, и выделенную поддержку.
What are similar projects?hey, vegeta, hurl, oha, wrk, keploy, locust, telegraf
Creator
probelabs
Size
17.7 MB
Stars
19.3K
Age
13y
Commits · 90 Days