goreplay: open-source network monitoring tool

network monitoring tool

goreplay

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.

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-the-art technology allows you to analyze and record your application traffic without affecting it. This eliminates the risks that come with putting a third-party component on the critical path.

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

GoReplay offers a unique approach to 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.

Gor architecture tries to follow UNIX philosophy: everything made of pipes, various inputs multiplexing data to outputs.

You can rate limit, filter, rewrite requests or even use your own middleware to implement custom logic. Also, it is possible to replay requests at a higher rate for load testing.

Available input and output plugins

Available inputs:

  • –input-raw – used to capture HTTP traffic, you should specify the IP address or interface and application port. More about Capturing and replaying traffic.
  • –input-file – accepts files which previously was recorded using –output-file. More about Saving and Replaying from file
  • –input-tcp – used by Gor aggregation instance if you decided forward traffic from multiple forwarder Gor instances to it. Read about using Aggregator-forwarder setup.

Available outputs:

  • –output-http – replay HTTP traffic to a given endpoint, accepts base url. Read more about it
  • –output-file – records incoming traffic to the file. More about Saving and Replaying from file
  • –output-tcp – forward incoming data to another Gor instance, used in conjunction with –input-tcp. Read more about Aggregator-forwarder setup.
  • –output-stdout  – used for debugging, outputs all data to stdout.

Install & Use

Copyright (c) 2011-present Leonid Bugaev