Datadog APMで見るアプリケーションパフォーマンスモニタリングの魅力
クラウド技術が進歩し、広く普及する中で、アプリケーションのシステム構造は変化した。従来のWebアプリケーションは、フロントエンド、サーバーサイド、データベースの三層構造で構成され、モニタリングも各層のプロセスを監視する程度でも十分だった。しかし今はクラウドネイティブアーキテクチャが主流となり、マイクロサービスを採用するアプリケーションも増えた。コンテナを使ってサーバーレス環境を構築し、疎結合されたマイクロサービスがAPI経由でやりとりする。
そんな依存関係が複雑な昨今の分散型アーキテクチャでは、従来のモニタリングツールは根本原因を探り出すのに時間がかかりすぎてしまう。クラウドネイティブ環境でのアプリケーション全体の可観測性(オブザーバビリティ)を高めて、今起きている事象を的確に捉え、問題の対処につなげる「アプリケーションパフォーマンスモニタリング(APM)」が注目されるのはこうした背景があると、Datadog Japanのシニアテクニカルエバンジェリスト、萩野たいじ氏は説明した。
Datadogの「Datadog APM」は、オブザーバビリティの三本柱と呼ばれる「メトリクス」「トレース」「ログ」を網羅可能なSaaSを、シングルプラットフォームで提供する。ハイブリッドクラウドのアーキテクチャ向けに設計されており、難しい設定もなく、手動クエリもないのですぐに使い始めることができると萩野氏。ログは無制限に収集でき、すべてのメトリクスを15秒の粒度で15カ月間保存可能。機械学習で対応が必要なもののみを通知するので、アラート疲労を軽減する効果もあると萩野氏は述べる。
Datadog APMの特長として、萩野氏は次の3つを挙げた。
- 分散環境下での迅速な問題解決
- あらゆるデプロイメントに対して、自信を持ってコードリリースが可能
- プロアクティブなアプリ最適化とコードパフォーマンス
Datadog APMは、アプリケーションの構成機能が分散的に運用管理されていても、ログやトレース、メトリクスを関連付けてオブザーバビリティを獲得できるので、異常が発生している箇所を特定し、必要な対処を判断して速やかに問題を解決できる。また、自動バージョンタグ付けやデプロイメントトラッキングなどの自動化機能のほか、各ビューにてカナリアやA/Bテストなどの状況を追跡できるので、不具合に対する不安なくデプロイを実施できるのも特長だ。さらには、サービスやエンドポイントなどでコードプロファイルを集計し、最もリソースを消費するコードラインなどを検出、インフラのリソースを見ながら最適化する機能もある。
「現代のシステムアーキテクチャに合った形でオブザーバビリティを実現するDatadog APMは、より早く問題を見つけて、より早く解決し、ビジネスを止めないためのツールだ」(萩野氏)
Datadog APMで見るAPMの活用方法
APMは具体的にどのようなことが分かるのだろうか。萩野氏はDatadog APMの画面を紹介しながら解説した。
Datadog APMには多数のビューが用意されており、ダッシュボードはアプリケーションの状況を観測するメインビューとなる。ドラッグ&ドロップのウィジェットで構成されているので、インフラ全体のモニタリング(サーバーの稼働状況、アプリのメモリ割り当て状況など)、アプリの通信状況(サービスがどのくらいのスレッドで、どのくらいの長さで動いているのか、処理でエラーがあったらどのサービスのどの処理のどのあたりで出ているのか)など、必要なメトリクスを好きなレイアウトで配置できる。主要な監視対象のサービス(GCPやAWS、Azureなど)はテンプレートが用意されているので、それをベースにカスタマイズすることも可能だ。
続けて萩野氏はAPMらしさが分かるビューを多数紹介した。
たとえば、サービス同士の依存関係を図示したサービスマップは、データのやりとり状況や現時点のアーキテクチャの構成などが一目で分かる。監視対象サービスをカタログ形式で並べたサービスカタログのビューは、サービスのオーナーシップの管理を簡素化できるほか、インシデントのトリアージがスムーズに進められるメリットがある。デプロイメントエラーやSLOなどのコンテキストでサービスの健全性メトリクスを監視できるサービスページでは、設定した測定値の間隔で状況を把握できるという。また、デプロイメントトラッキングのビューでは、あらゆるデプロイメント手法のパフォーマンスメトリクスを追跡し、デプロイメントの影響を自動測定した結果を表示する。
分散トレースのビューも、APMならではのビューだ。「アプリケーションによっては、サービスやデータが分散しているために、デフォルトでは紐付けが難しい相関関係になっているものもある」と述べた萩野氏は、Datadog APMはタグ付けすることで追跡性を確保し、検索や解析、可視化を実現したと話す。「タグ付けのおかげで、異なるテレメトリタイプのトレースをシームレスに関連付けできるので、根本原因を素早く発見することも可能だ」(萩野氏)
追跡という観点では、アプリケーション内の処理を追跡する継続的プロファイラのビューも役に立つ。「たとえば、あるアプリケーションの任意のプロセスに対して、どのような順番でどんな内容の処理が流れているのか、どんな状態にあるのかといったことを視覚的にトレースできる。これにより、プロダクションコードの全工程のコードパフォーマンスを分析、比較できるので、効率の良い開発が実現する」(萩野氏)
なお、萩野氏がDatadog APMで気に入っている点は、ダッシュボードでアプリケーションの状況を俯瞰的に見ることができるだけでなく、データをクリックしたりビューを切り替えたりすることで、システムやアプリなど関連するテレメトリすべてにアクセスできることだと言う。多様な切り口からデータを検証することで、根本原因が絞り込みやすい。
オブザーバビリティはDevとOps両方が実施するもの
萩野氏は、Datadog APMの魅力を「使いやすさとシームレスな相関性」「エンドツーエンドの分散トレース」「デプロイメントトラッキング」「常時接続コードプロファイリング」「AIを活用したアラート、インサイト、根本原因分析」の5つにまとめた。
AIは、Datadog製品群に共通するインテリジェンス層「Watchdog AI」のことだ。「特にログなどのメトリクスにはノイズが混ざる。問題に直結しないのに問題のように見えて、本当に必要な情報を見つけるのに一苦労する」。そう述べた萩野氏は、Watchdog AIを活用しノイズと重要な情報とを分離することで解析の解像度が高まると説明した。
萩野氏は、DevOpsはOps側だけのものではないと強調する。アプリケーションの改善やセキュリティ、CI/CDのデプロイメント時など、開発側がモニタリングやオブザーバビリティを意識すべきポイントは多々あるからだ。
最後に萩野氏は講演を聴いてAPMの意義やDatadog APMに興味を持った人向けに、Datadog APMのフリートライアル版を紹介した。また、APMについてさらに詳細な活用方法を知りたい人向けに、同社SEが解説するウェビナー「APMによるアプリケーションパフォーマンスの最適化」も公開していると述べた。