Rebuild Path

Pick the lightest tier that answers your question.

Local checks need no cluster. Offline simulation needs Python dependencies. Live experiments need Kubernetes, Helm, kubectl, and Prometheus access.

1

Local quality gates

Run Go tests, Helm checks, Python unit tests, shell syntax checks, dashboard JSON validation.

make check
2

Offline MPC simulation

Generate a synthetic trace or start from the bundled trace examples, simulate the controller, inspect outputs under ignored analysis paths.

python3 -m pip install -e analysis
mpc-generate-synthetic-trace --scenario spike --out analysis/out/spike.csv
mpc-offline-sim --trace-csv analysis/out/spike.csv --out-dir analysis/out/offline/spike
3

Saved evidence summaries

Use curated evidence roots when local raw artifacts are present.

PYTHONPATH=analysis python3 -m mpc_autoscaler_analysis.cli.summarize_costs \
  --hpa-root experiments/thesis-evidence/main/hpa60-cpu-hpa-max70 \
  --hybrid-root experiments/thesis-evidence/main/hybrid-sa-max70-tuned \
  --out-csv /tmp/mpc-cost-summary.csv \
  --out-aggregate-csv /tmp/mpc-cost-aggregate.csv
4

Live cluster experiments

Deploy toy-load with Helm, then run HPA or MPC scripts against the service.

helm upgrade --install toy-load toy-load/deploy/helm/toy-load --namespace default --create-namespace
bash loadgen/scripts/run_hpa_experiment_incluster.sh spike
bash loadgen/scripts/run_mpc_experiment_incluster.sh spike
traces

Offline trace examples

The repository ships baseline step, spike, and seasonality CSV traces for local validation and offline simulation.

Use them with mpc-validate-trace before running mpc-offline-sim to check schema and timing assumptions.

Open trace examples

commands

Validate, then simulate

mpc-validate-trace \
  --trace-csv analysis/mpc_autoscaler_analysis/data/traces/baseline_spike_profile_dt15.csv

mpc-offline-sim \
  --trace-csv analysis/mpc_autoscaler_analysis/data/traces/baseline_spike_profile_dt15.csv \
  --out-dir analysis/out/offline/spike