Skip to content

Commit 5c0df92

Browse files
chore: benchmark job optimization with configurable toggles (#7045)
* Benchmark: pin Nighthawk image, skip PNGs by default, add CI-friendly toggles Pin nighthawk client/server to non-latest (env/envoyproxy/nighthawk-dev with default v0.7.0) Make PNG rendering optional; default disabled in CI Add hook to optionally skip kind image load (USE_PUBLISHED_IMAGE) Remove Graphviz from benchmark jobs; set BENCHMARK_RENDER_PNG=false Wire client image override in benchmark suite Keep behavior unchanged for local runs unless toggles are set Signed-off-by: ADITYATIWARI342005 <[email protected]> * Address review feedback: pin images in YAML, remove runtime overrides - Update nighthawk-test-server.yaml and nighthawk-client.yaml to use stable SHA tag directly - Remove runtime image override logic from suite.go (simplified approach) - Remove unnecessary maybe-kube-install-image target and kubectl set image command - Clean up unused NIGHTHAWK_IMAGE/NIGHTHAWK_TAG variables from Makefile - Keep BENCHMARK_RENDER_PNG toggle for CI optimization Signed-off-by: ADITYATIWARI342005 <[email protected]>
1 parent 8fdebee commit 5c0df92

File tree

5 files changed

+10
-8
lines changed

5 files changed

+10
-8
lines changed

.github/workflows/build_and_test.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,6 @@ jobs:
252252
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
253253
- uses: ./tools/github-actions/setup-deps
254254

255-
- name: Setup Graphviz
256-
uses: ts-graphviz/setup-graphviz@b1de5da23ed0a6d14e0aeee8ed52fdd87af2363c # v2.0.2
257255

258256
# Benchmark
259257
- name: Run Benchmark tests
@@ -266,6 +264,7 @@ jobs:
266264
BENCHMARK_CPU_LIMITS: 1000m
267265
BENCHMARK_MEMORY_LIMITS: 2000Mi
268266
BENCHMARK_REPORT_DIR: benchmark_report
267+
BENCHMARK_RENDER_PNG: "false"
269268
run: make benchmark
270269

271270
- name: Upload Benchmark report

.github/workflows/release.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ jobs:
1818
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
1919
- uses: ./tools/github-actions/setup-deps
2020

21-
- name: Setup Graphviz
22-
uses: ts-graphviz/setup-graphviz@b1de5da23ed0a6d14e0aeee8ed52fdd87af2363c # v2.0.2
2321

2422
# Benchmark
2523
- name: Run Benchmark tests
@@ -33,6 +31,7 @@ jobs:
3331
BENCHMARK_CPU_LIMITS: 1000m
3432
BENCHMARK_MEMORY_LIMITS: 2000Mi
3533
BENCHMARK_REPORT_DIR: benchmark_report
34+
BENCHMARK_RENDER_PNG: "false"
3635
run: make benchmark
3736

3837
- name: Package benchmark report

test/benchmark/config/nighthawk-client.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ spec:
99
spec:
1010
containers:
1111
- name: nighthawk-client
12-
image: envoyproxy/nighthawk-dev:latest
12+
image: envoyproxy/nighthawk-dev:6198df0e01dc85f8d5efa3ef188f3bcdcc6eecac
1313
imagePullPolicy: IfNotPresent
1414
command:
1515
- /usr/local/bin/nighthawk_client

test/benchmark/config/nighthawk-test-server.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ spec:
1717
serviceAccountName: default
1818
containers:
1919
- name: nighthawk-server
20-
image: envoyproxy/nighthawk-dev:latest
20+
image: envoyproxy/nighthawk-dev:6198df0e01dc85f8d5efa3ef188f3bcdcc6eecac
2121
imagePullPolicy: IfNotPresent
2222
args: ["-c", "/etc/test-server-config/nighthawk-test-server-config.yaml"]
2323
ports:

tools/make/kube.mk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ BENCHMARK_CONNECTIONS ?= 100
2525
BENCHMARK_DURATION ?= 60
2626
BENCHMARK_REPORT_DIR ?= benchmark_report
2727

28+
# Benchmark toggles
29+
# Disable PNG rendering by default to speed up CI
30+
BENCHMARK_RENDER_PNG ?= false
31+
2832
CONFORMANCE_RUN_TEST ?=
2933

3034
E2E_RUN_TEST ?=
@@ -253,8 +257,8 @@ run-benchmark: install-benchmark-server prepare-ip-family ## Run benchmark tests
253257
kubectl apply -f test/benchmark/config/gatewayclass.yaml
254258
go test -v -tags benchmark -timeout $(BENCHMARK_TIMEOUT) ./test/benchmark --rps=$(BENCHMARK_RPS) --connections=$(BENCHMARK_CONNECTIONS) --duration=$(BENCHMARK_DURATION) --report-save-dir=$(BENCHMARK_REPORT_DIR)
255259
# render benchmark profiles into image
256-
dot -V
257-
find test/benchmark/$(BENCHMARK_REPORT_DIR)/profiles -name "*.pprof" -type f -exec sh -c 'go tool pprof -png "$$1" > "$${1%.pprof}.png"' _ {} \;
260+
@if [ "$(BENCHMARK_RENDER_PNG)" != "false" ]; then dot -V; fi
261+
@if [ "$(BENCHMARK_RENDER_PNG)" != "false" ]; then find test/benchmark/$(BENCHMARK_REPORT_DIR)/profiles -name "*.pprof" -type f -exec sh -c 'go tool pprof -png "$$1" > "$$${1%.pprof}.png"' _ {} \; ; fi
258262

259263
.PHONY: install-benchmark-server
260264
install-benchmark-server: ## Install nighthawk server for benchmark test

0 commit comments

Comments
 (0)