Operational Reliability Reports
Rollout Guard Reliability Report
Decide whether a rollout can ship based on pending safety checks.
rollout guard
A rollout guard turns pending safety checks into a release status before a deployment proceeds.
Rollout Guard Reliability Report
RolloutGuardReliabilityReport.cs
Replay: real traced execution (multi-file project)
using System;
class Program
{
static string GuardStatus(int pendingChecks)
{
if (pendingChecks >= 3)
{
return "hold";
}
if (pendingChecks > 0)
{
return "limit";
}
return "ship";
}
static void Main()
{
int pendingChecks = 1;
int rolloutBudget = 8;
string status = GuardStatus(pendingChecks);
Console.WriteLine("pending=" + pendingChecks);
Console.WriteLine("budget=" + rolloutBudget);
Console.WriteLine("status=" + status);
}
}
using System;
class Program
{
static string GuardStatus(int pendingChecks)
{
if (pendingChecks >= 3)
{
return "hold";
}
if (pendingChecks > 0)
{
return "limit";
}
return "ship";
}
static void Main()
{
int pendingChecks = 0;
int rolloutBudget = 8;
string status = GuardStatus(pendingChecks);
Console.WriteLine("pending=" + pendingChecks);
Console.WriteLine("budget=" + rolloutBudget);
Console.WriteLine("status=" + status);
}
}
using System;
class Program
{
static string GuardStatus(int pendingChecks)
{
if (pendingChecks >= 3)
{
return "hold";
}
if (pendingChecks > 0)
{
return "limit";
}
return "ship";
}
static void Main()
{
int pendingChecks = 3;
int rolloutBudget = 8;
string status = GuardStatus(pendingChecks);
Console.WriteLine("pending=" + pendingChecks);
Console.WriteLine("budget=" + rolloutBudget);
Console.WriteLine("status=" + status);
}
}
pendingChecks ← 1, rolloutBudget ← 8
20static void Main()21{22 int pendingChecks→ 1 = 1; //@pendingChecks=0, 323 int rolloutBudget→ 8 = 8;24 string status = GuardStatus(pendingChecks1);static string GuardStatus(int pendingChecks)
4{5 static string GuardStatus(int pendingChecks1)6 {7 if (pendingChecks >= 3)if (pendingChecks > 0)
12if (pendingChecks1 > 0)13{14 return "limit";15}status ← limit
23 int rolloutBudget = 8;24 string status→ limit = GuardStatus(pendingChecks1);2526 Console.WriteLine("pending=" + pendingChecks1);27 Console.WriteLine("budget=" + rolloutBudget8);28 Console.WriteLine("status=" + statuslimit);29}outputpending=1 budget=8 status=limit
pendingChecks ← 0, rolloutBudget ← 8
20static void Main()21{22 int pendingChecks→ 0 = 0;23 int rolloutBudget→ 8 = 8;24 string status = GuardStatus(pendingChecks0);static string GuardStatus(int pendingChecks)
4{5 static string GuardStatus(int pendingChecks0)6 {7 if (pendingChecks >= 3)8 {9 return "hold";10 }1112 if (pendingChecks > 0)13 {14 return "limit";15 }1617 return "ship";18 }status ← ship
23 int rolloutBudget = 8;24 string status→ ship = GuardStatus(pendingChecks0);2526 Console.WriteLine("pending=" + pendingChecks0);27 Console.WriteLine("budget=" + rolloutBudget8);28 Console.WriteLine("status=" + statusship);29}outputpending=0 budget=8 status=ship
pendingChecks ← 3, rolloutBudget ← 8
20static void Main()21{22 int pendingChecks→ 3 = 3;23 int rolloutBudget→ 8 = 8;24 string status = GuardStatus(pendingChecks3);static string GuardStatus(int pendingChecks)
4{5 static string GuardStatus(int pendingChecks3)6 {7 if (pendingChecks >= 3)if (pendingChecks >= 3)
6{7 if (pendingChecks3 >= 3)8 {9 return "hold";10 }status ← hold
23 int rolloutBudget = 8;24 string status→ hold = GuardStatus(pendingChecks3);2526 Console.WriteLine("pending=" + pendingChecks3);27 Console.WriteLine("budget=" + rolloutBudget8);28 Console.WriteLine("status=" + statushold);29}outputpending=3 budget=8 status=hold