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