コードを書くときは、デバッグできる速さでしか進めません。
Cloudflareの目標は、開発者がこれまで以上に早くアプリケーションをデプロイできるためのツールを提供することです。これは、Workersプロジェクトの初期化から本番トラフィックを正常に処理するアプリケーションの可視化まで、すべてを行うためのツールを提供することを意味します。
昨年私たちは、wrangler tail
を導入しました。これにより、Workers ログのライブストリームにアクセスして、アプリケーションをデバッグする際のエラーを特定するのに役立てることができます。Workers Trace Events Logpush(略してWorkers Logpush)はこの機能を拡張し、Workersのログを希望のオブジェクトストレージや分析プラットフォームに送信するために使用できます。
Workers Logpushは、Workers有料プランの方なら誰でも使えるようになりました!このページでは、開始する方法や価格情報について説明します。
早く動かせ、そして壊_すな_
コンテナやVMを超えるCloudflare Workersのようなプラットフォームの台頭により、今ではアプリケーションのデプロイが、わずか数分でできるようになりました。しかし、アプリケーションを構築する際、どのような技術スタックを選択しても、それなりのトレードオフが発生します。
開発者としては、Workersを選択することで、基盤となるアーキテクチャについて一切心配する必要がなくなります。コードさえ書けば、(うまくいけば!)動くのです。このスタイルのプラットフォームは、観測が難しくなるという批判がよくあります。
それを変えたいと思います。
長年にわたり、wrangler dev
、Miniflare
、そして最近ではオープンソースランタイムであるworkerd
など、私たちが提供するテストツールやデバッグツールの改良を行ってきました。これらの改善により、ローカルでのデバッグやユニットテストの実行が非常に簡単になりました。しかし、エッジケースや本番環境でのみ再現されるバグは常に存在します。
もし何かが壊れたら...Workers Logpushの登場
Wrangler tailではリアルタイムにログを見ることができますが、開発者の方からは、サービスの監視を設定したり、過去の記録を振り返ったりしたいという声が聞かれます。Workers Logpush には、リクエストに関するメタデータ、console.log()メッセージ、キャッチされなかった例外が含まれます。以下は、どのようなものかを知ってもらうためのログサンプルです。
Logpushは、最も一般的な観測ツールをサポートしています。Datadog、New Relic、あるいはR2にログを送信し、保存やアドホックなクエリを行います。
{
"AccountID":12345678,
"Event":{
"RayID":"7605d2b69f961000",
"Request":{
"URL":"https://example.com",
"Method":"GET"
},
"Response":{
"status":200
},
"EventTimestampMs":1666814897697,
"EventType":"fetch",
"Exceptions":[
],
"Logs":[
{
"Level":"log",
"Message":[
"please work!"
],
"TimestampMs":1666814897697
}
],
"Outcome":"ok",
"ScriptName":"example-script"
}
料金設定
Workers Logpushは、Workersの有料プランとEnterpriseプランの両方のお客様がご利用になれます。当社ではこれを、開発者の方にとって非常に手頃な価格にしたかったのです。Workers Logpushは、100万リクエストあたり0.05ドルで、フィルタリングやサンプリングが適用された後、最終目的地へログが配信されるリクエストに対してのみ課金されます。また、毎月10Mリクエストの使用量も含まれています。
設定
Logpushは驚くほどシンプルに設定できます。
1. Logpushジョブを作成します。以下の例では、WorkersのログをR2に送信しています。
Logpushでは、フィルターとサンプリングレートを設定し、設定済みの宛先に送信されるデータ量をより細かく制御することもできます。たとえば、例外が発生したログのみを受信したい場合は、「logpull_options
」の下に以下を追加します。
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/logpush/jobs' \
-H 'X-Auth-Key: <API_KEY>' \
-H 'X-Auth-Email: <EMAIL>' \
-H 'Content-Type: application/json' \
-d '{
"name": "workers-logpush",
"logpull_options": "fields=Event,EventTimestampMs,Outcome,Exceptions,Logs,ScriptName",
"destination_conf": "r2://<BUCKET_PATH>/{DATE}?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>",
"dataset": "workers_trace_events",
"enabled": true
}'| jq .
2. Workersスクリプトでロギングを有効にする
"filter":"{\"where\": {\"key\":\"Outcome\",\"operator\":\"eq\",\"value\":\"exception\"}}"
logpush = true
という新しいプロパティをwrangler.toml
ファイルに追加することでこれを行えます。これは、トップレベルの設定か、環境下のいずれかで追加できます。このプロパティが指定された新しいスクリプトは、自動的にLogpushジョブが取得します。
今すぐ始めましょう
Workers有料プランとEnterpriseプランをご利用のお客様は、今すぐWorkers Logpushをご利用いただけます。開始方法に関する完全なガイドは、こちらをご覧ください。