コンテンツにスキップ

Grafanaからのクエリ

Workers Analytics Engineは、Grafanaのようなツールを使用して視覚化できる時系列分析を強化するために最適化されています。ランタイムから書き込まれたすべてのイベントには、自動的にtimestampフィールドが追加されます。

Grafanaプラグインの設定

GrafanaからWorkers Analytics Engineをクエリするためには、Altinityプラグイン for Clickhouseの使用を推奨します。

プラグインを以下のように設定してください:

  • URL: https://api.cloudflare.com/client/v4/accounts/<account_id>/analytics_engine/sql<account_id>を32文字のアカウントID(Cloudflareダッシュボードで確認可能)に置き換えます。
  • すべての認証設定はオフのままにします。
  • Authorizationという名前のカスタムヘッダーを追加し、値をBearer <token>に設定します。<token>を適切なAPIトークン文字列に置き換えます(詳細についてはSQL APIドキュメントを参照してください)。
  • 他のオプションは設定する必要はありません。

時系列データのクエリ

ダッシュボードで使用するためには、通常、時間間隔ごとにいくつかのメトリックを集約したいと思います。これは、timestampフィールドで丸めてグループ化することで実現できます。以下のクエリはこのように丸めてグループ化し、サンプリングを考慮しながら各時間間隔の平均を計算します。

SELECT
intDiv(toUInt32(timestamp), 60) * 60 AS t,
blob1 AS label,
SUM(_sample_interval * double1) / SUM(_sample_interval) AS average_metric
FROM dataset_name
WHERE
timestamp <= NOW()
AND timestamp > NOW() - INTERVAL '1' DAY
GROUP BY blob1, t
ORDER BY t

Altinityプラグインは、この種のクエリを書くのを簡素化するための便利なマクロを提供します。マクロを使用するには、クエリビルダーでColumn:DateTimetimestampに設定し、その後次のように使用できます:

SELECT
$timeSeries AS t,
blob1 AS label,
SUM(_sample_interval * double1) / SUM(_sample_interval) AS average_metric
FROM dataset_name
WHERE $timeFilter
GROUP BY blob1, t
ORDER BY t

このクエリは、ズームレベルに応じて自動的に丸め時間を調整し、現在表示されている正しい時間範囲にフィルタリングします。