I've a nodejs webservice, which I want to use clinic.js to analyze it's performance ans find bottlenecks.
So when I issue this command:
clinic doctor --on-port 'autocannon localhost:$PORT --connections 5 -m "POST" -i my-data.json -H "Authorization":"Bearer xxx" ' -- node ./dist/custom/index.js
I get the next logs:
Running 10s test @ http://localhost:443
5 connections
┌─────────┬──────┬──────┬───────┬──────┬──────┬───────┬──────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼──────┼──────┼───────┼──────┤
│ Latency │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0 ms │
└─────────┴──────┴──────┴───────┴──────┴──────┴───────┴──────┘
┌───────────┬─────┬──────┬─────┬───────┬─────┬───────┬─────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────┼──────┼─────┼───────┼─────┼───────┼─────┤
│ Req/Sec │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
├───────────┼─────┼──────┼─────┼───────┼─────┼───────┼─────┤
│ Bytes/Sec │ 0 B │ 0 B │ 0 B │ 0 B │ 0 B │ 0 B │ 0 B │
└───────────┴─────┴──────┴─────┴───────┴─────┴───────┴─────┘
Req/Bytes counts sampled once per second.
63k requests in 11.01s, 0 B read
63k errors (0 timeouts)
USMCDANCN2Z76AB:172542_alexa_skills_template xzxqdy$ clinic doctor --on-port 'autocannon localhost:$PORT --connections 5 -m "POST" -i my-data.json -H "Authorization":"Bearer xxx" ' -- node ./dist/custom/index.js
Running 10s test @ http://localhost:443
5 connections
running [ ] 0%
┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬───────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼───────┤
│ Latency │ 1 ms │ 1 ms │ 2 ms │ 3 ms │ 1.07 ms │ 0.48 ms │ 20 ms │
└─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴───────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼────────┼─────────┤
│ Req/Sec │ 2427 │ 2427 │ 3821 │ 3939 │ 3616.8 │ 440.53 │ 2427 │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼────────┼─────────┤
│ Bytes/Sec │ 2.14 MB │ 2.14 MB │ 3.36 MB │ 3.47 MB │ 3.18 MB │ 388 kB │ 2.14 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴─────────┴────────┴─────────┘
Req/Bytes counts sampled once per second.
0 2xx responses, 36164 non 2xx responses
36k requests in 10.01s, 31.8 MB read
Analysing data
Generated HTML file is
So why am I getting?: 0 2xx responses, 36164 non 2xx responses When I try it in postman with the same headers and body it returns 200.
Thanks in advance for your help
Greetings
I am having the same problem. It seems that the headers are not handled correctly when you run autocannon as an inner command. I tried many different syntaxes.
What worked for me though: Running node clinic doctor/flame
and autocannon
in separate terminals
First run in terminal A:
clinic doctor -- node ./dist/custom/index.js
In the second terminal B run:
autocannon localhost:<YourPort> --connections 5 -m "POST" -i my-data.json -H "Authorization":"Bearer xxx"
As soon as autocannon has finished, go back to terminal A and end the clinic node process with CTRL+C. The data will be analyzed and the report printed.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.