IntelliJ プラットフォーム用 Datadog プラグイン

Join the Beta!

IntelliJ IDEA および GoLand 用 Datadog プラグインが公開ベータ版になりました。これは、Java および Go サービスにログエクスプローラーContinuous Profiler などの Datadog 製品を使用している開発者を対象としています。プラグインが予期せず動作しなくなった場合は、プラグインの更新を確認するか、チームに連絡してください。

概要

IntelliJ プラットフォーム (IDEA と GoLand) 用の Datadog プラグインは、リアルタイムの観測可能性データに基づいて IDE でコードレベルの有意義な洞察を提供することにより、ソフトウェアパフォーマンスの向上を支援します。

IDEA で開いた Datadog ツールのウィンドウ

Code Insights ビューでは、次のような情報が得られます。

Continuous Profiler は、以下をハイライトすることで、レイテンシーを削減し、クラウドのコストを削減するのに役立ちます。

  • 最も多くの CPU を消費するコードライン
  • メモリを最も多く割り当てるコードライン
  • ロック、ディスク I/O、ソケット I/O に最も多くの時間を費やしているコードライン

Logs Navigation サポートは、作業中のコンテキストに合ったビューで Datadog ログエクスプローラーを開きます。

要件

  • Datadog アカウント: このプラグインを使用するには、Datadog のアカウントが必要です。Datadog が初めての方は、Datadog Web サイトで Datadog の観測可能性ツールの詳細と無料トライアルにサインアップしてください。
  • Continuous Profiler: プロファイリングデータとインサイトを表示するには、プラグインを使用するサービスに Continuous Profiler が構成されている必要があります。詳細については、Continuous Profiler の概要を参照してください。
  • JetBrains Toolbox: View in IDE 機能を使用するには、開発者のマシンに JetBrains Toolbox がインストールされている必要があります。

セットアップ

Datadog プラグインをインストールする

  1. Plugins をクリックし、Datadog を検索します。
  2. Install をクリックすると、プラグインがダウンロードされ、IDE にインストールされます。
  3. Datadog がサードパーティのプラグインであることを通知するプロンプトが表示された場合、Accept をクリックします。
  4. Restart IDE をクリックします。
Datadog プラグイン

または、JetBrains Marketplace からプラグインをインストールすることができます。

Datadog にログインする

Datadog プラグインをインストールし、IDE を再起動した後、Datadog にログインします。

  1. IDE でファイルまたはプロジェクトを開いた状態で、Datadog ツールウィンドウをクリックします。
  2. Log in… をクリックします。
  3. ブラウザで開いたウィンドウで、サイトと組織を選択し、プラットフォームへのアクセスを認可します。

: ほとんどのユーザーにとって、必要なログインは 1 つだけです。複数の組織設定を使用している場合は、正しいアカウントがアクティブであることを確認してください。IDE がどのログインを使用しているかを確認するには、Settings -> Tools -> Datadog をクリックし、どのアカウントがアクティブになっているかを確認します。

サービスのリンク

Datadog プラットフォームから関連データを提供するには、プロジェクトに関係サービスを追加します。

  1. IDE でプロジェクトを開いた状態で、Datadog ツールウィンドウを開き、Options メニューから Manage Linked Services… を選択します。
  2. 設定ダイアログが開きますので、プラスアイコン (+) をクリックします。
  3. 現在のプロジェクトに追加したいサービスを検索して選択します。

サービスを削除するには、Services 表でサービスを選択し、マイナスアイコン (-) をクリックします。

リンクされたサービスの名前は、プロジェクトを閉じても残ります。

コードインサイト

Code Insights タブには、Datadog プラットフォームによって生成された、現在のプロジェクトに関連するインサイトが表示されます。洞察は、パフォーマンス、信頼性、セキュリティの 3 つのカテゴリーに分類されます。

Code Insights タブ。

Code Insights には、各問題の詳細な説明と以下へのリンクが含まれています。

  • 関連するソースコードの場所
  • Datadog プラットフォーム (追加情報が得られます)

個々のインサイトを解除したり、フィルターを設定して、関心のあるインサイトのカテゴリーを表示することができます。

Continuous Profiler

Continuous Profiler タブは、選択した環境におけるサービスのプロファイリング情報を、特定の時間枠で集計して表示します。利用可能なビューは次のとおりです。

  • トップリスト: 現在のプロファイリングメジャーで最もリソースを消費するメソッドのリストを表示します。
  • フレームグラフ: プロファイルのスタックトレースを表すフレームグラフ。

プロファイリングデータには、以下のパラメーターを指定することができます。

  • 表示するプロファイルの種類
  • サービスが動作している環境
  • プロファイラーサンプルが集計されるまでの期間

