/bench-routes

Bench-routes is a monitoring tool that monitors from system/kernel level information to the application level logs and performance of routes in unix-based systems. For more info, refer to docs.

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Bench-routes

Build Status Go Report Card Gitter

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.

Dataflow

Screenshot from 2020-03-21 20-09-00

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.

Making Commits in bench-routes

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>

Use of MakeFile in bench-routes

We use make for building and executing the program.

Follow the commands to make the development process easier:

  1. Updating the dependencies: make update
  2. Executing the application (assuming all dependencies are installed): make run
  3. Building the application for the current OS: make build
  4. Testing Golang code: make test
  5. Complete testing include building for all OSs out there: make test_complete
  6. Cleaning up the residual files: make clean
  7. (optional) Check linting (assuming golangci-lint is installed): make lint

Postman Usage

  1. Download Postman and Install it.
  2. Create a new collection.

To Check Service State

  1. Add request
  2. Select method GET
  3. Copy and Enter below request url
    http://localhost:9090/service-state
  4. Send the request to url.
  5. This API returns the state of the services (active or passive) in real-time.

To Get Routes Summary

  1. Add request
  2. Select method GET
  3. Copy and Enter below request url
    http://localhost:9090/routes-summary
  4. Send the request to url.
  5. This API returns the list of all URLs/Routes that are being monitored for testing using the application.

For more information, regarding usage in different languages. Visit Bench-Routes.

Bench-routes has been selected at :- 1.Rails Girls Summer of Code 2.GirlScript Summer of Code 2020

👬 Mentors

Feel free to ask your queries!! 🙌

Gitter Channel