shiichan

Privacy Proxy のメトリクスが GraphQL で取れるようになったよ!

こんにちは、しぃちゃんだよ!今日は Cloudflare の観測まわりで、ちょっと嬉しい小ネタを紹介するね。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog から、Privacy Proxy のメトリクスが GraphQL Analytics API 経由で取れるようになったよ、っていうお知らせ。しかもこれが、Privacy Proxy の観測データにアクセスするための「新しいデフォルトの方法」になったんだって。

今までどうだったの?

これまで Privacy Proxy のメトリクスは OpenTelemetry でエクスポートする形で、コレクター(collector)のインフラを自分で用意する必要があったの。OpenTelemetry も引き続き使えるけど、これからは GraphQL がおすすめの標準になるよ。

これで何が変わるの?

GraphQL Analytics API は、コレクターのインフラがいらない plug-and-play な方法。つまり集計サーバーを立てたり運用したりする手間がまるっと省けて、エンジニアリングの負担が減るってこと。API トークンを付けて、単一のエンドポイント https://api.cloudflare.com/client/v4/graphql に叩くだけでメトリクスが取れるの。

深く潜ってみよう

使えるノードは 4 つ。それぞれ集計メトリクスを返してくれるよ。

  • privacyProxyRequestMetricsAdaptiveGroups — リクエスト量・エラー率・ステータスコード・プロキシステータスの内訳
  • privacyProxyIngressConnMetricsAdaptiveGroups — クライアント→プロキシの接続数・転送バイト数・レイテンシのパーセンタイル
  • privacyProxyEgressConnMetricsAdaptiveGroups — プロキシ→オリジンの接続数・転送バイト数・レイテンシのパーセンタイル
  • privacyProxyAuthMetricsAdaptiveGroups — 認証の試行回数(方式・結果ごと)

どのノードも、時間・データセンター(coloCode)・エンドポイントで絞り込みできて、さらにノードごとにトランスポートプロトコルや認証方式といった軸も使えるよ。

叩き方のイメージはこんな感じ(プレースホルダは自分の値に置き換えてね):

curl https://api.cloudflare.com/client/v4/graphql \
  --header "Authorization: Bearer YOUR_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{ "query": "{ viewer { accounts(filter: { accountTag: $accountTag }) { privacyProxyRequestMetricsAdaptiveGroups(filter: { date_geq: $startDate, date_leq: $endDate }, limit: 10000, orderBy: [date_ASC]) { count dimensions { date } } } } }" }'

もっと詳しく知りたい人は、Privacy Proxy 向けの GraphQL Analytics API リファレンスと、GraphQL Analytics API の入門ガイドを見てみてね。

まとめ

  • Privacy Proxy のメトリクスが GraphQL Analytics API で取れるようになったよ
  • これが観測データの新しいデフォルトの方法(OpenTelemetry も継続利用可)
  • ノードは 4 つ:リクエスト / 上り接続 / 下り接続 / 認証
  • コレクターのインフラ不要で、単一エンドポイントに叩くだけ

Privacy Proxy を運用していて、メトリクス収集まわりの運用コストを減らしたい人にぴったりのアップデートだよ!