Amazon Lambda
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

Amazon Lambda

Crawler Crawler
このページは、Amazon CloudWatch からの AWS Lambda メトリクスの取り込みに特化された文書となっています。最新の Datadog サーバーレスモニタリングのドキュメントは、こちらをご覧ください。

概要

Amazon Lambda は、イベントに応答してコードを実行し、そのコードが必要とするコンピューティングリソースを自動的に管理するコンピューティングサービスです。

このインテグレーションを有効にすると、CloudWatch メトリクスが収集されるようになります。このページでは、Lambda 関数のカスタムメトリクス、ログ、トレースを設定する方法についても説明します。

セットアップ

インストール

Amazon Web Services インテグレーションをまだセットアップしていない場合は、最初にセットアップします。

メトリクスの収集

AWS Lambda メトリクス

  1. AWS インテグレーションタイルのメトリクス収集で、Lambda をオンにします。

  2. Amazon Lambda のメトリクスを収集するには、次のアクセス許可を Datadog IAM ポリシーに追加します。Lambda ポリシーの詳細については、AWS Web サイトのガイドを参照してください。

    AWS アクセス許可説明
    lambda:List*Lambda 関数、メタデータ、およびタグを一覧表示します。
    tag:GetResourcesLambda 関数に適用されたカスタムタグを取得します。
  3. Datadog - AWS Lambda インテグレーションをインストールします。

完了したら、Datadog Serverless ビューにすべての Lambda 関数が表示されます。このページは、サーバーレスアプリケーションを実行している AWS Lambda 関数からのメトリクス、トレース、ログを 1 つのビューにまとめて表示します。この機能の詳細については、Datadog Serverless のドキュメントを参照してください。

収集データ

メトリクス

aws.lambda.duration
(gauge)
Measures the average elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.maximum
(gauge)
Measures the maximum elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.minimum
(gauge)
Measures the minimum elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.sum
(gauge)
Measures the total execution time of the lambda function executing.
Shown as millisecond
aws.lambda.duration.p50
(gauge)
Measures the p50 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p80
(gauge)
Measures the p80 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p95
(gauge)
Measures the p95 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p99
(gauge)
Measures the p99 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p99.9
(gauge)
Measures the p99.9 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.timeout
(gauge)
Measures the amount of allowed execution time for the function before the Lambda runtime stops it.
Shown as second
aws.lambda.memorysize
(gauge)
Measures the amount of allocated memory available to the function during execution.
Shown as mebibyte
aws.lambda.errors
(count)
Measures the number of invocations that failed due to errors in the function (response code 4XX).
Shown as error
aws.lambda.invocations
(count)
Measures the number of times a function is invoked in response to an event or invocation API call.
Shown as invocation
aws.lambda.throttles
(count)
Measures the number of Lambda function invocation attempts that were throttled due to invocation rates exceeding the customer's concurrent limits (error code 429). Failed invocations may trigger a retry attempt that succeeds.
Shown as throttle
aws.lambda.iterator_age
(gauge)
Measures the age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.minimum
(gauge)
Measures the minimum age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.maximum
(gauge)
Measures the maximum age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.sum
(gauge)
Measures the sum of the ages of the last record for each batch of records processed
Shown as millisecond
aws.lambda.dead_letter_errors
(count)
Measures the sum of times Lambda is unable to write the failed event payload to your configured Dead Letter Queues.
Shown as error
aws.lambda.concurrent_executions
(gauge)
Measures the average of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.minimum
(gauge)
Measures the minimum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.maximum
(gauge)
Measures the maximum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.sum
(gauge)
Measures the sum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global
(gauge)
Measures the average of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.minimum
(gauge)
Measures the minimum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.maximum
(gauge)
Measures the maximum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.sum
(gauge)
Measures the sum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.unreserved_concurrent_executions
(gauge)
Measures the sum of the concurrency of the functions that don't have a custom concurrency limit specified.
Shown as execution
aws.lambda.provisioned_concurrent_executions
(gauge)
Measures the average number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrent_executions.minimum
(gauge)
Measures the minimum number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrent_executions.maximum
(gauge)
Measures the maximum number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrency_invocations
(count)
Measures the number of invocations that are run on provisioned concurrency
Shown as invocation
aws.lambda.provisioned_concurrency_spillover_invocations
(count)
Measures the number of invocations that are run on non-provisioned concurrency when all provisioned concurrency is in use
Shown as invocation
aws.lambda.provisioned_concurrency_utilization
(gauge)
Measures the average fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.provisioned_concurrency_utilization.minimum
(gauge)
Measures the minimum fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.provisioned_concurrency_utilization.maximum
(gauge)
Measures the maximum fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent

