• Stars
    star
    121
  • Rank 293,924 (Top 6 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Putting Nighthawk into the hands of many

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. Layer5 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 Meshery’s (and Envoy’s) load generator and is written in C++.

Nighthawk and Meshery

Meshery 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 Meshery 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. Meshery 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 Meshery.

Load Generators in Meshery

Users may prefer to use one load generator over the next given the difference of capabilities between load generators, so Meshery provides a load generator interface (a gRPC interface) behind which a load generator can be implemented. Meshery 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 Meshery provide?

Load generators will provide the capability to run load tests from Meshery. As of today the load generators are embedded as libraries in Meshery and Meshery invokes the load generators APIs with the right load test options to run the load test. At the moment, Meshery has support for HTTP load generators. Support for GRPC and TCP load testing is on the roadmap. Meshery 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 Layer5 Community Welcome Guide for a tour of resources available to you and jump into our Slack!

MeshMates

Find your MeshMate

MeshMates are experienced Layer5 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 Layer5 community.




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

Layer5 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.

More Repositories

1

layer5

Layer5, expect more from your infrastructure
MDX
861
star
2

istio-service-mesh-workshop

Using Istio Workshop
255
star
3

wasm-filters

A collection of Rust-based WebAssembly programs that are deployed as Envoy filters.
Rust
84
star
4

image-hub

Image Hub is a sample application for exploring WebAssembly modules used as Envoy filters.
Vue
67
star
5

sistent

Layer5 Design System
TypeScript
63
star
6

learn-layer5

A sample application for learning how to service mesh and for validating SMI conformance
Go
60
star
7

linkerd-service-mesh-workshop

Linkerd service mesh training: workshop, slides, and labs
43
star
8

advanced-istio-service-mesh-workshop

Advanced Istio Service Mesh Workshop
C++
32
star
9

docs

Documentation and Developer resources for Layer5 products
SCSS
31
star
10

meshery-performance-action

GitHub Action for pipelining microservices and Kubernetes performance testing with Meshery
Shell
29
star
11

containers-101-workshop

Docker Linux Containers 101 Workshop
HTML
26
star
12

service-mesh-labs

Lab scenarios for learning how to service mesh.
Shell
26
star
13

kubeopenapi-jsonschema

JavaScript
16
star
14

meshmonkey

16
star
15

gowrk2

Meshery's support for wrk2
Go
15
star
16

.github

Layer5
Makefile
14
star
17

meshery-smi-conformance-action

GitHub Action to run SMI Conformance tests in CI/CD pipelines
Shell
11
star
18

meshery-cloud-native-patterns-action

GitHub Action to apply Cloud Native Patterns in CI/CD pipelines
Shell
11
star
19

helm-chart-releaser

A Helm chart releaser action for Layer5 Projects
Shell
10
star
20

discuss-board

JavaScript
10
star
21

layer5-repo-template

This repository is used as the boilerplate for consistency across all Layer5 repos.
Makefile
10
star
22

layer5-istio-adapter

Layer5 Istio adapter
Go
10
star
23

meet

A repo for hosting meet.layer5.io redirects.
HTML
9
star
24

discuss-twitter

JavaScript
9
star
25

slack

Inviter for Layer5 Community Slack
HTML
9
star
26

preview-layer5

Deployment previews of the layer5.io site
9
star
27

mesheryctl-aliases

Programmatically generated, handy mesheryctl aliases.
Makefile
4
star
28

subscription

Repo for handling email subscriptions
Makefile
3
star
29

discuss-theme

A custom theme for discuss.layer5.io
SCSS
3
star
30

rtk-query-codegen

JavaScript
3
star
31

mesheryctl-aliases-old

Programmatically generated, handy mesheryctl aliases.
1
star
32

trigger-remote-provider-action

GitHub Action to Notify Meshery Remote Providers
Shell
1
star