AWS Lambda が CloudWatch Application Signals によるアプリケーションパフォーマンスモニタリング (APM) をサポートするようになったので、早速検証してみました。
アップデート概要
CloudWatch Application SignalsでLambdaがサポートされるようになった
アプリケーションの状態を一元的に把握でき、パフォーマンス異常の根本原因を突き止めやすくなる
サポートされているランタイムは以下の通りです。
LambdaとApplication Signalsを連携させる
以下の手順に記載があるように、レイヤーを追加、環境変数を追加、ポリシーを追加が必要です。
ただし、Lambda関数の「モニタリングおよび監視ツール」の設定により、これらが自動で行われます。
Lambda関数の、「設定」→「モニタリングおよび運用ツール」→「その他の監視ツール」の「編集」を押下します。

「CloudWatch Application SIgnals and AWS X-Ray」の両方にチェックを入れて保存します。


レイヤー、環境変数、ポリシーを確認してみます。
AWSOpenTelemetryDistroPython レイヤーが追加されています。

環境変数 AWS_LAMBDA_EXEC_WRAPPER が追加されています。

ポリシー CloudWatchLambdaApplicationSignalsExecutionRolePolicy が追加されています。

Application Signalsを確認する
しばらくすると、Application SignalsでLambdaが確認できるようになります。

SLOも要件に合うように設定しておきましょう。

サービスの依存関係やレイテンシ―などを見ることができます。



サービスマップでは、アプリケーションのトポロジを可視化でき、依存関係全体の異常をすばやく見つけることができます。

まとめ
手軽にAPMを実装でき、監視運用ができるのは非常にありがたいサービスだと思います。
クラウドの普及により、オブザーバビリティの重要性が提唱されている今、ぜひ活用していきたいサービスです。