跳转到内容
搜索文档

使用 GraphQL 查询 Magic Transit 与 Cloudflare WAN IPsec/GRE 隧道运行状况检查结果

最后更新 查看 MarkdownAgent 设置

此示例使用 GraphQL Analytics API 来查询 Magic Transit or Cloudflare WAN 隧道健康检查结果。这些结果是从 Cloudflare 服务器对您账户中配置的隧道执行的单个健康检查中聚合而来的。您可以查询过去最远三个月内、跨度最多一周的数据。

以下 API 调用请求特定账户在一天内针对特定 Cloudflare 数据中心的隧道健康检查,并输出请求的字段。将 <CLOUDFLARE_ACCOUNT_TAG><API_TOKEN>1 替换为您的 API 凭据,并根据需要调整 datetimeStartdatetimeEnd 变量。

API 调用按 Cloudflare 数据中心返回隧道健康检查结果。Cloudflare 会根据在单个服务器上进行的健康检查来聚合每个数据中心的结果。tunnelState 字段代表隧道的状态。Magic Transit or Cloudflare WAN 使用这些状态进行路由。tunnelState 值为 0 代表隧道已关闭(down),0.5 代表隧道已降级(degraded),1 代表隧道健康(healthy)。

API 调用

echo '{ "query":
  "query GetTunnelHealthCheckResults($accountTag: string, $datetimeStart: string, $datetimeEnd: string) {
    viewer {
      accounts(filter: {accountTag: $accountTag}) {
        magicTransitTunnelHealthChecksAdaptiveGroups(
          limit: 100,
          filter: {
            datetime_geq: $datetimeStart,
            datetime_lt:  $datetimeEnd,
          }
        ) {
          avg {
            tunnelState
          }
          dimensions {
            tunnelName
            edgeColoName
          }
        }
      }
    }
  }",
  "variables": {
    "accountTag": "<CLOUDFLARE_ACCOUNT_TAG>",
    "datetimeStart": "2022-08-04T00:00:00.000Z",
    "datetimeEnd": "2022-08-04T01:00:00.000Z"
  }
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @-

结果以 JSON 格式返回(根据请求),因此将输出通过管道传输到 jq 进行格式化以便于解析,如以下示例所示:

... | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @- | jq .

## 示例响应:
#=> {
#=>   "data": {
#=>     "viewer": {
#=>       "accounts": [
#=>         {
#=>           "conduitEdgeTunnelHealthChecks": [
#=>             {
#=>               {
#=>                 "avg": {
#=>                   "tunnelState": 1
#=>                 },
#=>                 "dimensions": {
#=>                   "edgeColoName": "mel01",
#=>                   "tunnelName": "tunnel_01",
#=>                   "tunnelState": 0.5
#=>                 }
#=>               },
#=>               {
#=>                 "avg": {
#=>                   "tunnelState": 0.5
#=>                 },
#=>                 "count": 310,
#=>                 "dimensions": {
#=>                   "edgeColoName": "mel01",
#=>                   "tunnelName": "tunnel_02",
#=>                   "tunnelState": 0.5
#=>                 }
#=>               }
#=>           ]
#=>         }
#=>       ]
#=>     }
#=>   },
#=>   "errors": null
#=> }

Footnotes

  1. 有关详细信息,请参阅配置 Analytics API 令牌

这篇文档对您有帮助吗?