APMを導入する5つのポイント

はじめに


みなさんはAPM(Application performance monitoring)を使っていますでしょうか。
昨今のアプリケーションはContainerやCI/CDを活かした高頻度なデプロイが可能になっています。
しかしながら、アプリケーションのデプロイによるパフォーマンスの変化を評価せず、インフラ監視のみに留まっているサービスも多いのではないでしょうか。
本記事ではAPMツール選定におけるポイント5つをご紹介します。

APM導入ポイント


1. アプリケーション計測

APMで何よりも実現したいのはアプリケーションのパフォーマンス計測です。
外部APIの応答速度やDBのクエリ実行時間、エラー関数の呼び出し回数などが代表的なメトリクスとして挙げられます。
APMを提供するSaaSではこれらのメトリクスを自動で取得できるものもありますが、どのメトリクスが重要であるかはアプリケーションのコンテキストによって異なる点には注意が必要です。
APMを導入する際にはサービスにクリティカルなメトリクスから監視を導入するのがおすすめです。

2. CI/CDとの統合

アプリケーションパフォーマンス変化の要因の一つとして考えられるのがデプロイによる更新の影響です。
デプロイ時の情報を取得することは一見無意味に見えるかもしれませんが、他のメトリクスと組み合わせ、関係性を把握できるとデプロイ起因のトラブルシューティングが容易になるでしょう。

3. ログ

コンテナやサーバレス環境ではストレージが揮発するためログストリームとしてリアルタイム転送するのが一般的です。
APMを提供するSaaSでは基本的にログストリーム機能が備わっているため、収集後のログ可視性やクエリ、時系列分析機能が差別化要因となります。

4. サーバレスアプリケーション監視

AWS Lambdaのようなサーバレスアプリケーションには実行時間がミリ秒単位の短命なアプリケーションも存在します。この様なアプリケーションは上述の方法では監視が困難です。
APMを提供するSaaSではサーバレスアプリケーション専用のインテグレーションが用意されているものもあるため、SaaS選定の基準となります。

5. マイクロサービスアーキテクチャ監視

アプリケーションを機能ごとの小さなコンポーネントに分割するマイクロサービスアーキテクチャでは疎結合の反面、サービス間の連携を追うのが難しく、監視を複雑化する要因となります。
マイクロサービスアーキテクチャにおける監視の仕組みには分散トレーシング(Distributed Tracing)を使うと良いでしょう。
分散トレーシングとはサービスへのリクエストに対しIDを付与しコンポーネント間の連携をトレースする手法であり、アプリケーション全体の可視性を得るのに役立ちます。

まとめ


いかがでしたでしょうか。 APMでは環境やアプリケーションのコンテキストを把握して適切な監視を行うことが重要です。
このブログを読んでくださった皆様のAPM検討の一助になれば幸いです。

弊社ではアプリケーション監視・運用サービスを提供しております。
ご興味のある方はこちらの窓口までご連絡ください。

www.jtp.co.jp

www.jtp.co.jp

執筆: 福江 正伍, フェロー