bench-routes is a highly scalable network benchmarking, routes performance and monitoring tool, that monitors in regular intervals the state of the server, running as a daemon process. For more information, read the docs
Read the complete idea and approach here.
Monitoring has been tough and with the increase in the routes used in any sophisticated project, the performance and metrics of an application are seriously affected. With an increase in server computational models, the probability of a complete request-response cycle without any throws is nowhere close to 1.
The primary goals of the project are:
1. Benchmark route
(a) Load-handling of application on the individual route.
(b) Test various possibilities of data in params (Permutate params), like sending an empty param
to see how the server response behaves.
2. Analyse network performance of the hosted application irrespectively of containerization
(a) Network ping
(b) Jitter analysis
(c) Packet loss
3. Log error handling capability of the application
4. Maintain a check on server-route output and alert on changes above the threshold
5. Graphical view using ElectronJS
For installation instructions, please head-over to INSTALL.md.
Bench Routes uses DCO(Developer Certificate Origin) to certify that the contributor wrote the particular code or otherwise have the right to submit the code they are contributing to the project.For complete details on DCO Click Here.
Follow the below commit
syntax to certify the code and pass the DCO test.
git commit -s -m <commit-message>
We use make
for building and executing the program.
Follow the commands to make the development process easier:
- Updating the dependencies:
make update
- Executing the application (assuming all dependencies are installed):
make run
- Building the application for the current OS:
make build
- Testing Golang code:
make test
- Complete testing include building for all OSs out there:
make test_complete
- Cleaning up the residual files:
make clean
- (optional) Check linting (assuming golangci-lint is installed):
make lint