GraphQL Analytics API は、Cloudflare のネットワークを通過する HTTP リクエストのデータと、Firewall や Load Balancing など特定プロダクトのデータを提供します。Network Analytics の利用者は、パケットレベルのデータにもアクセスできます。GraphQL Analytics API では、対象のデータセットとメトリクスを選び、さまざまな軸で絞り込みや集計をし、結果をほかのアプリケーションと連携できます。
この API の基盤は、Facebook が作成してオープンソース化した GraphQL フレームワーク ↗ です。GraphQL には活発な開発者コミュニティと、クエリを実行できる強力なクライアントがあるため、すぐに始められます。GraphQL は可視化の構築に向いており、Cloudflare ダッシュボードの分析機能もこれで動いています。
GraphQL は、スキーマを使ってビジネス領域をグラフとしてモデル化します。スキーマには、ノードの種類と、ノード同士の接続(エッジ)の論理定義があります。これらのノードが、分析に使うデータセットです。GraphQL のクエリは SQL に近く、データセット(テーブル)、取得するメトリクス(リクエスト数やバイト数など)、絞り込みやグループ化の軸(期間など)を指定します。
従来の API と違い、GraphQL のエンドポイントは 1 つだけです。
https://api.cloudflare.com/client/v4/graphqlクエリのパラメーターは、このエンドポイントへの POST リクエストのペイロードに JSON オブジェクトとして渡します。
GraphQL Analytics API へのリクエストには curl を使えます。GraphQL クライアントでクエリを組み立てて、GraphQL Analytics API に送ることもできます。
このドキュメントの GraphQL クエリ例では GraphiQL ↗ を使っています。ほかにも、Altair ↗ や Insomnia ↗ など、よく使われるオープンソースのクライアントがあります。
GraphQL API の目的は、各種 Cloudflare プロダクトの集計分析を提供することです。これらのデータセットを、Cloudflare の課金に使う利用量の指標にはしないでください。課金対象のトラフィックは DDoS トラフィックなどを除外します ↗。一方 GraphQL は全体の消費量・利用量を測るため、計測できるトラフィックはすべて含まれます。