Datadog APMで見るAPMの活用方法
APMは具体的にどのようなことが分かるのだろうか。萩野氏はDatadog APMの画面を紹介しながら解説した。
Datadog APMには多数のビューが用意されており、ダッシュボードはアプリケーションの状況を観測するメインビューとなる。ドラッグ&ドロップのウィジェットで構成されているので、インフラ全体のモニタリング(サーバーの稼働状況、アプリのメモリ割り当て状況など)、アプリの通信状況(サービスがどのくらいのスレッドで、どのくらいの長さで動いているのか、処理でエラーがあったらどのサービスのどの処理のどのあたりで出ているのか)など、必要なメトリクスを好きなレイアウトで配置できる。主要な監視対象のサービス(GCPやAWS、Azureなど)はテンプレートが用意されているので、それをベースにカスタマイズすることも可能だ。
続けて萩野氏はAPMらしさが分かるビューを多数紹介した。
たとえば、サービス同士の依存関係を図示したサービスマップは、データのやりとり状況や現時点のアーキテクチャの構成などが一目で分かる。監視対象サービスをカタログ形式で並べたサービスカタログのビューは、サービスのオーナーシップの管理を簡素化できるほか、インシデントのトリアージがスムーズに進められるメリットがある。デプロイメントエラーやSLOなどのコンテキストでサービスの健全性メトリクスを監視できるサービスページでは、設定した測定値の間隔で状況を把握できるという。また、デプロイメントトラッキングのビューでは、あらゆるデプロイメント手法のパフォーマンスメトリクスを追跡し、デプロイメントの影響を自動測定した結果を表示する。
分散トレースのビューも、APMならではのビューだ。「アプリケーションによっては、サービスやデータが分散しているために、デフォルトでは紐付けが難しい相関関係になっているものもある」と述べた萩野氏は、Datadog APMはタグ付けすることで追跡性を確保し、検索や解析、可視化を実現したと話す。「タグ付けのおかげで、異なるテレメトリタイプのトレースをシームレスに関連付けできるので、根本原因を素早く発見することも可能だ」(萩野氏)
追跡という観点では、アプリケーション内の処理を追跡する継続的プロファイラのビューも役に立つ。「たとえば、あるアプリケーションの任意のプロセスに対して、どのような順番でどんな内容の処理が流れているのか、どんな状態にあるのかといったことを視覚的にトレースできる。これにより、プロダクションコードの全工程のコードパフォーマンスを分析、比較できるので、効率の良い開発が実現する」(萩野氏)
なお、萩野氏がDatadog APMで気に入っている点は、ダッシュボードでアプリケーションの状況を俯瞰的に見ることができるだけでなく、データをクリックしたりビューを切り替えたりすることで、システムやアプリなど関連するテレメトリすべてにアクセスできることだと言う。多様な切り口からデータを検証することで、根本原因が絞り込みやすい。