mcpField
D
debugging-apex-logs

debugging-apex-logs

github.com/forcedotcom開発1.1k3.0k 回インストール1 日前に更新
リポジトリ

debugging-apex-logs について

debugging-apex-logs は、デバッグログを使って調査する Salesforce 開発者向けのトラブルシューティングスキルです。例外、ガバナ制限、パフォーマンスの兆候から根本原因を探り、修正と検証手順を提示します。

主な機能

  1. 01デバッグログ取得のガイダンス
  2. 02例外とスタックトレースの分析
  3. 03ガバナ制限の診断
  4. 04SOQL、DML、CPU、ヒープの調査
  5. 05証拠に基づく修正と検証

活用シーン

  1. 01トランザクション失敗の原因特定
  2. 02ガバナ制限の逼迫を診断
  3. 03遅いクエリやヒープ使用量の調査

インストール

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

$npx skills add https://github.com/forcedotcom/sf-skills --skill debugging-apex-logs

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CREDITS.md
README.md
assets/
benchmarking-template.cls
cpu-heap-optimization.cls
dml-in-loop-fix.cls
null-pointer-fix.cls
soql-in-loop-fix.cls
references/
analysis-playbook.md
benchmarking-guide.md
cli-commands.md
common-issues.md
debug-log-reference.md
log-analysis-tools.md
scoring-rubric.md

詳細

debugging-apex-logs:Salesforce デバッグログの分析とトラブルシューティング

ユーザーがデバッグログに基づく根本原因分析を必要としている場合に、このスキルを使用します。対象には、ガバナ制限の診断、スタックトレースの解釈、低速クエリの調査、ヒープ/CPU 負荷の分析、ログの証拠に基づく再現から修正までの反復が含まれます。

このスキルが担当するタスク

次の作業では debugging-apex-logs を使用します。

  • Salesforce の .log ファイル
  • スタックトレースと例外の分析
  • ガバナ制限
  • SOQL/DML/CPU/ヒープのトラブルシューティング
  • ログから抽出したクエリプランやパフォーマンスの証拠

次の場合は別のスキルに委任します。


最初に収集する必要があるコンテキスト

次の情報を尋ねるか、推測します。

  • 組織のエイリアス
  • 失敗したトランザクション/ユーザーフロー/テスト名
  • おおよそのタイムスタンプまたはトランザクションの時間帯
  • 分かる場合はユーザー/レコード/リクエスト ID
  • 目標が診断のみか、診断と修正の反復か

推奨ワークフロー

1. ログを取得する

references/cli-commands.md のコマンドを使用して、対象組織のログを一覧表示、ダウンロード、またはストリーミングします。

2. 次の順序で分析する
  1. エントリーポイントとトランザクションの種類
  2. 例外/致命的なエラー
  3. ガバナ制限
  4. 繰り返される SOQL/DML パターン
  5. CPU/ヒープのホットスポット
  6. コールアウトのタイミングと外部サービスの障害
3. 重大度を分類する
  • Critical — 実行時エラー、ハードリミット、破損のリスク
  • Warning — 制限値に近い、非選択的なクエリ、低速な処理経路
  • Info — 最適化の機会または衛生上の問題

ワークフローの詳細:references/analysis-playbook.md


特に有用な問題パターン

問題主な兆候基本的な修正方針
ループ内の SOQL繰り返し呼び出される処理経路で SOQL_EXECUTE_BEGIN が繰り返されるクエリを一度だけ実行し、マップ/グループ化したコレクションを使用する
ループ内の DMLDML_BEGIN パターンが繰り返される行を収集し、DML を一度に一括実行する
非選択的なクエリスキャン対象行数が多い/選択性が低いインデックス付きフィルターを追加し、対象範囲を絞る
CPU 負荷CPU 使用量が同期処理の制限に近づいているアルゴリズムの複雑さを抑え、キャッシュを使用し、可能であれば非同期処理にする
ヒープ負荷ヒープ使用量が同期処理の制限に近づいているSOQL の for ループでストリーミングし、メモリ内データを減らす
Null ポインター/致命的なエラーEXCEPTION_THROWN/FATAL_ERRORnull の可能性を考慮し、クエリ結果が空の場合の処理を修正する

