新規投稿のお知らせを受信されたい方は、サブスクリプションをご登録ください:

Workers Trace Events LogpushでCloudflare Workersのログを任意の宛先に送信する

2022/11/18

3 分で読了
Send Cloudflare Workers logs to a destination of your choice with Workers Trace Events Logpush

コードを書くときは、デバッグできる速さでしか進めません。

Cloudflareの目標は、開発者がこれまで以上に早くアプリケーションをデプロイできるためのツールを提供することです。これは、Workersプロジェクトの初期化から本番トラフィックを正常に処理するアプリケーションの可視化まで、すべてを行うためのツールを提供することを意味します。

昨年私たちは、wrangler tailを導入しました。これにより、Workers ログのライブストリームにアクセスして、アプリケーションをデバッグする際のエラーを特定するのに役立てることができます。Workers Trace Events Logpush(略してWorkers Logpush)はこの機能を拡張し、Workersのログを希望のオブジェクトストレージや分析プラットフォームに送信するために使用できます。

Workers Logpushは、Workers有料プランの方なら誰でも使えるようになりました!このページでは、開始する方法や価格情報について説明します。

早く動かせ、そして壊すな

コンテナやVMを超えるCloudflare Workersのようなプラットフォームの台頭により、今ではアプリケーションのデプロイが、わずか数分でできるようになりました。しかし、アプリケーションを構築する際、どのような技術スタックを選択しても、それなりのトレードオフが発生します。

開発者としては、Workersを選択することで、基盤となるアーキテクチャについて一切心配する必要がなくなります。コードさえ書けば、(うまくいけば!)動くのです。このスタイルのプラットフォームは、観測が難しくなるという批判がよくあります。

それを変えたいと思います。

長年にわたり、wrangler devMiniflare、そして最近ではオープンソースランタイムであるworkerdなど、私たちが提供するテストツールやデバッグツールの改良を行ってきました。これらの改善により、ローカルでのデバッグやユニットテストの実行が非常に簡単になりました。しかし、エッジケースや本番環境でのみ再現されるバグは常に存在します。

もし何かが壊れたら...Workers Logpushの登場

Wrangler tailではリアルタイムにログを見ることができますが、開発者の方からは、サービスの監視を設定したり、過去の記録を振り返ったりしたいという声が聞かれます。Workers Logpush には、リクエストに関するメタデータ、console.log()メッセージ、キャッチされなかった例外が含まれます。以下は、どのようなものかを知ってもらうためのログサンプルです。

{
   "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"
   }

Logpushは、最も一般的な観測ツールをサポートしています。Datadog、New Relic、あるいはR2にログを送信し、保存やアドホックなクエリを行います。

料金設定

Workers Logpushは、Workersの有料プランとEnterpriseプランの両方のお客様がご利用になれます。当社ではこれを、開発者の方にとって非常に手頃な価格にしたかったのです。Workers Logpushは、100万リクエストあたり0.05ドルで、フィルタリングやサンプリングが適用された後、最終目的地へログが配信されるリクエストに対してのみ課金されます。また、毎月10Mリクエストの使用量も含まれています。

設定

Logpushは驚くほどシンプルに設定できます。

1. Logpushジョブを作成します。以下の例では、WorkersのログをR2に送信しています。

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 .

Logpushでは、フィルターサンプリングレートを設定し、設定済みの宛先に送信されるデータ量をより細かく制御することもできます。たとえば、例外が発生したログのみを受信したい場合は、「logpull_options」の下に以下を追加します。

"filter":"{\"where\": {\"key\":\"Outcome\",\"operator\":\"eq\",\"value\":\"exception\"}}"

2. Workersスクリプトでロギングを有効にする

logpush = trueという新しいプロパティをwrangler.tomlファイルに追加することでこれを行えます。これは、トップレベルの設定か、環境下のいずれかで追加できます。このプロパティが指定された新しいスクリプトは、自動的にLogpushジョブが取得します。

今すぐ始めましょう

Workers有料プランとEnterpriseプランをご利用のお客様は、今すぐWorkers Logpushをご利用いただけます。開始方法に関する完全なガイドは、こちらをご覧ください。

Cloudflareは 企業のネットワーク全体 を保護し、お客様が インターネット規模のアプリケーションを効率的に 構築するためのお手伝いをします。また、すべてのWebサイトまたはインターネットアプリケーション を迅速化し、DDoS攻撃を阻止して、 ハッカーを封じ込めます 。 さらに、Zero Trustを始める、あるいは導入のあらゆるフェーズにいる お客様を支援します。

インターネットを高速化し、安全性を高めるには、ご使用のデバイスから 1.1.1.1 にアクセスすることで、Cloudflareの無料アプリをご利用いただけます。

より良いインターネットの構築を支援するというCloudflareの使命について詳しくは、こちら をご覧ください。新たなキャリア形成をお考えの方は、求人情報 にアクセスしてください。
Product News (JP)Cloudflare Workers (JP)Logs (JP)日本語

Xでフォロー

Tanushree Sharma|@_tanushreeeee
Cloudflare|@cloudflare

関連ブログ投稿

2023年11月16日 18:49

Cloudflare Oneの高度なセッション監査機能紹介

管理者による、Cloudflare Oneポリシーで使用されるすべてのアクティブなユーザーセッションと関連データの監査が簡単にできるようになりました。これにより、トラブルシューティングと診断性能を向上、そして極度にきめ細かな制御の両方の長所が同時に活着ることとなります...

2023年10月18日 3:24

ネットワークフロー監視はGA版(一般公開版)で、エンドツーエンドのトラフィックを可視化します

ネットワークエンジニアは、DDoS攻撃の分析やその他のトラフィックの異常のトラブルシューティングを行う際に、ネットワークのトラフィックをより適切に可視化する必要がある場合がよくあります。この問題を解決するため、Cloudflareはネットワークフロー監視製品を提供し、ネットワーク全体のエンドツーエンドのトラフィックを可視化します...