Operational Reliability Reports
Error Budget Reliability Report
Compare spent error budget with the available budget and report burn status.
budget spend
Budget spend is kept as a scalar so each selector variant has a clear report input.
burn status
The burn status switches from ok to watch to halt as the budget is consumed.
Error Budget Reliability Report
error_budget_reliability_report.c
Replay: real traced execution (multi-file project)
#include <stdio.h>
int main(void) {
int spent = 2;
int budget = 5;
const char *status = "ok";
if (spent >= budget - 1) {
status = "watch";
}
if (spent > budget) {
status = "halt";
}
printf("spent=%d\n", spent);
printf("budget=%d\n", budget);
printf("status=%s\n", status);
return 0;
}
#include <stdio.h>
int main(void) {
int spent = 4;
int budget = 5;
const char *status = "ok";
if (spent >= budget - 1) {
status = "watch";
}
if (spent > budget) {
status = "halt";
}
printf("spent=%d\n", spent);
printf("budget=%d\n", budget);
printf("status=%s\n", status);
return 0;
}
#include <stdio.h>
int main(void) {
int spent = 7;
int budget = 5;
const char *status = "ok";
if (spent >= budget - 1) {
status = "watch";
}
if (spent > budget) {
status = "halt";
}
printf("spent=%d\n", spent);
printf("budget=%d\n", budget);
printf("status=%s\n", status);
return 0;
}
spent ← 2, budget ← 5, status ← ok
3int main(void) {4 int spent→ 2 = 2; //@spent=4, 75 int budget→ 5 = 5;6 const char *status→ ok = "ok";78 if (spent >= budget - 1) {9 status = "watch";10 }1112 if (spent > budget) {13 status = "halt";14 }1516 printf("spent=%d\n", spent2);17 printf("budget=%d\n", budget5);18 printf("status=%s\n", statusok);19 return 0;20}outputspent=2 budget=5 status=ok
spent ← 4, budget ← 5, status ← ok
3int main(void) {4 int spent→ 4 = 4;5 int budget→ 5 = 5;6 const char *status→ ok = "ok";status ← watch
8if (spent4 >= budget5 - 1) {9 status→ watch = "watch";10}printf("spent=%d ", spent);
16 printf("spent=%d\n", spent4);17 printf("budget=%d\n", budget5);18 printf("status=%s\n", statuswatch);19 return 0;20}outputspent=4 budget=5 status=watch
spent ← 7, budget ← 5, status ← ok
3int main(void) {4 int spent→ 7 = 7;5 int budget→ 5 = 5;6 const char *status→ ok = "ok";status ← watch
8if (spent7 >= budget5 - 1) {9 status→ watch = "watch";10}status ← halt
12if (spent7 > budget5) {13 status→ halt = "halt";14}printf("spent=%d ", spent);
16 printf("spent=%d\n", spent7);17 printf("budget=%d\n", budget5);18 printf("status=%s\n", statushalt);19 return 0;20}outputspent=7 budget=5 status=halt