詳細な例:references/common-issues.md


出力形式

分析を終えたら、次の順序で報告します。

  1. 何が失敗したか
  2. どこで失敗したか(クラス/メソッド/行/トランザクションの段階)
  3. なぜ失敗したか(症状だけでなく根本原因)
  4. 重大度
  5. 推奨する修正
  6. 検証手順

推奨される形式:

Issue: <summary>
Location: <class / line / transaction>
Root cause: <explanation>
Severity: Critical | Warning | Info
Fix: <specific action>
Verify: <test or rerun step>

ルール/制約

ルール理由
修正の推奨は必ずログの証拠に基づける推測による診断を避け、根本原因をログから追跡できるようにします
見つかった問題ごとに、出力項目を6つすべて報告する各問題について、実行可能で網羅的な調査結果を確保します
調査結果をすべて Critical、Warning、Info のいずれかに分類するユーザーが対応する問題の優先順位を付けやすくします
コード生成は generating-apex に委任するこのスキルは診断を行いますが、Apex コードは書き換えません
テストの実行は running-apex-tests に委任するこのスキルはテストクラスの実行も修復も行いません
LIMIT_USAGE イベントを読まずに、制限が安全だと決めつけない失敗箇所の前に行われた処理が制限を消費している場合があります

注意点

落とし穴対処法
ログが 2 MB で切り詰められるデバッグレベルを下げ(例:ApexCode: INFO、ApexProfiling: FINE)、再取得します
同じ問題が SOQL の問題と CPU の問題の両方として現れるまず SOQL のループ内実行を修正します。通常、これが二次的な影響として CPU の急増を引き起こします
トレースフラグの設定後にログが表示されないトレースフラグの ExpirationDate が未来に設定されていることと、正しいユーザーがトレース対象になっていることを確認します
非同期コンテキストでは制限値が変わるCPU 制限は非同期処理で 60,000 ms、同期処理で 10,000 ms です。制限違反を指摘する前に、トランザクションの種類を確認します
スタックトレースがユーザーコードではなく、フレームワークの行を示しているトリガーハンドラーを越えてコールスタックをたどり、元となるユーザーコードを見つけます

スキル間の連携

必要な作業依頼先理由
Apex の修正を実装するgenerating-apexコード変更の生成/レビュー
テストで再現するrunning-apex-testsテストの実行とカバレッジの反復
修正をデプロイするdeploying-metadataデプロイのオーケストレーション
デバッグ用データを作成するhandling-sf-data対象を絞ったシードデータ/再現用データ

参考ファイル一覧

ファイル参照するタイミング
references/analysis-playbook.mdまずここから読みます。あらゆるデバッグセッションで使える、詳しい手順ごとのワークフローです
references/common-issues.mdSOQL のループ内実行、DML のループ内実行、CPU/ヒープの負荷、ヌルポインターのパターンをすばやく確認できます
references/cli-commands.mdデバッグログの取得、ストリーミング、管理に使う SF CLI コマンドです
references/debug-log-reference.mdイベントタイプの全一覧、ログレベル、ガバナ制限の参照値です
references/log-analysis-tools.mdツールガイド:Apex Log Analyzer、Developer Console、CLI の grep パターン
references/benchmarking-guide.mdパフォーマンスのベンチマーク手法、ベンチマークデータ、アンチパターンです
references/scoring-rubric.md分析品質の評価に使う 100 点満点の評価基準です
assets/benchmarking-template.clsパフォーマンスベンチマークの実行に使う、コピー&ペースト可能な Anonymous Apex テンプレートです
assets/cpu-heap-optimization.clsCPU 時間とヒープ割り当てを削減する Apex パターンです
assets/dml-in-loop-fix.clsDML のループ内実行違反を解消する前後の例です
assets/soql-in-loop-fix.clsSOQL のループ内実行違反を解消する前後の例です
assets/null-pointer-fix.clsヌルポインター例外を防ぐためのパターンです

スコアガイド

スコア意味
90+優れた修正指針を伴う、エキスパートレベルの分析
80–89小さな不足点があるものの、良好な分析
70–79許容範囲ですが、二次的な問題を見落とす可能性があります
60–69部分的な診断のみ
< 60不完全な分析

コメント