All Projects → Gonzih → log-replay

Gonzih / log-replay

Licence: MIT license
Replay nginx/haproxy/solr logs for the sake of stress testing

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to log-replay

fuzzing
🐰 Tool set for fuzz and stress testing your functions!
Stars: ✭ 22 (-65.08%)
Mutual labels:  stress-testing
Links-QA
Сборная солянка полезных ссылок для QA/тестировщика. Ссылки будут постоянно пополняться.
Stars: ✭ 42 (-33.33%)
Mutual labels:  stress-testing
eat
Json based scenario testing tool(which can have test for functional and non-functional)
Stars: ✭ 41 (-34.92%)
Mutual labels:  stress-testing
Raven-Storm
Raven-Storm is a powerful DDoS toolkit for penetration tests, including attacks for several protocols written in python. Takedown many connections using several exotic and classic protocols.
Stars: ✭ 235 (+273.02%)
Mutual labels:  stress-testing
Tcpcopy
An online request replication tool, also a tcp stream replay tool, fit for real testing, performance testing, stability testing, stress testing, load testing, smoke testing, etc
Stars: ✭ 4,028 (+6293.65%)
Mutual labels:  stress-testing
hornet
Hornet is a simple library for stress testing
Stars: ✭ 33 (-47.62%)
Mutual labels:  stress-testing
LiteOTP
Multi OTP Spam Amp/Paralell threads
Stars: ✭ 50 (-20.63%)
Mutual labels:  stress-testing
tlp-stress
A workload-centric stress tool for Apache Cassandra. Designed for simplicity, no math degree required.
Stars: ✭ 53 (-15.87%)
Mutual labels:  stress-testing
Pumba
Chaos testing, network emulation, and stress testing tool for containers
Stars: ✭ 2,136 (+3290.48%)
Mutual labels:  stress-testing
NodeWrecker
Simple pod to run in kubernetes to stress test your nodes
Stars: ✭ 27 (-57.14%)
Mutual labels:  stress-testing
cbtool
Cloud Rapid Experimentation and Analysis Toolkit
Stars: ✭ 65 (+3.17%)
Mutual labels:  stress-testing
locust-docker
Docker image for the Locust load testing tool and sample Kubernetes configuration files for distributed deployment.
Stars: ✭ 17 (-73.02%)
Mutual labels:  stress-testing
fpga torture
🔥 Technology-agnostic FPGA stress-test: maximum logic utilization and high dynamic power consumption.
Stars: ✭ 23 (-63.49%)
Mutual labels:  stress-testing
LoadRunner
Load-testing framework for writing load/stress test scenarios in c#
Stars: ✭ 18 (-71.43%)
Mutual labels:  stress-testing
avalanche
Minecraft server stress test tool.
Stars: ✭ 48 (-23.81%)
Mutual labels:  stress-testing
StressThing
a software testing platform to perform stress test on web of things
Stars: ✭ 12 (-80.95%)
Mutual labels:  stress-testing
jagtester
Express server load tester with middleware level data reporting
Stars: ✭ 57 (-9.52%)
Mutual labels:  stress-testing
Orion-Stress-Tester
A simple, efficient and accurate stress tester, support HTTP, WebSocket and TCP
Stars: ✭ 32 (-49.21%)
Mutual labels:  stress-testing
pytest-stress
A Pytest plugin that allows you to loop tests for a user defined amount of time.
Stars: ✭ 39 (-38.1%)
Mutual labels:  stress-testing
apistress
Very simple stress testing tool for API
Stars: ✭ 22 (-65.08%)
Mutual labels:  stress-testing

Replay Nginx/Haproxy/SOLR logs

MIT License Build Go Report Card

Installation

go get -u github.com/Gonzih/log-replay

Usage

Usage of log-replay:
  -debug
        Print extra debugging information
  -enable-window
        Enable rolling window functionality to stop log replaying in case of failure
  -error-rate float
        Percentage of the error to stop log replaying (min:1, max:99) (default 40)
  -file string
        Log file name to read. Read from STDIN if file name is '-' (default "-")
  -file-type string
        Input log type (nginx, haproxy or solr) (default "nginx")
  -format string
        Nginx log format (default "$remote_addr [$time_local] \"$request\" $status $request_length $body_bytes_sent $request_time \"$t_size\" $read_time $gen_time")
  -log string
        File to report timings to, default is stdout (default "-")
  -password string
        Basic auth password
  -prefix string
        URL prefix to query (default "http://localhost")
  -ratio int
        Replay speed ratio, higher means faster replay speed (default 1)
  -skip-sleep
        Skip sleep between http calls based on log timestamps
  -ssl-skip-verify
        Should HTTP client ignore ssl errors
  -timeout int
        Request timeout in milliseconds, 0 means no timeout (default 60000)
  -user-name string
        Basic auth username
  -window-size int
        Size of the window to track response status (default 1000)
# Replay access log
log-replay --file my-acces.log --debug --log out.log

# Duplicate traffic on the staging host - with basic auth
tail -f /var/log/acces.log | log-replay --prefix http://staging-host --log staging.log --skip-sleep \
      --user-name test-user --password supersecrEt

Output log format

Log is tab separated values:

status	start-time	duration	url payload err

# Examples
200	1469792268	629904766	/my-url
500	1469792268	629904766	/my-url	Get http://localhost/another-url: dial tcp [::1]:80: getsockopt: connection refused
  • status is integer
  • start-time is unix timestamp in seconds
  • duration is in nanoseconds
  • url is full url with prefix
  • payload is stringified post data
  • error is go lang error formatted to string and is optional

Only GET?

Nginx/Haproxy logs are currently limited to GET only. SOLR requests will use post format for everything, as a way to subvert GET length limitations.

Log formats

  • To correctly use the solr adapter, it is required that the log4 pattern is configured as follows:
<PatternLayout>
  <pattern>%d %p %C{1.} [%t] %m%n%ex</pattern>
</PatternLayout>

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].