Skip to content

@buger buger released this Aug 3, 2021

  • Fix loopback interface issue on windows c9274ac
  • Fix buffer index number for sticky tcp output connection #981 @DimaGolomozy
  • Fix output file size limits #974 @lins05
  • Fixed usage of --input-raw-bpf-filter 2b993ed
  • Fix BPF filter when listen on all interfaces a727ade
  • Optimize packet capture thread to reduce context switching 214edb4
  • Added new debugging endpoint when --http-pprof enabled: /debug/vars
  • Added --input-file-dry-run option to previewing how long it will take and how many requests in given file input 8e76559
  • Added --input-raw-max-wait option (in seconds), which allows to skip long pauses in recorded files 19ad90a
  • Added --input-file-read-depth option to pre-read and buffer requests (and sort them). By default, is 100 625ed54
  • Added --input-raw-timestamp-type go to enable application level timestamps, when network timestamps unreliable 8edb74e
1 person reacted
Assets 8

@buger buger released this Jun 30, 2021

  • Significantly improved CPU and Memory usage.
  • Added af_packet packet capture engine for Linux #950
  • Skip incomplete or malformed messages from output (can be enabled back by setting --input-raw-allow-incomplete) #953
5 people reacted
Assets 8

@buger buger released this Jun 10, 2021

  • Added a way to capture multiple ports using one input like this: --input-raw :80,8080,3000 #935
  • Fixed usage of "localhost" hostname when trying to limit scope of packet capture (e.g. --input-raw localhost:80), now it properly binds to loopback interface #943
  • Fixed detection of windows network interfaces #943
  • Fixed Makefile job to generate windows binaries
  • Fixed big memory allocation issue happening during HTTP message end check. Was also causing issues in chunked message detection.
4 people reacted
Assets 8

@buger buger released this Jun 9, 2021

Changes from previous RC

  • Big changes in capture engine to give more performance and stability #916
  • Fixed a bug when GoRepay were including outgoing HTTP request initialized within the app, and having the same port #941
  • Added (again) windows support #940
  • Fix Output HTTP connection leak #927
Assets 8

@buger buger released this Jan 15, 2021

Add githubAction to build & push docker image on github release publi…

…shed event. (#881)

fixes #880 👍 

Update Dockerfile
- fix alpine image version
- add RELEASE_VERSION build arg

Add githubAction to build & push docker image on github release published event
- add github workflow file
- add dependabot file to automatically propose PRs on githubActions version update*

> ⚠️ *Note1: you will have to add `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` as github secrets in order for the 
> ⚠️ *Note2: github dependabot support must be enabled in order for this action to work
githubAction to be able to login to the dockerHub and push images on it 👍
> *Note3:  we can add other dependabot entries in order to update Go modules and Dockerfile base images 👍 (i.e `FROM` parts)
Assets 6

@buger buger released this Sep 17, 2020

  • Engine CPU consumption reduced by 60%
  • Implemented M'mapped AF_PACKET for Linux. To enable set --input-raw-engine af_packet. #807
  • Added Kafka TLS configuration flag #800
  • Fix wrong param value updated while --http-set-param #791
  • The engine can now capture more requests with large payload #797
  • Created TCP package #97
  • Fixed minor bugs in HTTP proto parser
Assets 7

@buger buger released this Jul 4, 2020

  • Fix usage of multiple --input-raw plugins, e.g. --input-raw :80 --input-raw :81 --input-raw :82 #700
  • Allow to set byte size limits in human friedly format: --output-file-size-limit, --output-file-max-size-limit, --copy-buffer-size and --input-raw-buffer-size can now parse inputs from differents bases and data units like: 10mb, 10kb, 100gb, 18t #754
  • Fix calculation of the output file size when using gzip compression #777
  • Added --output-tcp-sticky so request/response with same ID sent to the same connection.
  • Better handling of malformed middleware output #737
  • Fixed race when reading or writing using files #756 #764
  • Improved errors verbosity #703
  • Updated dependencies, including libpcap which should bring more stability and performance
  • Move to Go modules
  • PRO code moved to the main repository under separate license
Assets 7

@buger buger released this Mar 30, 2019

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. []
  • 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
    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
Assets 6

@buger buger released this Feb 23, 2019

  • Added support for HTTP proxies. Just set HTTP_PROXY env variable.
Assets 4

@buger buger released this Jun 30, 2017

  • Add support for TLS connections between --input-tcp and --output-tcp. --input-tcp-secure --input-tcp-certificate ./cert.pem --input-tcp-certificate-key ./key.pem --output-tcp-secure #457
  • Add basic support for old server, like HTTP 0.9 #468 #463 #467
  • GoReplay now exit once finished replaying with --input-file #456
  • Fix prettifier issue, when there is problems with gzip encoding payload #470
Assets 4