Operational Reliability Reports
Rollout Guard Reliability Report
Use rollout checks to choose a ship, limit, or hold label.
rollout-guard-report
Release gates are easiest to audit when each guard writes a compact status.
Rollout Guard Reliability Report
RolloutGuardReliabilityReport.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val pendingChecks = 1
val errorBudget = 8
var status = "ship"
if (pendingChecks > 0) {
status = "limit"
}
if (pendingChecks >= 3 || errorBudget < 5) {
status = "hold"
}
println("pending=" + pendingChecks)
println("budget=" + errorBudget)
println("status=" + status)
}
}
object Main {
def main(args: Array[String]): Unit = {
val pendingChecks = 0
val errorBudget = 8
var status = "ship"
if (pendingChecks > 0) {
status = "limit"
}
if (pendingChecks >= 3 || errorBudget < 5) {
status = "hold"
}
println("pending=" + pendingChecks)
println("budget=" + errorBudget)
println("status=" + status)
}
}
object Main {
def main(args: Array[String]): Unit = {
val pendingChecks = 3
val errorBudget = 8
var status = "ship"
if (pendingChecks > 0) {
status = "limit"
}
if (pendingChecks >= 3 || errorBudget < 5) {
status = "hold"
}
println("pending=" + pendingChecks)
println("budget=" + errorBudget)
println("status=" + status)
}
}
pendingChecks ← 1, errorBudget ← 8, status ← ship
1object Main {2 def main(args: Array[String]): Unit = {3 val pendingChecks→ 1 = 1 //@pendingChecks=0, 34 val errorBudget→ 8 = 85 var status→ ship = "ship"67 if (pendingChecks > 0) {status ← limit
7if (pendingChecks1 > 0) {8 status→ limit = "limit"9}10if (pendingChecks >= 3 || errorBudget < 5) {println("pending=" + pendingChecks)
14 println("pending=" + pendingChecks1)15 println("budget=" + errorBudget8)16 println("status=" + statuslimit)17 }18}outputpending=1 budget=8 status=limit
pendingChecks ← 0, errorBudget ← 8, status ← ship
1object Main {2 def main(args: Array[String]): Unit = {3 val pendingChecks→ 0 = 04 val errorBudget→ 8 = 85 var status→ ship = "ship"67 if (pendingChecks > 0) {8 status = "limit"9 }10 if (pendingChecks >= 3 || errorBudget < 5) {11 status = "hold"12 }1314 println("pending=" + pendingChecks0)15 println("budget=" + errorBudget8)16 println("status=" + statusship)17 }18}outputpending=0 budget=8 status=ship
pendingChecks ← 3, errorBudget ← 8, status ← ship
1object Main {2 def main(args: Array[String]): Unit = {3 val pendingChecks→ 3 = 34 val errorBudget→ 8 = 85 var status→ ship = "ship"67 if (pendingChecks > 0) {status ← limit
7if (pendingChecks3 > 0) {8 status→ limit = "limit"9}10if (pendingChecks >= 3 || errorBudget < 5) {status ← hold
9}10if (pendingChecks3 >= 3 || errorBudget8 < 5) {11 status→ hold = "hold"12}println("pending=" + pendingChecks)
14 println("pending=" + pendingChecks3)15 println("budget=" + errorBudget8)16 println("status=" + statushold)17 }18}outputpending=3 budget=8 status=hold