Subscribe to receive notifications of new posts:

Subscription confirmed. Thank you for subscribing!

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

Loading...

3 min read
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の使命について詳しくは、 こちら をご覧ください。新たなキャリア形成をお考えの方は、 求人情報 にアクセスしてください。

開発者ウィーク Cloudflare Workers (JP) 製品ニュース ログ 日本語

Follow on Twitter

Tanushree Sharma |@_tanushreeeee
Cloudflare |Cloudflare

Related Posts

May 16, 2023 2:05PM

Database Integrationsを発表:数回クリックして、Workers上のNeon、PlanetScale、Supabaseに接続できます

本日、Database Integrationsを発表しました–Workers上で選択したデータベースとシームレスに接続できるようになります。まず、HTTP接続をサポートする最も人気のあるデータベースをいくつか追加しました:Neon、PlanetScale、Supabaseを追加し、今後も追加していく予定です...

November 17, 2022 2:05PM

Cloudflare Pagesのあなたのサイトを、一般提供されたPages Functionsでより充実させる

Pagesは、Pages Functionsが一般に利用可能となり、正式にフルスタックプラットフォームとなりました。Pagesは、Workersのパワーとスケーラビリティを活用し、Pages開発者の経験値に合うように特化させることができます...