Gor v1.0.0 Release Notes

Release Date: 2019-03-30 // about 5 years ago
  • πŸš€ Long awaited major release of GoReplay!

    • βž• Added option to specify custom BPF filter (e.g. tcpdump syntax). Can be useful in case of non standard network interfaces like tunneling or SPAN port. Example: --input-raw-bpf-filter 'dst port 80’ #478
    • Support for reading directly from pcap file, using --input-raw-engine pcap_file --input-raw ./recording.pcap_
    • βž• Added official Docker image docker pull buger/goreplay. Should be run with --network host argument.
    • βž• Added RPM and DEB packages
    • βž• Added support for HTTP proxies. Just set HTTP_PROXY env variable.
    • βž• Added HTTP basic auth filter: --http-basic-auth-filter "^customer[0-9].*. You specify regexp which match userid:passwd string. [https://github.com/[/pull/475](https://github.com/buger/goreplay/pull/475)]
    • βž• Added option to limit size of output file: when limit is reached, it will exit. Can be used for safety reasons. Example: --output-file-max-size-limit 5gb.
    • βž• Added way to configure output HTTO request queue, which used to hold requests, if all workers are busy. Example: --output-http-queue-len 5000. Default is 1000.
    • Control frequency of --output-http-stats reports using --output-http-stats-msoption. Example: --output-http-stats-ms 5000 (every 5 seconds).
    • πŸ”§ Configurable way to set minimum number of HTTP workers, by setting --output-http-workers-min. Can be used in conjunction with --output-http-workers which will act as a max worker count.
    • βž• Added way to dynamically profile GoReplay performance using Golang pprof tools. Example: --http-pprof :8181. It starts web server on given address, and expose special /debug/pprof endpoint with list of reports.
    • βž• Added β€”input-raw-buffer-size which controls size of the OS buffer (in
      0️⃣ bytes) which holds packets until they dispatched. Default value depends
      🐧 by system: in Linux around 2MB. If you see big package drop, increase
      this value.
    • In addition to buffer size, added option to turn pcap immediate mode when packets delivered without buffering. Can help reduce packet drop. Example: --input-raw-immediate-mode.
    • βž• Added way to use standard Golang HTTP client, by adding --output-http-compatibility-mode
    • Snaplen (max number of bytes being read for each packet)
      now dynamically set based on interface MTU + max header size. In most
      πŸ“¦ situations it should reduce package drop, because each packet will
      consume less space in the buffer. However in some virtualized environments like OpenShift, packet size can be significantly bigger then MTU, so you can disable optimization by setting --input-raw-override-snaplen.
    • βž• Added support for ElasticSearch basic HTTP auth
    • πŸ“œ Numerous fixes to improve quality of HTTP packets parsing