Record Class ScenarioOutcome
java.lang.Object
java.lang.Record
com.eqixiac.equinix.design.resilience.ScenarioOutcome
- Record Components:
scenario- the scenarioverdict- the outcomeserviceIndex- mean over placed workloads of their service index, 0..1relativeSurvival-serviceIndexdivided by the baseline's (1 = nothing lost); 0..1siteWeightAffected- share of site weight that lost a workload it reached at baseline (or newly breaks a latency limit), 0..1siteWeightDisconnected- share of site weight with no surviving access circuit, 0..1workloadsAffected- workloads that lost anythingworkloadsDown- workloads that went downrequiredCloudsAffected- required clouds some workload reached at baseline and no longer reachesdemandMbps- sized cloud demand the baseline serves, MbpsservedMbps- of it, what the surviving connections carry, MbpsshortfallMbps-demandMbps - servedMbpsconstraintBreaks- latency limits broken in this scenario (workloadmaxLatencyMs, specmaxLatencyMs)zoneViolations- active paths that leave the spec'sgeoZonesworkloads- one outcome per placed workloadconnectionLoadMbps- per cloud connection edge id: the sized bandwidth routed onto it in this scenario
public record ScenarioOutcome(FailureScenario scenario, Verdict verdict, double serviceIndex, double relativeSurvival, double siteWeightAffected, double siteWeightDisconnected, List<String> workloadsAffected, List<String> workloadsDown, List<String> requiredCloudsAffected, double demandMbps, double servedMbps, double shortfallMbps, List<String> constraintBreaks, List<String> zoneViolations, List<WorkloadOutcome> workloads, Map<String,Double> connectionLoadMbps)
extends Record
What still works in one scenario, compared with the baseline.
-
Constructor Summary
ConstructorsConstructorDescriptionScenarioOutcome(FailureScenario scenario, Verdict verdict, double serviceIndex, double relativeSurvival, double siteWeightAffected, double siteWeightDisconnected, List<String> workloadsAffected, List<String> workloadsDown, List<String> requiredCloudsAffected, double demandMbps, double servedMbps, double shortfallMbps, List<String> constraintBreaks, List<String> zoneViolations, List<WorkloadOutcome> workloads, Map<String, Double> connectionLoadMbps) Makes the lists immutable and non-null. -
Method Summary
Modifier and TypeMethodDescriptiondoubleReturns the value of theconnectionLoadMbpsrecord component.Returns the value of theconstraintBreaksrecord component.doubleReturns the value of thedemandMbpsrecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.doubleimpact()The blast radius: how much of the design is lost, 0 (nothing) to 1 (everything), used to rank scenarios worst first.doubleReturns the value of therelativeSurvivalrecord component.Returns the value of therequiredCloudsAffectedrecord component.scenario()Returns the value of thescenariorecord component.doubleReturns the value of theservedMbpsrecord component.doubleReturns the value of theserviceIndexrecord component.doubleReturns the value of theshortfallMbpsrecord component.doubleReturns the value of thesiteWeightAffectedrecord component.doubleReturns the value of thesiteWeightDisconnectedrecord component.final StringtoString()Returns a string representation of this record class.verdict()Returns the value of theverdictrecord component.Returns the value of theworkloadsrecord component.Returns the value of theworkloadsAffectedrecord component.Returns the value of theworkloadsDownrecord component.Returns the value of thezoneViolationsrecord component.
-
Constructor Details
-
ScenarioOutcome
public ScenarioOutcome(FailureScenario scenario, Verdict verdict, double serviceIndex, double relativeSurvival, double siteWeightAffected, double siteWeightDisconnected, List<String> workloadsAffected, List<String> workloadsDown, List<String> requiredCloudsAffected, double demandMbps, double servedMbps, double shortfallMbps, List<String> constraintBreaks, List<String> zoneViolations, List<WorkloadOutcome> workloads, Map<String, Double> connectionLoadMbps) Makes the lists immutable and non-null.
-
-
Method Details
-
impact
public double impact()The blast radius: how much of the design is lost, 0 (nothing) to 1 (everything), used to rank scenarios worst first.- Returns:
1 - relativeSurvival
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
scenario
-
verdict
-
serviceIndex
public double serviceIndex()Returns the value of theserviceIndexrecord component.- Returns:
- the value of the
serviceIndexrecord component
-
relativeSurvival
public double relativeSurvival()Returns the value of therelativeSurvivalrecord component.- Returns:
- the value of the
relativeSurvivalrecord component
-
siteWeightAffected
public double siteWeightAffected()Returns the value of thesiteWeightAffectedrecord component.- Returns:
- the value of the
siteWeightAffectedrecord component
-
siteWeightDisconnected
public double siteWeightDisconnected()Returns the value of thesiteWeightDisconnectedrecord component.- Returns:
- the value of the
siteWeightDisconnectedrecord component
-
workloadsAffected
Returns the value of theworkloadsAffectedrecord component.- Returns:
- the value of the
workloadsAffectedrecord component
-
workloadsDown
Returns the value of theworkloadsDownrecord component.- Returns:
- the value of the
workloadsDownrecord component
-
requiredCloudsAffected
Returns the value of therequiredCloudsAffectedrecord component.- Returns:
- the value of the
requiredCloudsAffectedrecord component
-
demandMbps
public double demandMbps()Returns the value of thedemandMbpsrecord component.- Returns:
- the value of the
demandMbpsrecord component
-
servedMbps
public double servedMbps()Returns the value of theservedMbpsrecord component.- Returns:
- the value of the
servedMbpsrecord component
-
shortfallMbps
public double shortfallMbps()Returns the value of theshortfallMbpsrecord component.- Returns:
- the value of the
shortfallMbpsrecord component
-
constraintBreaks
Returns the value of theconstraintBreaksrecord component.- Returns:
- the value of the
constraintBreaksrecord component
-
zoneViolations
Returns the value of thezoneViolationsrecord component.- Returns:
- the value of the
zoneViolationsrecord component
-
workloads
-
connectionLoadMbps
Returns the value of theconnectionLoadMbpsrecord component.- Returns:
- the value of the
connectionLoadMbpsrecord component