Adaptive Ensemble (Surge Profiles)
Ruptura v6.1 introduces adaptive ensemble weighting — the engine continuously learns which prediction model fits your infrastructure's traffic patterns best, and shifts weight toward it automatically.
The five models
| Model | Strengths | Weaknesses |
|---|---|---|
| CA-ILR (Dual-scale) | O(1) update, detects acceleration, edge-native | Linear assumption within window |
| ARIMA | Strong on stationary series with trends | Computationally heavier, assumes linearity |
| Holt-Winters | Excellent on seasonal / periodic patterns | Requires clear seasonality |
| MAD (Median Absolute Deviation) | Robust to outliers | No temporal memory |
| EWMA (Exponentially Weighted Moving Average) | Smooth, reacts to recent data | Slow to detect sudden shifts |
Weight adaptation algorithm
Every 60 seconds, Ruptura evaluates prediction accuracy over the past 1-hour sliding window:
error_model_i = MAE(predicted_i, actual) over last 1 hour
weight_i = (1 / error_i) / Σ_j (1 / error_j)
Models with lower recent prediction error receive higher weight. Weights are normalised to sum to 1.0.
The final ensemble prediction is:
prediction(t) = Σ_i weight_i(t) × prediction_i(t)
Enable adaptive weighting
# ruptura.yaml
ensemble:
adaptive: true
When false (default), all five models are weighted equally at 0.20 each.
Monitoring weights via API
GET /api/v2/ensemble/{host}
{
"host": "web-01",
"updated_at": "2026-04-28T10:00:00Z",
"weights": {
"ca_ilr": 0.35,
"arima": 0.22,
"holt_winters": 0.18,
"mad": 0.14,
"ewma": 0.11
}
}
Surge profiles — how Ruptura handles load spikes
Ruptura does not require you to pre-define "surge profiles" or maintenance windows. The dissipative fatigue formula (λ healing) and the adaptive ensemble work together to avoid false alarms during planned load events:
- At spike onset —
ILR_burstslope increases, R rises. - If the spike is brief — fatigue dissipates (λ recovery), R falls back.
- If the spike sustains — R stays elevated, ensemble weights shift toward models that track the new pattern.
- Weights rebalance — once the spike ends, MAE improves for baseline-tracking models and they regain weight.
This means a nightly backup job gradually "teaches" the ensemble that high CPU at 02:00 UTC is expected — no manual intervention required.
Prometheus self-metrics for ensemble
rpt_ensemble_weight{host="web-01",model="ca_ilr"} 0.35
rpt_ensemble_weight{host="web-01",model="arima"} 0.22
rpt_ensemble_weight{host="web-01",model="holt_winters"} 0.18
rpt_ensemble_weight{host="web-01",model="mad"} 0.14
rpt_ensemble_weight{host="web-01",model="ewma"} 0.11