envoyproxy / envoyproxy/envoy

proposal: Add tracking latencies and flamegraphs in CI

Open
#11,266 23 comments 0 reactions 1 assignee Claimed by @abaptiste View on GitHub
area/perf help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

Filing this issue to get a feel for interest in this

### Goal:
Add a means to track and persist latency numbers and perf visualizations like flamegraphs over time in CI. This would allow us to track how we're doing over time as well as have perf information
at hand when a latency regression is observed.

### Description:

Nighthawk uses a lightweight python-based framework for integration testing.
This framework serves as a [basis for writing NH's own benchmarks](https://github.com/envoyproxy/nighthawk/tree/master/benchmarks).

With a small bit of modification this could be modified to:
- make consumption very low friction in foreign code bases (like Envoy)
- allow it to inject proxies in the between the client and test server. For example, Envoy at a certain sha
- scavenge tests from external locations

More details, and some concrete scripts for getting an idea of what this would look like can be found [here](https://github.com/oschaaf/nighthawk/blob/ci-integration/benchmarks/README.md).

/cc @danzh2010 @htuch

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.