You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2. Outputs results to stdout and/or a CSV file if specified
78
+
- Scrapes updater and admission controller execution latency metrics
79
+
2. Outputs per-run tables (with Avg column when multiple runs) and cross-profile summary tables to stdout and/or a CSV file
80
+
81
+
> [!NOTE]
82
+
> Recommender and updater latencies are cumulative sums from a single loop. Admission controller latencies are per-request averages (sum divided by request count), since it handles many requests per benchmark run.
80
83
81
84
e.g., of output using this command: `bin/vpa-benchmark --profile=small,large,xxlarge`
We can then compare the results of a code change with the results of the main branch.
@@ -121,17 +149,44 @@ When `--noise-percentage=P` is set, each profile also creates `P%` additional no
121
149
122
150
## Metrics Collected
123
151
152
+
All metrics are scraped from each component's `/metrics` endpoint via port-forwarding. Values are parsed from `vpa_<component>_execution_latency_seconds` histograms. Admission controller values are per-request averages.
153
+
154
+
### Recommender Metrics
155
+
156
+
Steps are listed in execution order.
157
+
158
+
| Step | Description |
159
+
| ---- | ----------- |
160
+
|`LoadVPAs`| Load VPA objects |
161
+
|`LoadPods`| Load pods matching VPA targets |
162
+
|`LoadMetrics`| Load metrics from metrics-server |
163
+
|`UpdateVPAs`| Compute and write recommendations |
@@ -172,6 +226,6 @@ The benchmark includes several performance optimizations:
172
226
173
227
### Caveats
174
228
175
-
- The updater uses `time.Tick` which waits the full interval before the first tick, so the benchmark sleeps 2 minutes before polling for metrics
229
+
- The updater uses `time.Tick` which waits the full interval before the first tick, so the benchmark polls for up to 5 minutes waiting for the updater's `total` metric to appear.
176
230
- The benchmark uses Recreate update mode. In-place scaling is not supported on KWOK pods.
177
231
- The benchmark scales down all VPA components at the start of each run, so that any caching is not a factor.
0 commit comments