shiichan

R2 Data Catalog のメトリクスが GraphQL Analytics API で丸見えに!

やっほー、しぃちゃんだよ!今日は R2 のデータ基盤まわりのアップデートを見つけてきたよ。地味だけど、運用してる人にはじわっと嬉しいやつなの!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog からのお知らせだよ。R2 Data CatalogGraphQL Analytics API 経由でメトリクスを出せるようになったの。新しく追加されたデータセットは 2 つだよ。

  • r2CatalogDataOperationsAdaptiveGroups:カタログへの Iceberg REST API リクエストを追跡
  • r2CatalogTableMaintenanceAdaptiveGroups:compaction や snapshot expiration みたいなテーブルメンテナンスジョブを追跡

今までどうだったの?

R2 Data Catalog は、R2 バケットに直接組み込まれたマネージドな Apache Iceberg カタログなの。R2 SQL や Spark、Snowflake、DuckDB みたいなクエリエンジンを R2 のデータにつなげられるのが魅力だよ。

でも今までは、カタログにどれくらいリクエストが来てるのか、メンテナンスジョブがちゃんと回ってるのかを、外から数字で見る手立てが乏しかったの。

これで何が変わるの?

これからは GraphQL Analytics API を叩くだけで、warehouse・namespace・テーブル・期間で絞り込んで、リクエスト量やレイテンシを見られるようになるよ。duration にはパーセンタイル集計もあるから、p50 や p99 みたいな見方もできるの。

監視ダッシュボードに組み込んだり、遅くなってるテーブルを見つけたりが、自分の手でできるようになるってことだね。

深く潜ってみよう

  • r2CatalogDataOperationsAdaptiveGroups は、操作の種類・リクエスト時間・HTTP ステータス・リクエストボディのバイト数を持ってるよ。warehouse や namespace、テーブルをまたいだリクエスト量とレイテンシの監視に使えるの。
  • r2CatalogTableMaintenanceAdaptiveGroups は、ジョブの成功率・処理したファイル数・読み書きしたバイト数・ジョブ時間を追えるよ。
  • どちらも warehouse 名・namespace・テーブル名・期間でフィルタできて、duration にはパーセンタイル集計付き。スキーマの詳細やクエリ例は R2 Data Catalog のメトリクスとアナリティクスのドキュメント にまとまってるよ。

まとめ

  • R2 Data Catalog のメトリクスが GraphQL Analytics API から取れるようになったよ
  • 追加データセットは 2 つ:リクエスト系とテーブルメンテナンス系
  • warehouse・namespace・テーブル・期間での絞り込みと、duration のパーセンタイル集計に対応
  • R2 で Iceberg を運用してて、監視や可観測性をちゃんとやりたい人に刺さる話だよ!