AWS Lambda コンソールでメトリクス、ログ、トレースが単一のペインで表示可能になりました

2023.11.19

こんにちは、CX 事業本部 Delivery 部の若槻です。

最近のアップデートにより、AWS Lambda コンソールからメトリクス、ログ、トレースが単一のペインで表示可能になりました。

AWS Lambda のマネジメントコンソールでは、Lambda 関数の実行状況を CloudWatch や X-Ray のコンソールに移動することなく確認できる画面が用意されています。

アップデート前はその画面は次のようにメトリクス、ログ、トレースのがタブで分かれていたため、それらを横断的に確認したい場合にペインを切り替える必要がありました。

Monitoring AWS Lambda errors using Amazon CloudWatch | AWS Cloud Operations & Migrations Blog からの引用

今回のアップデートにより、AWS Lambda コンソールでメトリクス、ログ、トレースが単一のペインで表示可能になり、横断的なデバッグがしやすくなりました。

確認用 Lambda の準備

アップデートを確認するための Lambda 関数を AWS CDK で作成します。X-Ray のトレースを確認できるように関数の設定で有効化しています。

src/handler.ts

import {
  aws_lambda_nodejs,
  aws_lambda,
  Stack,
  StackProps,
} from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class CdkSampleStack extends Stack {
  constructor(scope: Construct, id: string, props: StackProps) {
    super(scope, id, props);

    new aws_lambda_nodejs.NodejsFunction(this, 'SampleFunc', {
      functionName: 'sample-func',
      runtime: aws_lambda.Runtime.NODEJS_20_X,
      architecture: aws_lambda.Architecture.ARM_64,
      tracing: aws_lambda.Tracing.ACTIVE,
      entry: 'src/handler.ts',
    });
  }
}

CDK デプロイで作成した Lambda 関数を実行します。

aws lambda invoke \
  --function-name sample-func \
  outputfile.txt

Monitor タブの確認

作成した関数のコンソールで Monitor タブを確認してみます。縦長なのでスクリーンショットを 3 つに分けています。

まず一番上では CloudWatch metrics の各種メトリクスが確認できます。メトリクスの種類はアップデート前と変わらないようです。

中央では CloudWatch logs のログが確認できます。

そして一番下では X-Ray のトレースが確認できます。

上部にあるフィルターや更新メニューを操作すると、メトリクス、ログおよびトレースが一括で更新されます。

このように 1 つのペイン上で横断的なデバッグがしやすくなったことにより、メトリクスでエラーが記録されているのを見つけたら時間範囲を絞ってログを確認したり、メトリクスで実行時間が長くなっているようならトレースでボトルネックを探したりといったことがスムーズに行えるようになりました。

Alarm recommendation メニューも追加されていた

今回のアップデートにより追加されたのかは正直に言って定かでは無いのですが、Alarm recommendation トグルメニューも追加されていました。

トグルをオンにすると、一部のメトリクスのみが表示されるようになりました。ログおよびトレースメニューも表示されなくなります。

メトリクス名を 1 つマウスオーバーします。ここでは Errors を選択します。

するとフロートメニューで Create alarm という項目があります。クリックします。

別タブで CloudWatch のアラーム作成画面が開き、このまま作成することができます。

また、View code をクリックすると各種 IaC でアラームを作成する場合のコードスニペットが表示されます。個人的には CDK に関しても欲しいところです。

そしてこの IaC のコードスニペットは Lambda コンソール上のフロートメニューからも表示できるようですが、私が試した時にはクリックしても上手く表示されませんでした。ここは改善待ちですね。

ちなみにアラーム作成の推奨の対象ではない Success rate などはフロートメニューに Create alarm の項目が表示されません。推奨の対象および非対象のメトリクスが同じグラフ上にあるため Alarm recommendation トグルを有効にしても残っているようです。

さてこの Alarm recommendation 機能は、次のエントリで紹介されている最近のアップデートにより追加された機能が Lambda コンソールに統合されたもののようですね。

この機能は本来であれば CloudWatch メトリクスのコンソールからでなければ確認できないところ、Lambda に関しては関数のコンソールからも直接確認や作成の開始ができるようになり、開発者が関数の監視をより始めやすくなるきっかけになったり、設定忘れを防いだりするのに役立ちそうです。

おわりに

AWS Lambda コンソールでメトリクス、ログ、トレースが単一のペインで表示可能になったのでご紹介しました。

半分以上は Alarm recommendation の内容になってしまいましたが、いずれにせよ Lambda コンソールの Monitor タブがより使いやすくなったのは間違いないので、これから Lambda を使う方はぜひ活用してみてください。

以上