mcpField
W
worker-logs

worker-logs

github.com/openagentsincクラウド・DevOps45837 回インストール今日更新
リポジトリ

worker-logs について

worker-logsは、サイトとAPIを実行するCloudflare Workersのライブログを調べるリポジトリ向けスキルです。問題を再現しながら、リクエスト、ステータス、コンソール出力、認証の問題を追跡できます。

主な機能

  1. 01Workerログのライブストリーミング
  2. 02リクエストとステータスの確認
  3. 03ステータス・メソッド・テキストでの絞り込み
  4. 04JSON形式のログ出力
  5. 05APIとWeb Workerのログ照合

活用シーン

  1. 01401または500レスポンスの調査
  2. 02内部ヘッダーの到達確認
  3. 03問題の再現中にAPI呼び出しを追跡
  4. 04サイトとAPIのWorkerログの照合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openagentsinc/openagents --skill worker-logs

インストール後、Claude Code で/worker-logsを入力して読み込まれたか確認します。

詳細

Cloudflare Worker のログを確認する

デプロイ済み Workers 内で何が起きているか、リクエストパス、レスポンスステータス、console.log の出力、エラーを確認する必要がある場合は、このスキルを使用します。メインサイトと API は、それぞれ別の Cloudflare Worker です。

このスキルを使用する場面

  • openagents.com または openagents.com/api からの 401/500 をデバッグする場合。
  • Worker が想定どおりのヘッダー(例:X-OA-Internal-Key)を受信しているか、また「unauthorized」を返す理由を確認する場合。
  • Rust API またはウェブアプリからの console.log/console_error! の出力を確認する場合。
  • Khala のログと照合する場合(Khala は API Worker を呼び出します。再現中は API Worker の tail を実行してください)。

このリポジトリの Workers

Worker設定ルート用途
openagents-apiapps/api/wrangler.tomlopenagents.com/api/*Rust API:legacyparity、control、D1、R2 など
openagents-web-appapps/web/wrangler.jsoncopenagents.com(メインサイト)TanStack/React アプリ(Node 互換)。

その Worker の設定ファイルがある アプリディレクトリから wrangler tail を実行します(または --config/--cwd を使用します)。

Wrangler tail(リアルタイムのみ)

Cloudflare は CLI 経由で過去の Worker ログを提供していません。取得できるのは、リクエストとログのライブストリームです。過去のデータを確認するには、ダッシュボードの Workers & Pages → 対象の Worker → Logs / Real-time Logs または Logpush を使用してください。

基本的な使い方
# API worker (Rust) — run from apps/api
cd apps/api
npx wrangler tail

# Web app worker — run from apps/web
cd apps/web
npx wrangler tail

コマンドを実行したままにして、ブラウザーで問題を再現します。各リクエストのステータスと console の出力が表示されます。

Tail のオプション
オプション意味
--format pretty人が読みやすい形式(デフォルト)。
--format jsonログ行ごとに 1 つの JSON オブジェクト(例:jq にパイプ)。
--status ok成功したリクエストのみ。
--status errorエラー/失敗のみ。
--method GETHTTP メソッドでフィルター。
--search "legacyparity"console.log メッセージ内のテキストでフィルター。
--header "x-oa-internal-key"ヘッダーの有無でフィルター。
--sampling-rate 1リクエストを 100% ログに記録(デフォルトではサンプリングされる場合があります)。
例
# API worker: only errors, pretty
cd apps/api
npx wrangler tail --status error --format pretty

# API worker: JSON and filter by URL path with jq
cd apps/api
npx wrangler tail --format json | jq 'select(.url | contains("legacyparity"))'

# Web worker: tail while reproducing a page error
cd apps/web
npx wrangler tail
2 つの Worker を 2 つのターミナルで確認する

フローのデバッグ時(例:Hatchery が Khala を呼び出し、Khala が API を呼び出す場合)に、サイトと API の両方を確認するには:

  1. ターミナル 1:cd apps/api && npx wrangler tail --format pretty
  2. ターミナル 2:cd apps/web && npx wrangler tail --format pretty
  3. 任意:Khala のログを 3 つ目のターミナルで確認:cd apps/web && npx khala logs --prod --success

その後、問題を再現します。API Worker へのリクエストと、console.log/診断出力を確認してください。

制限事項

  • リアルタイムのみ: --history はありません。tail は Ctrl+C を押すまでストリームを続けます。
  • サンプリング: 負荷が高い場合、tail はログをサンプリングすることがあります。サンプリングを抑えるには --sampling-rate 1 を使用してください。
  • クライアントは最大 10 個: Worker ごとに、同時に実行できる tail セッションは最大 10 個です。
  • シークレット: ログにシークレットを出力してはいけません。診断ログでは長さ、または「present/absent」を使用してください。

診断ログ(このリポジトリ)

legacyparity 認証について、API Worker は次のログを出力します。

  • legacyparity auth: no internal key header path=... — リクエストは Worker に到達しましたが、X-OA-Internal-Key ヘッダーがありませんでした(例:Khala によって削除された、または Khala から送信されなかった)。
  • legacyparity auth 401: path=... provided_len=... expected_len=... — ヘッダーはありましたが、値が Worker のシークレットと一致しませんでした(長さを比較してください。同じ長さの場合、値が異なります)。
  • legacyparity auth ok path=... key_len=... — 内部キーが一致し、リクエストが認証されました。

401 を再現する間、apps/api から wrangler tail を実行して、どの行が表示されるか確認してください。Khala のアクションは各リクエストの前に [legacyparityApi <label>] fetch key_len=<n> url=... をログに出力します。Worker のログと照合して、Khala が送信した内容と Worker が受信した内容を確認してください。

コメント