Record Class ResilienceReport
java.lang.Object
java.lang.Record
com.eqixiac.equinix.design.resilience.ResilienceReport
- Record Components:
specFingerprint- the analysed spec'sfingerprint()specName- the spec's nameportfolio- the analysed portfolio keyportfolioSource- where the portfolio came from (the optimiser's recommendation, or given)dataAsOf- when the design facts were gatheredgraph- the design graphbaseline- the design with nothing failedsingleFailures- every single failure, element failures first, then shared-fate eventspairs- what the N-2 simulation covered and its worst pairsblastRadius- the single failures ranked worst firstsinglePointsOfFailure- single elements whose loss causes an outage- redundant elements sharing a failure domainn1- the N-1 verdict (single-element failures; shared-fate events are reported, not counted)n2- the N-2 verdict over the simulated pairsremediations- concrete changes, each tied to the scenarios it addressesavailability- estimated availability per workloadavailabilityAssumptions- the per-element availabilities used and their sourceassumptions- every assumption the analysis madenotes- what the reader should know about the runtimingsMs- where the time went, in ms, by phase
public record ResilienceReport(String specFingerprint, String specName, String portfolio, String portfolioSource, Instant dataAsOf, DesignGraph graph, ScenarioOutcome baseline, List<ScenarioOutcome> singleFailures, ResilienceFindings.PairSummary pairs, List<ResilienceFindings.RankedScenario> blastRadius, List<ResilienceFindings.SinglePointOfFailure> singlePointsOfFailure, List<ResilienceFindings.CorrelatedRisk> correlatedRisks, ResilienceFindings.NVerdict n1, ResilienceFindings.NVerdict n2, List<ResilienceFindings.Remediation> remediations, List<WorkloadAvailability> availability, AvailabilityAssumptions availabilityAssumptions, List<String> assumptions, List<String> notes, Map<String,Long> timingsMs)
extends Record
The resilience analysis of one design: its graph, what every failure scenario leaves working, the
blast-radius ranking, single points of failure, correlated risks, N-1 and N-2 verdicts, estimated
availability and remediation. Produced by
ResilienceAnalyzer; Jackson-serialisable
(toJson()) with a readable toMarkdown().-
Constructor Summary
ConstructorsConstructorDescriptionResilienceReport(String specFingerprint, String specName, String portfolio, String portfolioSource, Instant dataAsOf, DesignGraph graph, ScenarioOutcome baseline, List<ScenarioOutcome> singleFailures, ResilienceFindings.PairSummary pairs, List<ResilienceFindings.RankedScenario> blastRadius, List<ResilienceFindings.SinglePointOfFailure> singlePointsOfFailure, List<ResilienceFindings.CorrelatedRisk> correlatedRisks, ResilienceFindings.NVerdict n1, ResilienceFindings.NVerdict n2, List<ResilienceFindings.Remediation> remediations, List<WorkloadAvailability> availability, AvailabilityAssumptions availabilityAssumptions, List<String> assumptions, List<String> notes, Map<String, Long> timingsMs) Makes the collections immutable and non-null. -
Method Summary
Modifier and TypeMethodDescriptionReturns the value of theassumptionsrecord component.Returns the value of theavailabilityrecord component.Returns the value of theavailabilityAssumptionsrecord component.baseline()Returns the value of thebaselinerecord component.Returns the value of theblastRadiusrecord component.Returns the value of thecorrelatedRisksrecord component.dataAsOf()Returns the value of thedataAsOfrecord component.final booleanIndicates whether some other object is "equal to" this one.graph()Returns the value of thegraphrecord component.final inthashCode()Returns a hash code value for this object.n1()Returns the value of then1record component.n2()Returns the value of then2record component.notes()Returns the value of thenotesrecord component.pairs()Returns the value of thepairsrecord component.Returns the value of theportfoliorecord component.Returns the value of theportfolioSourcerecord component.Returns the value of theremediationsrecord component.Returns the value of thesingleFailuresrecord component.Returns the value of thesinglePointsOfFailurerecord component.Returns the value of thespecFingerprintrecord component.specName()Returns the value of thespecNamerecord component.Returns the value of thetimingsMsrecord component.toJson()final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
ResilienceReport
public ResilienceReport(String specFingerprint, String specName, String portfolio, String portfolioSource, Instant dataAsOf, DesignGraph graph, ScenarioOutcome baseline, List<ScenarioOutcome> singleFailures, ResilienceFindings.PairSummary pairs, List<ResilienceFindings.RankedScenario> blastRadius, List<ResilienceFindings.SinglePointOfFailure> singlePointsOfFailure, List<ResilienceFindings.CorrelatedRisk> correlatedRisks, ResilienceFindings.NVerdict n1, ResilienceFindings.NVerdict n2, List<ResilienceFindings.Remediation> remediations, List<WorkloadAvailability> availability, AvailabilityAssumptions availabilityAssumptions, List<String> assumptions, List<String> notes, Map<String, Long> timingsMs) Makes the collections immutable and non-null.
-
-
Method Details
-
outcome
- Parameters:
scenarioId- a scenario id- Returns:
- the single-failure outcome with that id, or
null
-
toSummary
- Returns:
- a few sentences: portfolio, N-1, N-2, worst scenario, single points of failure, availability
-
toMarkdown
- Returns:
- a Markdown report: verdicts, scenario table, blast-radius ranking, single points of failure, correlated risks, N-2 summary, availability, remediation, the graph (Mermaid and table), assumptions, notes and timings
-
toJson
- Returns:
- the report as indented JSON (ISO-8601 instants)
-
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. All components in this record class are compared withObjects::equals(Object,Object). -
specFingerprint
Returns the value of thespecFingerprintrecord component.- Returns:
- the value of the
specFingerprintrecord component
-
specName
-
portfolio
-
portfolioSource
Returns the value of theportfolioSourcerecord component.- Returns:
- the value of the
portfolioSourcerecord component
-
dataAsOf
-
graph
-
baseline
-
singleFailures
Returns the value of thesingleFailuresrecord component.- Returns:
- the value of the
singleFailuresrecord component
-
pairs
-
blastRadius
Returns the value of theblastRadiusrecord component.- Returns:
- the value of the
blastRadiusrecord component
-
singlePointsOfFailure
Returns the value of thesinglePointsOfFailurerecord component.- Returns:
- the value of the
singlePointsOfFailurerecord component
-
n1
-
n2
-
remediations
Returns the value of theremediationsrecord component.- Returns:
- the value of the
remediationsrecord component
-
availability
Returns the value of theavailabilityrecord component.- Returns:
- the value of the
availabilityrecord component
-
availabilityAssumptions
Returns the value of theavailabilityAssumptionsrecord component.- Returns:
- the value of the
availabilityAssumptionsrecord component
-
assumptions
Returns the value of theassumptionsrecord component.- Returns:
- the value of the
assumptionsrecord component
-
notes
-
timingsMs
-