AWS から取得される各メトリクスには、関数名やセキュリティグループなど、AWS コンソールに表示されるタグと同じタグが割り当てられます。

カスタムメトリクスには関数名だけがタグ付けされます。

イベント

AWS Lambda インテグレーションには、イベントは含まれません。

サービスのチェック

AWS Lambda インテグレーションには、サービスのチェック機能は含まれません。

サーバーレスモニタリング

リアルタイムの拡張 Lambda メトリクス

Datadog では、Node.js、Python、Ruby ランタイム用のリアルタイム Lambda ランタイムメトリクスを追加設定なしで生成できます。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

拡張リアルタイム Lambda メトリクスの有効化

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

ログの収集

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

トレースの収集

Datadog では、Datadog APM または AWS X-Ray のいずれかを使用した AWS Lambda 関数の分散トレースをサポートします。いずれかのクライアントライブラリセットを使用してトレースを生成できます。Datadog APM は、ホスト、コンテナ、サーバーレス機能で実行されているアプリケーションからのトレースを自動的に接続します。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

Datadog APM を使用したトレース

Datadog Node.jsPythonRuby トレースライブラリは、AWS Lambda の分散トレースをサポートし、より多くのランタイムが間もなく登場します。アプリケーションにトレースを追加する最も簡単な方法は、依存関係として Datadog トレースライブラリを含む Datadog Lambda ライブラリ を使用することです。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

AWS Lambda とホスト全体のトレース

該当する場合、Datadog は AWS X-Ray トレースをネイティブ Datadog APM トレースとマージします。これにより、AWS Lambda、コンテナ、オンプレミスホスト、マネージドサービスなど、インフラストラクチャーの境界を越えるリクエストの全体像がトレースに表示されることになります。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

タグを使用したインフラストラクチャーの整理

Lambda 関数に適用されたタグは、自動的に新しいディメンションになり、このディメンションでトレースを分類できます。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

サーバーレスインテグレーション

以下の Lambda 関数インテグレーションは、サーバーレスアプリケーションを監視するためのさらなる機能を提供します。

AWS Step Functions

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

Amazon EFS for Lambda

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

Lambda@Edge

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

カスタムメトリクス

Datadog Lambda ライブラリをインストールし、カスタムメトリクスを収集して送信します。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

ディストリビューションメトリクスへのアップグレード

ディストリビューションメトリクスでは、送信時に指定する代わりにグラフ化または照会するときに、集計を選択します。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

カスタムメトリクスのタグ付け

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

同期カスタムメトリクスと非同期カスタムメトリクス

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

非同期カスタムメトリクスの有効化

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

カスタムメトリクスのコード例

関数コードで、Lambda レイヤーから必要なメソッドをインポートし、関数ハンドラーのラッパーを追加します。詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

VPC での実行

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

サードパーティライブラリの使用

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

[非推奨] CloudWatch ログの使用

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

Datadog Lambda レイヤー

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

Datadog Lambda レイヤーのインストールと使用

詳細は、最新のサーバーレスモニタリングドキュメントでご確認ください。

トラブルシューティング

ご不明な点は、Datadog サポートまでお問い合せください。

その他の参考資料