Grafanaからのクエリ
Workers Analytics Engineは、Grafanaのようなツールを使用して視覚化できる時系列分析を強化するために最適化されています。ランタイムから書き込まれたすべてのイベントには、自動的にtimestampフィールドが追加されます。
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_metricFROM dataset_nameWHERE timestamp <= NOW() AND timestamp > NOW() - INTERVAL '1' DAYGROUP BY blob1, tORDER BY tAltinityプラグインは、この種のクエリを書くのを簡素化するための便利なマクロを提供します。マクロを使用するには、クエリビルダーでColumn:DateTimeをtimestampに設定し、その後次のように使用できます:
SELECT $timeSeries AS t, blob1 AS label, SUM(_sample_interval * double1) / SUM(_sample_interval) AS average_metricFROM dataset_nameWHERE $timeFilterGROUP BY blob1, tORDER BY tこのクエリは、ズームレベルに応じて自動的に丸め時間を調整し、現在表示されている正しい時間範囲にフィルタリングします。