利用可能なプロファイリングの種類は、通常、CPU TimeAllocated Memory などのオプションがありますが、プラットフォームによって決定され、言語によって変化します。

Toplist

Top List サブタブには、Datadog サーバーから読み込まれた集計されたプロファイルデータに基づいて、最もリソースを消費するメソッドが表示されます。Top List は、リソース消費の観点から最も興味深いメソッドの概要を表示するように設計されています。

トップリストビュー
  • リスト内の項目をダブルクリック (またはコンテキストメニューから Jump to Source を選択) すると、そのメソッドが定義されている場所を示すソースコードエディターが開きます。
  • メソッドのフレームグラフ視覚化を見るには、コンテキストメニューから Search in Flame Graph を選択します。

コールツリー

Top List の右側にあるコールツリーには、選択したメソッドにつながる (およびメソッドからつながる) パスが表示されます。

デフォルトの Caller Hierarchy ビューには、ターゲットメソッドの呼び出し元 (または先行者) と、それらがコールスタックに表示される頻度が表示されます。呼び出し先 (または後継者) を表示するには、ツールバーの Callee Hierarchy ボタンをクリックします。

コールツリー内のメソッドを右クリックすると、ソースエディタまたはフレームグラフに移動するオプションが表示されます。

フレームグラフ

フレームグラフは、プロファイリングサンプルを視覚化したもので、サンプル期間中のスタックトレースとその相対的な頻度を表示するものです。Datadog プラグインは、リクエストされた時間枠から複数の個別プロファイリングを収集し、それらを集計します。個々のプロファイラーは、リクエストされた時間枠内の 60 秒のインターバルをカバーします。

過去 1 時間の CPU 時間を示すフレームグラフ

プロファイルの種類、時間枠、環境を変更するたびに、Datadog プラグインは新しいフレームグラフを生成します。

フレームグラフは、いくつかの方法で操作することができます。

  • 任意のフレームをダブルクリックすると、そのメソッドと、サンプリング期間中にそのメソッドが呼び出したすべてのメソッドにフォーカスされます。
  • ミニマップを使って、グラフをパンすることができます。
  • メソッド上で右クリックし、Jump to Source を選択すると、ソースコード内の対応する箇所に移動します。

メソッドにカーソルを合わせると、以下の情報がツールチップに表示されます。

  • クラス名とメソッドのシグネチャ
  • パッケージ名
  • プロファイリングメトリクスの値と割合の内訳。

プロファイリングサンプルには、スタックトレースと行番号の情報が含まれています。Separate Flame Graph by ボタンで、フレームをメソッドで区切るか行番号で区切るかを切り替えます。

ツールチップボタンでメソッドや行番号でフレームを区切る

ソースハイライト

Continuous Profiler タブがアクティブな場合、プラグインはソースコードエディターマージンにコードのハイライトを追加します。トップメソッドの場合、エディターマージンにアイコンが表示され、アクティブなプロファイリングデータに基づいてコードに行レベルのハイライトが表示されます。

  • アイコンにカーソルを合わせると、詳細が表示されます。
  • アイコンをクリックして、トップリストのプロファイリングタブを開くか、Datadog のプロファイリングを開きます。
    Datadog のアイコンをクリックすると、タブまたは Datadog でプロファイリングデータを開くことができます

アクティブなプロファイリングタブは、プロジェクトのツリー表示にも影響し、選択したプロファイルのメトリクスでアノテーションされます。

プロファイルタブのプロファイルメトリクスでアノテーションされたプロジェクトツリー

ログナビゲーション

Datadog プラットフォームのログエクスプローラーには、Java または Go ソースファイルから直接アクセスできます。ソースコード内のログステートメントに続く View Logs リンクを探してください。

View Logs リンクを示すソースファイル。

リンクをクリックすると、ロガー名、ログレベル、およびログメッセージに可能な限り一致するクエリでログエクスプローラーが開きます。

View in IDE

View in IntelliJ IDEA 機能は、Datadog プラットフォームから直接 Java ソースファイルへのリンクを提供します (Go ではまだ利用できません)。プラットフォーム上に表示されるスタックトレース (例えば、エラー追跡) のフレームの横にあるボタンを探してください。

View in IntelliJ ボタンを表示している Datadog プラットフォームのスタックトレース。
この機能には 2 つの前提条件があります。(1) ソースコードインテグレーションがサービスに構成されていることと、(2) JetBrains Toolbox が開発マシンにインストールされていることです。

フィードバック

ご意見はディスカッションフォーラムにアクセスするか、team-ide-integration@datadoghq.com までメールをお送りください。

その他の参考資料