npm install -g clinic
As a first step, run the clinic doctor
:
clinic doctor -- node server.js
Then benchmark your server with wrk
or autocannon
:
wrk http://localhost:3000
autocannon http://localhost:3000
If you want to run autocannon or wrk as soon as your server starts listening you can
use the --on-port
option
# $PORT is the port the server is listening on
clinic doctor --on-port 'autocannon http://localhost:$PORT' -- node server.js
Finally shut down your server (Ctrl+C). Once the server process has shutdown
clinic doctor
will analyse the collected data and detect what type of issue
you are having. Based on the issue type, it will provide a recommendation for
you.
For example, to debug I/O issues, use clinic bubbleprof
:
clinic bubbleprof -- node server.js
Then benchmark your server again, just like you did with clinic doctor
.
Clinic relies heavily on Node.js core instrumentation available in later versions.
Currently the supported Node.js versions are ^10.0.0
and ^8.9.4
.
- A set of simple Doctor examples
- A set of simple Bubbleprof examples
- A MongoDB-based Bubbleprof demo/example
- A Flame demo/example
If you encounter any issue, feel free to send us an issue report at:
https://github.com/nearform/node-clinic/issues
When creating an issue, it will be a huge help for us if you upload your
data to the clinic cloud. To do this, use clinic upload
:
clinic upload 1000.clinic-doctor
and include the URL that it returns.
For more information use the --help
option:
clinic doctor --help
clinic bubbleprof --help
clinic flame --help
clinic upload --help
- The Doctor functionality is provided by the clinic-doctor module.
- The Bubbleprof functionality is provided by clinic-bubbleprof.
- The Flame functionality is provided by clinic-flame.
-h | --help Display Help
-v | --version Display Version
Each of the tools has a programmable interface which you can read about in their repos.