😎

Workers : 2つのアップデート Log と Staging

2024/10/03に公開

2024年9月末に開催されたCloudflare Birthday Week ではCloudflareは15歳になりました。多くのサービスアップデートが発表された週でしたが、特にWorkersを中心としたDeveloper Platformは18ものアップデートが一気に発表されました。

https://blog.cloudflare.com/builder-day-2024-announcements/

この記事ではその中でも2つのアップデート、Logsの保存機能とStaging機能についてご紹介します。

Workers Logs

従来Cloudflare WorkersのLogは無償版ではマネージメントコンソールのブラウザがWebSocketを用いてデータを受信する方式で永続性を伴う保存には有償プランが必要でした。また検索機能は用意されておらず、特定のイベントをキーとしてログをドリルダウンすることが難しいという課題がありました。今後のアップデートで200,000回/日まで、7日間保存され検索が可能なログ機能がリリースされました。それ以上長期に必要なログは引き続きLogPushという機能を用いてログを外部に保存する必要があります。
https://zenn.dev/kameoncloud/articles/f441eebf32e851

さっそくやってみる

いつも通りWorkersをDeployします。Hello Worldのサンプルはこちらにあります。
https://zenn.dev/kameoncloud/articles/1fac9762aab4ec
最新版のwranglerを用いて新しプロジェクトをinitした場合wrangler.tomlに以下の2行が含まれているはずです。

[observability]
enabled = true

この状態でDeployを行い数回アクセスを行います。マネージメントコンソールでは以下のようにログが出力されています。

このログは検索可能です。また保存するため少し遅延しますので従来通りのリアルタイムログが必要な場合は、画面右のライブボタンを押してください。

従来通りの揮発性を伴うログが出力されます。

ログのサンプリング

前述の通り出力されるログは無償プランで200,000回/日までです。
このため、必要に応じでログ出力を行うリクエストをサンプリングさせることが出来ます。

wrangler.toml
[observability]
enabled = true
head_sampling_rate = 1 # optional. default = 1.

と指定することでログをサンプリングできます。(0.01 ~ 1)(0.01が1%, 1が100%)

ステージング機能について

Workersと連携するJAMStackホスティングサービスであるCloudflare Pagesにはステージング機能が存在しており、プロジェクトごとのURLとは別にサブドメインが付与されたURLがDeploy毎に生成されます。サブドメインはデプロイごとに固有のものがランダムに生成されます。これにより、メインのURLのコンテンツはデプロイごとに書き換わりますが、デプロイごとに個別URLが存続することとなりいつでも過去に遡りブラウザからアクセス可能となっています。
今回のアップデートでWorkersに10世代まで同様の機能が加わりました。

デプロイタブにはまず最新のものが確認できるようになっています。

例えばメインのURLがhttps://o11y.harunobukameda.workers.dev/の場合
https://f3ca0e9c-o11y.harunobukameda.workers.dev/のようにDeploy毎に10世代前まで環境が保持されています。

Discussion