メトリクスと分析
特定の時点におけるあなたのWorkersトラフィックに関する2つのグラフィカルな情報源があります:WorkersメトリクスとゾーンベースのWorkers分析。
Workersメトリクスは、あなたのWorkersのパフォーマンスと使用状況を示すことで、問題を診断し、あなたのWorkersのワークロードを理解するのに役立ちます。あなたのWorkerがゾーンのルート上または複数のゾーンで実行されている場合、Workersメトリクスは、各ゾーンごとにあなたのWorkerが処理しているトラフィックの量と、あなたのサイトが受け取っているリクエストの数を示します。
ゾーン分析は、ゾーンに割り当てられたすべてのWorkersが処理しているトラフィックの量を示します。
Workersメトリクスは、個々のWorkerのリクエストデータを集約します(あなたのWorkerが複数のドメインで実行されている場合、*.workers.dev上で、メトリクスはそれらのリクエストを集約します)。あなたのWorkerのメトリクスを表示するには:
- Cloudflareダッシュボード ↗にログインし、アカウントを選択します。
- Workers & Pagesを選択します。
- 概要で、メトリクスを表示するためにあなたのWorkerを選択します。
特定の瞬間におけるあなたのWorkerの健康状態を理解するのに役立つ2つのメトリクスがあります:リクエスト成功とエラーメトリクス、および呼び出しステータス。
最初のグラフは、成功したリクエスト、エラーが発生したリクエスト、サブリクエストに分けられたWorkersランタイムからの履歴リクエスト数を示します。
- 合計: Workerによって登録されたすべての受信リクエスト。 WAF ↗やその他のセキュリティ機能によってブロックされたリクエストはカウントされません。
- 成功: 成功またはクライアント切断の呼び出しステータスを返したリクエスト。
- エラー: スクリプトが例外をスローした、リソースを超えた、または内部エラーの呼び出しステータスを返したリクエスト — エラーの発生源の内訳については呼び出しステータスを参照してください。
リクエストトラフィックデータは、6時間未満の時間範囲のグラフに表示される最後の数分近くで減少を示す場合があります。これはトラフィックの減少を反映するものではなく、集約とメトリクス配信のわずかな遅延を示しています。
サブリクエストは、Worker内からfetchを呼び出すことによってトリガーされるリクエストです。未処理のエラーをスローするサブリクエストはカウントされません。
- 合計: Worker内から
fetchを呼び出すことによってトリガーされたすべてのサブリクエスト。 - キャッシュ済み: 返されたキャッシュされたレスポンスの数。
- 未キャッシュ: 返された未キャッシュのレスポンスの数。
ウォールタイムは、Workerの呼び出しの開始から、WorkersランタイムがもうJavaScriptを実行する必要がないと判断するまでの経過時間をミリ秒単位で表します。具体的には、実行ごとのウォールタイムチャートは、JavaScriptコンテキストがオープンのままであった時間を測定します — I/Oを待つ時間や、あなたのWorkerのwaitUntil()ハンドラー内で実行される時間を含みます。ウォールタイムは、Workerがクライアントにレスポンスの最終バイトを送信するのにかかる時間とは異なります - waitUntil()内のタスクがレスポンスが送信された後も実行されている場合、ウォールタイムは高くなることがありますし、低くなることもあります。例えば、大きなボディのレスポンスを返す場合、Workersランタイムは、場合によっては、もうJavaScriptを実行する必要がないと判断し、すべてのバイトが通過して送信される前にJavaScriptコンテキストを閉じることがあります。
実行ごとのウォールタイムチャートは、リザーバーサンプリング ↗を使用して関連する分位数に分けられた履歴ウォールタイムデータを示します。 分位数の解釈 ↗について詳しく学びましょう。
実行ごとのCPU時間チャートは、リザーバーサンプリング ↗を使用して関連する分位数に分けられた履歴CPU時間データを示します。 分位数の解釈 ↗について詳しく学びましょう。場合によっては、高い分位数が呼び出しエラーを生成せずにCPU時間制限を超えているように見えることがありますが、これはWorkersランタイム内のメカニズムによるもので、CPU制限未満のリクエストに対してCPU時間のロールオーバーを許可します。
リクエストごとの期間チャートは、Workerの呼び出しごとの履歴期間を示します。データは、CPU時間チャートと同様に関連する分位数に分けられています。あなたのWorkerの期間を理解することは、特にWorker自体でかなりの計算を行う予定がある場合に特に有用です。
呼び出しステータスを確認するには:
- Cloudflareダッシュボード ↗にログインし、アカウントを選択します。
- Workers & Pagesを選択します。
- あなたのWorkerを選択します。
- メトリクス内の概要グラフを見つけます。
- エラーを選択します。
Workerの呼び出しステータスは、Workerが成功裏に実行されたか、Workersランタイム内でレスポンスを生成できなかったかを示します。呼び出しステータスはHTTPステータスコードとは異なります。場合によっては、Workerの呼び出しが成功しても、Workersランタイムの外で発生した別のエラーのために成功したHTTPステータスを生成しないことがあります。一部の呼び出しステータスは、クライアントにWorkersエラーコードを返す結果となります。
| 呼び出しステータス | 定義 | Workersエラーコード | GraphQLフィールド |
|---|---|---|---|
| 成功 | Workerが成功裏に実行された | success | |
| クライアント切断 | HTTPクライアント(つまり、ブラウザ)がリクエストが完了する前に切断された | clientDisconnected | |
| Workerが例外をスロー | Workerが未処理のJavaScript例外をスローした | 1101 | scriptThrewException |
| リソースを超えた¹ | Workerがランタイム制限を超えた | 1102, 1027 | exceededResources |
| 内部エラー² | Workersランタイムがエラーに遭遇した | internalError |
¹ リソースを超えたステータスは、Workerがランタイム制限を超えた場合に表示されることがあります。最も一般的な原因は過剰なCPU時間ですが、Workerが起動時間や無料プランの制限を超えた場合にも発生します。
² 内部エラーステータスは、Workersランタイムがシステム内の内部障害のためにリクエストを処理できない場合に表示されることがあります。これらのエラーは、Workerコードやリソース制限に起因するものではありません。内部エラーのステータスを持つリクエストは稀ですが、通常の操作中に発生することがあります。内部エラーのステータスを持つリクエストは、請求目的の使用量にはカウントされません。内部エラーのステータスを持つリクエストの発生率が高い場合は、www.cloudflarestatus.com ↗を確認してください。
例外をさらに調査するには、wrangler tailを使用してください。
リクエストの期間チャートは、Workerがリクエストに応答するのにかかった時間を示します。これには実行時間とネットワーク遅延が含まれます。リクエストの期間チャートは、現在、あなたのWorkerがスマートプレースメントを有効にしている場合にのみ利用可能です。
実行時間とは対照的に、これはWorkerがアクティブな時間のみを測定するのに対し、リクエストの期間は、リクエストがデータセンターに到着してからリクエストが配信されるまでの時間を測定します。
データは、スマートプレースメントが有効なリクエストと無効なリクエストの期間を比較して示します(デフォルトでは、1%のリクエストがスマートプレースメント無効でルーティングされます)。チャートは、x軸に期間、y軸に対応する期間に該当するリクエストの割合を示すヒストグラムを表示します。
Workerメトリクスは、最大で3ヶ月前まで、最大1週間の増分で検査できます。
ゾーン分析は、ゾーンに定義されたすべてのルートに割り当てられたすべてのWorkersのリクエストデータを集約します。
ゾーンメトリクスを確認するには:
- Cloudflareダッシュボード ↗にログインし、アカウントを選択します。
- あなたのサイトを選択します。
- 分析 & ログで、Workersを選択します。
ゾーンデータは、過去30日間の時間範囲でスコープを設定できます。ダッシュボードには、以下に説明するチャートと情報が含まれています。
このチャートは、Worker内からfetchを呼び出すことによってトリガーされたサブリクエストをキャッシュステータス別に示します。
- 未キャッシュ: あなたのオリジンサーバーまたはサブリクエストに応答する他のサーバーによって直接応答されたリクエスト。
- キャッシュ済み: Cloudflareのキャッシュ ↗によって応答されたリクエスト。Cloudflareがあなたのコンテンツのキャッシュを増やすことで、コンテンツ配信が加速し、オリジンへの負荷が軽減されます。
このチャートは、キャッシュステータス別にゾーン内のすべてのWorkersの履歴帯域幅使用量を示します。
このチャートは、HTTPステータスコード別にゾーン内のすべてのWorkersの履歴リクエストを示します。
このチャートは、成功したリクエスト、失敗したリクエスト、サブリクエストに分けられたゾーン内のすべてのWorkersの履歴データを示します。これらのリクエストタイプは、200レベルのリクエストが成功し、400から500レベルのリクエストが失敗したものとして分類されます。
WorkerメトリクスはGraphQLによって提供されています。 GraphQLを使用したWorkersメトリクスのクエリチュートリアルで、データセットのクエリについて詳しく学びましょう。