observability について
ブラウザーとバックエンドのツールを使って、Web アプリや Node.js アプリをデバッグするオブザーバビリティスキルです。トレースの関連付け、コンソールとネットワークの調査、Web Vitals の確認に対応します。
主な機能
- 01トレース ID の生成と設定
- 02ブラウザーのコンソールメッセージを確認
- 03HTTP リクエストを絞り込み
- 04Web Vitals の指標を取得
- 05フロントエンドとバックエンドのトレースを関連付け
活用シーン
- 01フロントエンドからバックエンドまでのリクエストを追跡
- 02ブラウザーのエラーや失敗したリクエストを調査
- 03アプリのデバッグ中に Web Vitals を確認
MCP 対応
Browser DevTools MCP の機能を使い、ブラウザーのトレース、コンソールメッセージ、HTTP リクエスト、Web Vitals を調べます。バックエンドのログ取得とトレース連携には node-devtools-cli を使う方法も説明しています。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ serkan-ozal/ browser-devtools-skills --skill observabilityインストール後、Claude Code で/observabilityを入力して読み込まれたか確認します。
詳細
可観測性スキル
OpenTelemetry、コンソールログ、ネットワークリクエスト、分散トレーシングを使用して、Web アプリケーションと Node.js アプリケーションを監視し、デバッグします。
使用するタイミング
このスキルは、次の場合に有効になります。
- ユーザーが分散トレーシングについて質問した場合
- ユーザーがフロントエンドとバックエンドのリクエストを関連付けたい場合
- ユーザーが OpenTelemetry、Jaeger、Zipkin、またはトレーシングに言及した場合
- ユーザーがサービス間のリクエストフローをデバッグする必要がある場合
- ユーザーがアプリケーションの動作を監視したい場合
機能
分散トレーシング
browser-devtools-cli o11y get-trace-id
browser-devtools-cli o11y new-trace-id
browser-devtools-cli o11y set-trace-id --trace-id "abc123def456..."
コンソールの監視
browser-devtools-cli o11y get-console-messages
browser-devtools-cli --json o11y get-console-messages --type warning
browser-devtools-cli --json o11y get-console-messages --search "error"
ネットワークの可観測性
browser-devtools-cli --json o11y get-http-requests
browser-devtools-cli --json o11y get-http-requests --resource-type fetch
browser-devtools-cli --json o11y get-http-requests --status '{"min":400}'
パフォーマンスメトリクス
browser-devtools-cli --json o11y get-web-vitals
browser-devtools-cli --json o11y get-web-vitals --wait-ms 3000
browser-devtools-cli --json o11y get-web-vitals --include-debug
OpenTelemetry の統合
トレースコンテキスト
Browser DevTools MCP は、W3C Trace Context ヘッダーを挿入および抽出できます。
traceparent:trace-id、span-id、トレースフラグを含みますtracestate:ベンダー固有のトレース情報です
関連付けのフロー
Browser Session
│
├─► trace-id: abc123
│
▼
Frontend Request
│
├─► Header: traceparent: 00-abc123-def456-01
│
▼
Backend Service
│
├─► Logs with trace-id: abc123
│
▼
Observability Platform
│
└─► Full trace visualization
バックエンドの可観測性(node-devtools-cli)
フロントエンドのトレースとバックエンドの動作を関連付ける際は、node-devtools-cli を使用して Node.js プロセスを調査します。
# Connect to backend
node-devtools-cli --session-id backend debug connect --pid 12345
# Get console logs from Node process (can correlate with trace ID in logs)
node-devtools-cli --session-id backend --json debug get-logs
node-devtools-cli --session-id backend --json debug get-logs --search "trace"
# Optional: set tracepoints on backend handlers to capture call context
node-devtools-cli --session-id backend debug put-tracepoint \
--url-pattern "routes/api.ts" \
--line-number 25
デバッグのワークフロー
SESSION="--session-id trace-session"
# 1. Generate new trace ID
browser-devtools-cli $SESSION o11y new-trace-id
# 2. Navigate (requests will carry trace ID)
browser-devtools-cli $SESSION navigation go-to --url "https://app.example.com"
browser-devtools-cli $SESSION sync wait-for-network-idle
# 3. Perform actions
browser-devtools-cli $SESSION interaction click --selector "#submit"
browser-devtools-cli $SESSION sync wait-for-network-idle
# 4. Get trace ID for backend correlation
browser-devtools-cli $SESSION o11y get-trace-id
# 5. Check console errors
browser-devtools-cli $SESSION --json o11y get-console-messages --type error
# 6. Check network requests
browser-devtools-cli $SESSION --json o11y get-http-requests
# 7. Cleanup
browser-devtools-cli session delete trace-session
既存の Trace ID を使用する
SESSION="--session-id trace-session"
# Set trace ID from backend
browser-devtools-cli $SESSION o11y set-trace-id --trace-id "abc123def456789..."
# Navigate (requests will use this trace ID)
browser-devtools-cli $SESSION navigation go-to --url "https://app.example.com"
# All subsequent requests carry the trace ID
browser-devtools-cli $SESSION interaction click --selector "#api-call"
設定
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
OTEL_ENABLE | OpenTelemetry を有効化 | false |
OTEL_SERVICE_NAME | サービス識別子 | frontend |
OTEL_EXPORTER_TYPE | エクスポート先 | none |
OTEL_EXPORTER_HTTP_URL | コレクターのエンドポイント | - |
OTEL_EXPORTER_HTTP_HEADERS | 認証ヘッダー | - |
エクスポーターの種類
| 種類 | 説明 |
|---|---|
none | 無効 |
console | コンソールにログを記録 |
otlp/http | OTLP コレクターに送信 |
一般的なプラットフォーム
Jaeger
OTEL_EXPORTER_HTTP_URL=http://localhost:4318
Grafana Tempo
OTEL_EXPORTER_HTTP_URL=http://tempo:4318
Honeycomb
OTEL_EXPORTER_HTTP_URL=https://api.honeycomb.io
OTEL_EXPORTER_HTTP_HEADERS=x-honeycomb-team=YOUR_API_KEY
Datadog
OTEL_EXPORTER_HTTP_URL=http://localhost:4318
ベストプラクティス
- 各テストシナリオで新しいトレース ID を生成する
- バグ報告にトレース ID を記載する
- JavaScript エラーがないか、まずコンソールを確認する
- 関連するエンドポイントにネットワークリクエストを絞り込む
- フロントエンドとバックエンドのタイムスタンプを関連付ける
- トレースコンテキストを含む構造化ログを使用する
- トレースを完全に可視化するため、OTEL エクスポーターを設定する
コメント
Markdown 対応