Class PeeringIntelligence

java.lang.Object
com.eqixiac.equinix.design.peering.PeeringIntelligence

public class PeeringIntelligence extends Object
Entry point for Peering Intelligence - an interconnection analysis tool that combines PeeringDB IX peering data with Equinix Fabric private connectivity data to produce unified presence matrices, resiliency assessments, and peering opportunity discovery.

Capabilities

  • Presence Matrix: ASN x Metro grid showing IX peering, Fabric availability, port capacity, and route server participation at every Equinix location
  • Resiliency Analysis: Blast radius evaluation, correlated failure detection, geographic diversity scoring, and failover path identification
  • Unified Connectivity: Combined IX + Fabric view per ASN per metro - every way to reach a network through Equinix
  • Peering Opportunities: Mutual IX presence discovery - IXes where the customer and a target ASN are both connected. PeeringDB records IX membership, not sessions, so whether the two networks already peer there is not (and cannot be) checked from this data.

Fabric availability is cross-referenced live from the Equinix Fabric service-profile catalog: a target is marked Fabric-reachable at a metro when a service profile whose name identifies that network (curated CloudProviderType matching for known clouds - bridging corporate names like "Amazon.com" to product profiles like "AWS Direct Connect" - otherwise whole-token, brand-distinctive name matching) publishes that metro. It indicates an available private on-ramp, not an existing connection. The cross-reference is best-effort: when the catalog cannot be read, a warning marks Fabric availability as not analyzed rather than reporting false everywhere.

PeeringDB credentials

PeeringDB authentication is an API key (created on peeringdb.com) - a separate credential from the Equinix OAuth client. The key is resolved in this order:

  1. an explicit key - fabric.peeringIntelligence("key") or builder(fabric, "key")
  2. the EquinixConfig.peeringDbApiKey option configured on the client/session
  3. the "PEERINGDB_API_KEY" environment variable
  4. anonymous access (rate-limited by PeeringDB to ~20 requests/minute)

Usage

// Basic presence matrix
PeeringIntelligenceResult result = fabric.peeringIntelligence("your-peeringdb-api-key")
    .addAsn(16509, "AWS")
    .addAsn(8075, "Microsoft")
    .addAsn(15169, "Google")
    .analyze();

System.out.println(result.getPresenceMatrix().toTableString());

// Full analysis with customer context
PeeringIntelligenceResult result = fabric.peeringIntelligence("your-peeringdb-api-key")
    .addAsn(16509, "AWS")
    .addAsn(8075, "Microsoft")
    .customerMetros(MetroCode.DC, MetroCode.DA, MetroCode.SG)
    .customerAsn(65100L)
    .includeCapacity(true)
    .includePolicies(true)
    .includeResiliency(true)
    .analyze();

System.out.println(result.toMarkdown());
Author:
ianjones
See Also:
  • Field Details

    • PEERINGDB_API_KEY_ENV

      public static final String PEERINGDB_API_KEY_ENV
      The environment variable consulted for a PeeringDB API key when none is supplied explicitly or via EquinixConfig.peeringDbApiKey.
      See Also:
  • Method Details

    • builder

      public static PeeringIntelligence.Builder builder(FabricGateway fabric, String peeringDbApiKey)
      Creates a new builder for configuring a peering intelligence analysis.
      Parameters:
      fabric - the Fabric client instance (used for Fabric service profile cross-referencing)
      peeringDbApiKey - the PeeringDB API key for authenticated access, or null to fall back to the "PEERINGDB_API_KEY" environment variable (anonymous access when that is unset too)
      Returns:
      a new PeeringIntelligence.Builder
    • builder

      public static PeeringIntelligence.Builder builder(FabricGateway fabric)
      Creates a new builder without an explicit PeeringDB API key: the "PEERINGDB_API_KEY" environment variable is used when set, anonymous access (~20 requests/minute) otherwise.
      Parameters:
      fabric - the Fabric client instance
      Returns:
      a new PeeringIntelligence.Builder
    • forSpec

      public static PeeringIntelligence.Builder forSpec(FabricGateway fabric, DesignSpec spec)
      Begins a peering analysis of a DesignSpec: the spec's PeerIntents are the target networks (labelled as the spec labels them), and the metros its sites name plus its constraints.requiredMetros are the customer metros (resiliency analysis is enabled when there is at least one). The result carries the spec's fingerprint() (PeeringIntelligenceResult.getSpecFingerprint()) so it can be chained with the other design engines. The PeeringDB credential is resolved as for builder(FabricGateway); further builder calls (another ASN, customerAsn) refine the analysis.
      Parameters:
      fabric - the Fabric client instance
      spec - the design; must declare at least one peer
      Returns:
      a builder primed from the spec
      Throws:
      IllegalArgumentException - when the spec has errors or declares no peer
    • forSpec

      public static PeeringIntelligence.Builder forSpec(FabricGateway fabric, DesignSpec spec, String peeringDbApiKey)
      As forSpec(FabricGateway, DesignSpec), authenticated to PeeringDB with an explicit key.
      Parameters:
      fabric - the Fabric client instance
      spec - the design; must declare at least one peer
      peeringDbApiKey - the PeeringDB API key, or null for the usual fallbacks
      Returns:
      a builder primed from the spec
      Throws:
      IllegalArgumentException - when the spec has errors or declares no peer