GraphQL Analytics API 提供通过 Cloudflare 网络的 HTTP 请求数据,以及 Firewall 或 Load Balancing 等特定产品的数据。Network Analytics 用户还可以访问数据包级数据。使用 GraphQL Analytics API 选择感兴趣的特定数据集和指标,沿各种维度筛选和聚合数据,并将结果与其他应用集成。
API 的基础是 GraphQL 框架 ↗,由 Facebook 创建并开源。GraphQL 有活跃的开发者社区和用于运行查询的强大客户端,易于上手。GraphQL 特别适合构建可视化,并为 Cloudflare 仪表板中的 analytics 提供支持。
GraphQL 使用 schema 将业务域建模为图。在 schema 中,有不同类型节点及其连接(边)的逻辑定义。这些节点是你用于 analytics 的数据集。你在 GraphQL 中编写查询很像 SQL:指定数据集(表)、要检索的指标(如 requests 和 bytes),以及按维度(例如时间段)筛选或分组。
GraphQL 与传统 API 不同:它只有一个端点:
https://api.cloudflare.com/client/v4/graphql你将查询参数作为 JSON 对象放在对此端点的 POST 请求 payload 中。
你可以使用 curl 向 GraphQL Analytics API 发送请求。或者,你可以使用 GraphQL 客户端构建查询并向 GraphQL Analytics API 传递请求。
我们使用 GraphiQL ↗ 作为示例 GraphQL 查询的客户端。还有许多其他流行的开源客户端,如 Altair ↗ 和 Insomnia ↗。
GraphQL API 的目的是提供有关各种 Cloudflare 产品的聚合 analytics。这些数据集不应作为 Cloudflare 用于计费的用量衡量。可计费流量排除 DDoS 流量等 ↗,而 GraphQL 是总体消耗/用量的衡量,因此将包括所有可测量的流量。