Method: interconnects.getDiagnostics

Returns the interconnectDiagnostics for the specified Interconnect.

In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic.

Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.

HTTP request

GET https://compute.googleapis.com/compute/v1/projects/{project}/global/interconnects/{interconnect}/getDiagnostics

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
project

string

Project ID for this request.

interconnect

string

Name of the interconnect resource to query.

Request body

The request body must be empty.

Response body

Response for the InterconnectsGetDiagnosticsRequest.

If successful, the response body contains data with the following structure:

JSON representation
{
  "result": {
    "macAddress": string,
    "arpCaches": [
      {
        "macAddress": string,
        "ipAddress": string
      }
    ],
    "links": [
      {
        "circuitId": string,
        "googleDemarc": string,
        "receivingOpticalPower": {
          "value": number,
          "state": enum
        },
        "transmittingOpticalPower": {
          "value": number,
          "state": enum
        },
        "lacpStatus": {
          "state": enum,
          "googleSystemId": string,
          "neighborSystemId": string
        },
        "operationalStatus": enum,
        "arpCaches": [
          {
            "macAddress": string,
            "ipAddress": string
          }
        ],
        "macsec": {
          "operational": boolean,
          "ckn": string
        }
      }
    ],
    "bundleOperationalStatus": enum,
    "bundleAggregationType": enum
  }
}
Fields
result

object

result.macAddress

string

The MAC address of the Interconnect's bundle interface.

result.arpCaches[]

object

A list of InterconnectDiagnostics.ARPEntry objects, describing individual neighbors currently seen by the Google router in the ARP cache for the Interconnect. This will be empty when the Interconnect is not bundled.

result.arpCaches[].macAddress

string

The MAC address of this ARP neighbor.

result.arpCaches[].ipAddress

string

The IP address of this ARP neighbor.

result.links[]

object

A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.

result.links[].circuitId

string

The unique ID for this link assigned during turn up by Google.

result.links[].googleDemarc

string

The Demarc address assigned by Google and provided in the LoA.

result.links[].receivingOpticalPower

object

An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level.

result.links[].receivingOpticalPower.value

number

Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links.

result.links[].receivingOpticalPower.state

enum

The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include:

  • OK: The value has not crossed a warning threshold.
  • LOW_WARNING: The value has crossed below the low warning threshold.
  • HIGH_WARNING: The value has crossed above the high warning threshold.
  • LOW_ALARM: The value has crossed below the low alarm threshold.
  • HIGH_ALARM: The value has crossed above the high alarm threshold.

result.links[].transmittingOpticalPower

object

An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the transmitted light level.

result.links[].transmittingOpticalPower.value

number

Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links.

result.links[].transmittingOpticalPower.state

enum

The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include:

  • OK: The value has not crossed a warning threshold.
  • LOW_WARNING: The value has crossed below the low warning threshold.
  • HIGH_WARNING: The value has crossed above the high warning threshold.
  • LOW_ALARM: The value has crossed below the low alarm threshold.
  • HIGH_ALARM: The value has crossed above the high alarm threshold.

result.links[].lacpStatus

object

result.links[].lacpStatus.state

enum

The state of a LACP link, which can take one of the following values:

  • ACTIVE: The link is configured and active within the bundle.
  • DETACHED: The link is not configured within the bundle. This means that the rest of the object should be empty.

result.links[].lacpStatus.googleSystemId

string

System ID of the port on Google's side of the LACP exchange.

result.links[].lacpStatus.neighborSystemId

string

System ID of the port on the neighbor's side of the LACP exchange.

result.links[].operationalStatus

enum

The operational status of the link.

result.links[].arpCaches[]

object

A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP neighbor entries seen on this link. This will be empty if the link is bundled

result.links[].arpCaches[].macAddress

string

The MAC address of this ARP neighbor.

result.links[].arpCaches[].ipAddress

string

The IP address of this ARP neighbor.

result.links[].macsec

object

Describes the status of MACsec encryption on this link.

result.links[].macsec.operational

boolean

Indicates whether or not MACsec is operational on this link.

result.links[].macsec.ckn

string

Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational.

result.bundleOperationalStatus

enum

The operational status of the bundle interface.

result.bundleAggregationType

enum

The aggregation type of the bundle interface.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/compute.readonly
  • https://www.googleapis.com/auth/compute
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

In addition to any permissions specified on the fields above, authorization requires one or more of the following IAM permissions:

  • compute.interconnects.get

To find predefined roles that contain those permissions, see Compute Engine IAM Roles.