Purpose and Overview
Distributed load testing offers insight into system behaviors that arguably more accurately represent real world behaviors of services under load as that load comes from any number of sources.
The main aim of this project is to enhance the current load generation and analysis technique of Nighthawk to include distributed load testing which may ultimately benefit the meshery to directly adopt the distributed load generation.
- Identifying the use-cases of Nighthawk. Working with the nighthawk team to successfully enable distributed load generation in nighthawk..
- Integrating the Nighthawk into the Meshery server and improving the load handling for Nighthawk using the same.
- Handling of the report and displaying mechanisms at the client-side.
- Testing & Debugging the Load Generator & finishing the implementation on Nighthawk.
Need for the Project
Currently, Meshery which is a multi-service mesh management plane which can operate & adapt to various different service meshes only supports a single way load testing. Understanding the need to support a variety of performance testing scenarios, Meshery has been equipped with a load generator interface as a point of extensibility to support the use of different load generators (see Meshery Extensibility documentation). Meshery Load Generation currently has been equipped with support for both wrk2 and fortio, neither of which support distributed load testing.
Nighthawk is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command-line utility and a library.
This project is being developed by Kush Trivedi as a Google Summer of Code project with the CNCF and in collaboration with Layer5 and Google.
Here is the design document which is under review for invoking distributed load generation & performance benchmarking using nighthawk.