Salesforce Developers Japan Blog

Apex Log Analyzerによる問題の早期発見

オリジナル記事

Find Problems Faster with the Apex Log Analyzer

 

問題を診断しようとする際、Apexのログは豊富な情報源となります。デバッグログには、データベース操作、システムプロセス、マネージドパッケージで実行されるコード、トランザクションの実行時や単体テストの実行時に発生するエラーを記録できます。しかし、ログを未加工の形式で使用すると、問題を把握して特定する前に、ディスク容量を食いつぶしてしまう可能性があります。

FinancialForce社は、社内の開発チームでログを迅速に解析するツールを作成して、すべてのユーザが利用できるように公開しています。このツールは拡張機能として作成されているので、Visual Studio Codeですぐに利用できます。それでは、この新機能を使ってどんなことができるのかをご紹介します。

百聞は一見にしかず、と言います。

Apexのデバッグログを見て、頭の中でコールツリーに変換しようとしたことがあれば、それが簡単ではないことがおわかりいただけると思います。各メソッドやステートメントのネストされたコールや時間を視覚化し、さらに実行全体におけるマネージドパッケージやフローの責任を解明することは難しいものです。Log Analyzerの[Timeline]ビューでは、コールツリーがタイムラインとして表示され、ネストされているコールを確認し、コードの完了までに最も時間がかかっている部分を把握できます。簡単に視覚的な手がかりを得られ、問題のありそうな場所を特定することができます。これは、問題を把握しようとするときに非常に時間の節約になります。

縮小してログ全体を画面に収めることも、特定の部分にフォーカスすることもできます。カーソルを合わせるとコールの詳細が表示され、クリックして[Call Tree]ビューの該当行に直接移動できます。このビューでは、すべてのログの詳細が展開可能なツリーで表示されます。プロジェクトのソースがローカルにあれば、任意のメソッドをクリックしてソースコードに直接移動できます。

 

問題の早期発見

パフォーマンスの問題を見つけるのは大変なことです。ユーザから動作が遅いという一般的な報告があっても、必ずしもそこから多くのことがわかるわけではありません。SOQLクエリとDMLステートメントは、いくつかのパフォーマンス問題を引き起こしやすい部分です。こうした問題を迅速に検出するのに役立つビューが他にも2つがあります。

  • Analysis – このタブには、メソッドのパフォーマンスの概要が表示され、合計時間、正味時間、それぞれのコール回数が表示されます。最適化できそうな部分については、最も時間がかかり、最も多く呼び出されているメソッドを探すのがおすすめです。また、項目に従ってリストを並べ替えて、最も関心のある項目に絞ることができます。
  • Database – このタブには、ログに含まれるDMLおよびSOQLクエリの内訳が表示されます。それぞれについて、ステートメントの実行回数や行数を確認することができます。取得レコード件数がほとんどないと思っていたクエリが、数百件のレコードを取得していた場合は、さらに調査する必要があります。最も多くのデータを使用するDMLおよびSOQLステートメントにフォーカスすることで、パフォーマンス問題の最適化や解決を行おうとする際に、時間を有効に使うことができます。

まとめ

Apexログを迅速に解釈するために、この新しいツールをぜひご利用ください。ユーザの問題の解決にも、パフォーマンスのチューニングにも、自由に使える便利なツールです。Salesforceでは、公開ツールの構築に取り組んでおり、コミュニティのためのツールがまた1つ増えることをうれしく思います。この拡張機能は、VS Codeマーケットプレイスからインストールできます。サポートいただける場合や、フィードバックをお送りいただける場合は、リポジトリをご覧ください

著者紹介

Stephanie Maddoxは、Salesforce Extensions for VS Code担当のプロダクトマネージャーです。2010年3月にExactTarget社に入社し、Salesforce社による買収により2013年7月に正式に同社の一員となりました。Salesforceではカスタマーサクセスとプロダクト管理を担当しています。ボールステイト大学でコンピュータサイエンスの学位を取得し、キャリアの最初の8年間を開発者として過ごしました。TwitterLinkedInTrailheadでフォローすることができます。

コメント

Apex Log Analyzerによる問題の早期発見