此示例使用 GraphQL Analytics API 来查询 Magic Transit or Cloudflare WAN 隧道健康检查结果。这些结果是从 Cloudflare 服务器对您账户中配置的隧道执行的单个健康检查中聚合而来的。您可以查询过去最远三个月内、跨度最多一周的数据。
以下 API 调用请求特定账户在一天内针对特定 Cloudflare 数据中心的隧道健康检查,并输出请求的字段。将 <CLOUDFLARE_ACCOUNT_TAG> 和 <API_TOKEN>1 替换为您的 API 凭据,并根据需要调整 datetimeStart 和 datetimeEnd 变量。
API 调用按 Cloudflare 数据中心返回隧道健康检查结果。Cloudflare 会根据在单个服务器上进行的健康检查来聚合每个数据中心的结果。tunnelState 字段代表隧道的状态。Magic Transit or Cloudflare WAN 使用这些状态进行路由。tunnelState 值为 0 代表隧道已关闭(down),0.5 代表隧道已降级(degraded),1 代表隧道健康(healthy)。
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
#=> }-
有关详细信息,请参阅配置 Analytics API 令牌。 ↩