getnighthawk

module
v0.0.0-...-c8bc4d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2024 License: Apache-2.0

README

Nighthawk

What is Nighthawk?

Nighthawk is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate or with an adaptive request rate. Khulnasoft offers a custom distribution of Nighthawk with intelligent adaptive load controllers to automatically identify optimal configurations for your service mesh deployment. As a Layer 7 performance characterization tool supporting HTTP/HTTPS/HTTP2, Nighthawk is Meshplay’s (and Envoy’s) load generator and is written in C++.

Nighthawk and Meshplay

Meshplay integrates Nighthawk as one of (currently) three choices of load generator for characterizing and managing the performance of service meshes and their workloads. Centric to the advancement of Nighthawk is the Meshplay and Service Mesh Performance projects, which enable Nighthawk’s standards-based distributed performance management. The intersection of these projects allow researchers and users to conveniently identify the optimal service mesh configuration while considering their specific environment, application and load. Meshplay orchestrates multiple instances of Nighthawk (horizontal scaling) and provides an easy to use interface for Nighthawk’s adaptive load controller capability.



Go-Nighthawk

Nighthawk adapter to run service mesh load tests with Meshplay.

Load Generators in Meshplay

Users may prefer to use one load generator over the next given the difference of capabilities between load generators, so Meshplay provides a load generator interface (a gRPC interface) behind which a load generator can be implemented. Meshplay provides users with choice of which load generator they prefer to use for a given performance test. Users may set their configure their own preference of load generator different that the default load generator.

What function do load generators in Meshplay provide?

Load generators will provide the capability to run load tests from Meshplay. As of today the load generators are embedded as libraries in Meshplay and Meshplay invokes the load generators APIs with the right load test options to run the load test. At the moment, Meshplay has support for HTTP load generators. Support for GRPC and TCP load testing is on the roadmap. Meshplay has functional integration with fortio, wrk2, and nighthawk.

Why support multiple load generators?

Different use cases and different opinions call for different approaches to statistical analysis of the performance results. For example, wrk2 accounts for a concept called Coordinated Omission.

Which are currently supported?

fortio - Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats. wrk2 - A constant throughput, correct latency recording variant of wrk. nighthawk - Enables users to run distributed performance tests to better mimic real-world, distributed systems scenarios.

 

Join the Community!

Our projects are community-built and welcome collaboration. 👍 Be sure to see the Khulnasoft Community Welcome Guide for a tour of resources available to you and jump into our Slack!

MeshMates

Find your MeshMate

MeshMates are experienced Khulnasoft community members, who will help you learn your way around, discover live projects and expand your community network. Become a Meshtee today!

Find out more on the Khulnasoft community.




 
Shows an illustrated light mode meshplay logo in light color mode and a dark mode meshplay logo dark color mode.

Khulnasoft Cloud Native Community

✔️ Join any or all of the weekly meetings on community calendar.
✔️ Watch community meeting recordings.
✔️ Access the Community Drive by completing a community Member Form.
✔️ Discuss in the Community Forum.

Not sure where to start? Grab an open issue with the help-wanted label.

Directories

Path Synopsis
Package apinighthawk defines nighthawk runner and config
Package apinighthawk defines nighthawk runner and config
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL