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

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

2022-11-18

2分で読了
この投稿はEnglishEspañol简体中文でも表示されます。

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

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()メッセージ、キャッチされなかった例外が含まれます。以下は、どのようなものかを知ってもらうためのログサンプルです。

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をご利用いただけます。開始方法に関する完全なガイドは、こちらをご覧ください。

Cloudflareは企業ネットワーク全体を保護し、お客様がインターネット規模のアプリケーションを効率的に構築し、あらゆるWebサイトやインターネットアプリケーションを高速化し、DDoS攻撃を退けハッカーの侵入を防ぎゼロトラスト導入を推進できるようお手伝いしています。

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

より良いインターネットの構築支援という当社の使命について、詳しくはこちらをご覧ください。新たなキャリアの方向性を模索中の方は、当社の求人情報をご覧ください。
Developer WeekCloudflare Workers製品ニュースLogs開発者Developer Platform

Xでフォロー

Tanushree Sharma|@_tanushreeeee
Cloudflare|@cloudflare

関連ブログ投稿

2024年10月09日 13:00

Improving platform resilience at Cloudflare through automation

We realized that we need a way to automatically heal our platform from an operations perspective, and designed and built a workflow orchestration platform to provide these self-healing capabilities across our global network. We explore how this has helped us to reduce the impact on our customers due to operational issues, and the rich variety of similar problems it has empowered us to solve....

2024年10月08日 13:00

Cloudflare acquires Kivera to add simple, preventive cloud security to Cloudflare One

The acquisition and integration of Kivera broadens the scope of Cloudflare’s SASE platform beyond just apps, incorporating increased cloud security through proactive configuration management of cloud services. ...

2024年9月27日 13:00

Our container platform is in production. It has GPUs. Here’s an early look

We’ve been working on something new — a platform for running containers across Cloudflare’s network. We already use it in production, for AI inference and more. Today we want to share an early look at how it’s built, why we built it, and how we use it ourselves. ...