皆さまこんにちは、IIM サポートチームです。
このブログでは、Dynatrace の最新機能や便利な使い方を、気軽に読めてすぐに役立つ形でご紹介しています。
今回は「Live Debugger」を取り上げます。
Live Debugger は、その名のとおり「動作中のアプリケーションを止めることなく、コードの状態を確認できる」Dynatrace の革新的なデバッグ機能です。
本記事では、Live Debugger の概要(利用条件、基本操作、確認方法、便利ポイント、活用シーン)をご紹介いたします。
Live Debugger は、Dynatrace が提供するリアルタイムのアプリケーションデバッグ機能です。
アプリケーションのコード変更や設定変更を行わずに、実行中のサービスの内部動作をその場で可視化できるのが最大の特徴です。
従来のログ調査やトレース調査では「事象が発生した後に確認する」というアプローチが中心でしたが、Live Debugger を使うことで、アプリを止めることなく以下の情報をリアルタイムで取得できます。
スタックトレース
ローカル変数の値
実行時コンテキスト
プロセス情報 …など
特徴をまとめると…
「本番環境そのままの状況で、実行中コードの中身を安全に“のぞき見”できるツール」
特に、再現が難しい、 発生条件が複雑などの問題の解析に抜群の威力を発揮します。
Live Debugger の利用には以下の環境が必要です。
Dynatrace SaaS 環境
DPS ライセンス(Code Monitoring 含む)
OneAgent バージョン1.309以降
Java / Node.js Live-Debugger 機能 が有効
対応モード:Full-Stack / Infra / Discovery(コンテナコードモジュール注入時)
対応言語:Java、Node.js
Dynatrace コンソールで以下を操作します:
[アプリ] > Manage > [設定]
[Collect and capture] > [General monitoring settings] > [OneAgent features]
Filter by に"live-debbuger"を入力しフィルタ
表示された Java Live-Debugger、Node.js Live-Debugger の[Enabled]をON
対象プロセスを再起動
Live Debugger は「Observability for Developers」に含まれているため、
対象スコープ(Environment 全体 / プロセスグループ / Kubernetes namespace・cluster)で ON にします。
Dynatrace コンソールで以下を操作します(Environment の場合):
[アプリ] > Manage > [設定]
[Collect and capture] > [Observability for Developers ] > [Enable Observability for Developers ]
[Enable Observability For Developers]をON
管理単位を細かく分けられるため、本番環境の一部だけ開発者がLive Debuggingするという運用も可能です。
ActiveGate バージョン1.311以降があれば、Kubernetes などでの利用がより簡単になります。
ネットワーク構成も簡素化し、トラフィック量も最適化されます。
なお、ActiveGate バージョン1.311以降では、Live Debugger がデフォルトで有効化されています。
Live Debugger の基本的な利用ステップは以下の通りです。
[アプリ] > Application Observability > [ライブ デバッガー]より画面を開く
デバッグ対象のサービスやインスタンスをスコープ指定
Non-breaking Breakpoint を設定
ブレークポイント通過時にスナップショットを自動取得
取得した変数値やスタックトレースを確認
この一連の操作は、Dynatrace UI だけでなく、VS Code や JetBrains IDE から直接実行することも可能です。
Live Debugger は、本番環境を停止することなく、コードレベルの情報を取得できるデバッグ機能です。
これにより、従来のデバッグ手法では対応が難しかった場面でも、迅速かつ安全な原因究明が可能になります。
Live Debugger では非破壊型(Non-breaking)のブレークポイントを使用するため、アプリケーションの処理を停止させることなく、実行時の状態を確認できます。
そのため、本番環境でのみ発生する障害の調査や、影響を最小限に抑えた原因分析に適しています。
特定の入力条件や処理順序でのみ発生する不具合や、負荷やタイミングに依存する問題は、検証環境での再現が困難です。
Live Debugger ではスナップショットをリアルタイムで取得できるため、「再現 → 修正 → デプロイ」を待たずに、その場で状況を把握できます。
一時的なデバッグログ追加やコード修正、再デプロイといった作業は不要です。
これにより、開発者・運用者の負荷を軽減し、緊急時でもスピーディな対応が可能になります。
マイクロサービス環境では、複数サービス間の連携によって問題が発生するケースも少なくありません。
Live Debugger は、分散したサービスの挙動をコードレベルで確認できるため、サービス間連携時の不具合調査にも有効です。
ソースコードが外部にコピーされることはなく、取得したデータは Dynatrace 環境および開発者のローカルや IDE 内で完結します。
そのため、セキュリティ要件が厳しい本番環境でも安心して利用できます。
すぐに修正・再デプロイできない状況でも、Live Debugger を使えば実行中のアプリケーションの状態を直接確認できます。
これは、CI/CD が一時的に停止している場合や、即時リリースが許されない環境での緊急原因究明に特に有効です。
アプリ停止なし
再デプロイなし
本番そのままの状態でコード状況を確認
IDE から直接ブレークポイント設定
セキュアでスケーラブル
Kubernetes やマイクロサービスに最適
「本番でしか起きない問題に、もっと早く・安全に対応したい」
そのようなニーズをお持ちの方に、Live Debugger は非常に有効な選択肢と言えるでしょう。