5/12(約一ヶ月前ですが)に、Cloudflareから新しいシステム「Workers Analytics Engine」が発表されました。これについて解説していきます。
https://blog.cloudflare.com/workers-analytics-engine/
ここから先の引用は全て上記のページからの引用となります。
Workers Analytics Engineとは?
a new way to get telemetry about anything using Cloudflare Workers.
とあるように、Workers Analytics EngineはSentryの置き換えを狙った製品のようです。
Workers Analytics EngineはWorkersから送信したデータをまとめてSQLを用いて取得することができるようです。これによりfail2banや複数のデータをレポート化するなど高度なことができます。
Sentryと言うよりはSentryかつBigQueryのようなシステムのようです。KV, R2, SQLite, Durable Objects, そしてこのWorkers Analytics Engineが合わされば、もうなんでもできそうな気がします。
Workers Analytics Engineの使い方
設定方法
KVやDurable Objectsのようにwrangler.tomlに設定を書くことで利用できます。 簡単ですね。
[analytics_engine]
bindings = [
{ name = "WEATHER" }
]
2022/06/15日時点では利用できませんでした。クローズドベータに応募して、承認された場合利用できるようです。
Workerからデータを送信する
KVなどと同じようにenvに環境変数が作られ、その変数のwriteDataPoint
関数を利用することで書き込むことができます。
ラベルのリストとメトリクスのリストを挿入できるようです。
async fetch(request: Request, env) {
env.WEATHER.writeDataPoint({
labels: ["Seattle", "USA", "pro_sensor_9000"],
metrics: [25, 0.5]
});
return new Response("OK!");
}
今後はラベルとメトリクスに順序がついたり、wrangler.toml側で制限をかけたりできるようにされます。
これは型付きプログラミングが大好きな皆さんにとっては嬉しいのではないでしょうか。
データを取得して可視化する
リッチなSQL APIを用意していると言うことで、SQLもしくはGraphQLでデータを取得できます。可視化ツールGrafanaなどに向けての利用などが考えられているのか、timestampが自動的に入力されたりなど使い勝手が良さそうです。
公式サイトの画像を見てもBigQueryのように可視化できていると思います。純粋にすごいです。
今後はCloudflareのダッシュボードからこの画像のような解析ができるシステムを構築する予定らしいので、今から楽しみです。
Workers Analytics Engineの優れている点
公式ブログでは以下の点が挙げられています。
ラベル値の一意性が無限
伝統的なシステム(Prometheusのような)ではラベル値を追加するごとにメトリクスが増えていました。そのためラベル値の一意性に問題がありました。
しかしWorkers Analytics Engineを使うとそんなこと起こらず、全てのデータに一意のラベルを付与することができます。
低レイテンシ
今までのプル型メトリクスツールでは1分ごとなどにデータを取得していましたが、Workers Analytics Engineは数秒です。 KVやDurable Objectsなどの成果でしょうか…
タイムスケールによらない高速クエリ
Prometheusではデータの長期保存のために全く新しいソフトウエアが存在していましたが、Workers Analytics Engineでは直前5分から7日までのデータのあらゆるクエリを超高速に実行できます。
And of course, Workers Analytics Engine runs on Cloudflare’s global network.
と書いてあるため、KVやDurable Objects, SQLiteなどの成果が現れたと言っても過言ではないでしょう。
感想
Edge Computingのためのシステムは大体揃ったと思うので、これから本格的にCloudflareでEdge Computingする企業が出てくるんじゃないかなと思っています。
私も自分のプロダクトでWorkersを使用していますが、D3やAnalytics Engineが出るのが楽しみです。
今後も新しいブログが出たらこのように解説していきたいと思っています。 ぜひTwitterなどでのシェアをよろしくお願いします。