Class OptimizationResult

java.lang.Object
com.eqixiac.equinix.design.optimizer.model.OptimizationResult

public class OptimizationResult extends Object
The result of a Metro Optimizer run.

The design answer is getRecommended() (one DesignOption: a set of metros with every objective measured, its priced cost lines and every constraint verdict), chosen from getFrontier() (every Pareto-optimal trade-off between cost, latency, resilience, coverage and compliance). getSensitivity() says how firm the choice is, getPlacement() where each workload runs. The result carries the getSpec() and its getSpecFingerprint() so it can be stored and compared.

The remaining fields restate the recommended design in the shape the Deployment Wizard, the exporters and the MCP server read: getRecommendations() (one entry per recommended metro, primary first), getTopology(), getCostEstimate() (the same lines as getRecommended().cost()), getRiskAssessment(), getLatencyMatrix() and getRequest() (the spec restated). When nothing is feasible they are empty and getSolverNotes() says why.

  • Constructor Details

    • OptimizationResult

      public OptimizationResult()
  • Method Details

    • primaryMetro

      public MetroRecommendation primaryMetro()
      Returns:
      the primary recommended metro, or null when nothing is feasible
    • top

      public List<MetroRecommendation> top(int n)
      Parameters:
      n - how many
      Returns:
      the first n recommended metros
    • specWithUsedRatesPinned

      public DesignSpec specWithUsedRatesPinned()
      The spec with every exchange rate this result used pinned in commercial.exchangeRates, so running it again reproduces the figures exactly.
      Returns:
      the spec with pinned rates (the spec unchanged when nothing was converted)
    • toSummary

      public String toSummary()
      Returns:
      a few sentences: the recommendation, its objectives, the frontier size and the search statistics
    • toMarkdown

      public String toMarkdown()
      Returns:
      a Markdown report: recommendation and why, frontier table, sensitivity, constraints, placement, cost lines, latency, risks, assumptions and data provenance
    • toJson

      public String toJson()
      Returns:
      the result as indented JSON (ISO-8601 instants)