Log-normal distributions of delay¶
The Log-normal distribution is a pretty accurate description of a server latency. The Log-normal distribution defines by 2 parameters μ and σ. We will compute these parameters from mean and median of a server response time. These values you can see in your monitoring of the production server. If need you can adjust response time by min and max parameters.
Let’s apply a random log-normal distributed delay to all responses. First, we need to create and export a simulation.
hoverctl start
hoverctl mode capture
curl --proxy localhost:8500 http://echo.jsontest.com/b/c
curl --proxy localhost:8500 -X POST http://echo.jsontest.com/b/c
hoverctl export simulation.json
hoverctl stop
Take a look at the "globalActions"
property within the simulation.json
file you exported. It
should look like this:
1 2 3 | "globalActions": {
"delays": [],
"delaysLogNormal": []
|
Edit the file so the "globalActions"
property looks like this:
1 2 3 4 5 6 7 8 9 10 11 12 | "globalActions": {
"delaysLogNormal": [
{
"urlPattern": ".",
"httpMethod": "",
"min": 100,
"max": 10000,
"mean": 5000,
"median": 500
}
]
}
|
Hoverfly will apply a delay to all URLs that match the "urlPattern"
value. We want
the delay to be applied to all URLs, so we set the "urlPattern"
value to the regular expression "."
.
Now import the edited simulation.json
file, switch Hoverfly to Simulate mode and make the requests
again.
hoverctl start
hoverctl import simulation.json
curl --proxy localhost:8500 http://echo.jsontest.com/b/c
curl -X POST --proxy localhost:8500 http://echo.jsontest.com/b/c
hoverctl stop