AWS Lambda モニタリングのトラブルシューティング
関数コードのサイズが大きすぎる、または webpack の互換性などの一般的な問題については、追加の
トラブルシューティングガイドを確認してください。このガイドは、一般的なテレメトリー収集の問題のトラブルシューティングを支援します。
基本を理解する
このガイドの説明をよりよく理解するために、まずキーコンセプトをよく理解してください。物事の仕組みをより深く理解することで、不足している部分を特定し、考えられる原因を絞り込むことができます。
Forwarder の代わりに Datadog Lambda 拡張機能を使用する
現在もデータ収集に Datadog Forwarder Lambda 関数を使用している場合は、代わりに Datadog Lambda 拡張機能の導入をご検討ください。Forwarder Lambda の技術的な制限により、多くの既知の問題が発生するため、Lambda 拡張機能に移行することで自動的に問題を解決することができます。
Lambda が拡張機能を使用しているかどうかわからない場合は、Lambda 関数のレイヤー構成を確認し、Lambda レイヤーに Datadog-Extension
という名前があるかどうかを確認します。
Lambda が Forwarder を使用しているかどうかわからない場合は、Lambda 関数のロググループのサブスクリプションフィルターを確認し、そのロググループが Datadog Forwarder
などの名前の Lambda によってサブスクライブされているかどうか確認してください。
拡張機能を使用する利点については、こちらの比較ガイドを、一般的な移行手順については、こちらの移行ガイドをご覧ください。まずは開発環境またはステージング環境で変更をテストしてください。
Forwarder を引き続き使用する場合は、こちらの Forwarder トラブルシューティングガイドを参照してください。
Datadog Lambda 拡張機能はデフォルトで ログ コレクションを有効にします。Forwarder から拡張機能へ移行する場合は、ログ サブスクリプションを削除してください。削除しないと、重複したログが表示されることがあります。
構成が最新で期待通りのものであることを確認する
過去に Datadog のモニタリング用に構成したことのあるアプリケーションに関する最新の説明については、インストールガイドを確認してください。
Lambda 関数に加えられた実際の変更が予想通りであることを確認するには、別のテスト関数を設定し、Datadog CLI または Custom の説明に従って構成してみてください。実際の Lambda 関数で行われた変更点 (ハンドラー、レイヤー、環境変数、タグなど) を、テスト用関数と比較してみてください。
デバッグログの収集
Lambda 関数で環境変数 DD_LOG_LEVEL
を debug
に設定し、冗長なデバッグログを有効にしてください。ログからのデータ転送に Datadog Forwarder Lambda 関数を使用している場合は、Forwarder Lambda 関数上でも DD_LOG_LEVEL
を debug
に設定します。
トレースに問題がある場合、環境変数 DD_TRACE_DEBUG
を true
に設定すると、Datadog Tracer から追加のデバッグログが出力されます。
不必要なコストを避けるため、十分なデータを収集した後にデバッグログを無効にしてください。
AWS インテグレーションの確認
Datadog は、AWS とのインテグレーション (オプション) を通じて、AWS からメトリクスとリソースタグを収集することができます。CloudWatch や Lambda のリソースタグから特定のメトリクスが欠落している場合は、AWS とのインテグレーションが適切に構成されていることを確認します。
タグが構成されていることを確認する
Datadog 標準の service
、env
、version
タグを収集したデータに適用できない場合は、Lambda 関数に環境変数 DD_SERVICE
、DD_ENV
、DD_VERSION
が構成されているかを確認してください。カスタムタグの場合は、DD_TAGS
が構成されていることを確認します。
AWS Lambda のリソースタグで収集したデータをリッチ化したい場合は、AWS 向け Datadog インテグレーションが適切に構成されていることを確認します。
サポート
簡単な質問は、Datadog Slack コミュニティの #serverless チャンネルに投稿してください。
上記のトラブルシューティングの手順をすべて実行し、Datadog サポートからの支援を希望する場合は、次のいずれかの方法を使用して、関連する構成情報をサポートに送信します。
Zendesk チケットを作成します。
Datadog CLI の最新バージョンをダウンロードします。
npm install -g @datadog/datadog-ci
プロジェクトディレクトリの root から Serverless Flare コマンドを使用して、Lambda 関数のデータを自動的に収集し、Datadog サポートに送信します。
datadog-ci lambda flare -f <function_arn> -e <email> -c <case_id> --with-logs
Zendesk チケットを作成し、以下の情報をチケットに記載してください。
- Lambda 関数の基本情報: ARN、ランタイム、ハンドラー、レイヤー、環境変数、タグ。多くの関数で同じ問題がある場合は、まず 1 つの関数に焦点を当てます。
- Lambda 関数が Datadog Forwarder を使用してログを介してデータを送信するように構成されている場合、Forwarder Lambda 関数に関する基本情報を含めます。また、Lambda 関数のロググループに構成されたサブスクリプションフィルターを提供します。
- Serverless Framework や AWS CDK など、行ったインストール方法。
- Datadog CLI や Custom など、試行した代替インストール方法。
- 自作の Lambda 関数からのデバッグログ。
- Datadog Forwarder Lambda 関数からのデバッグログ (使用されている場合)。
- プロジェクトのコンフィギュレーションファイル (編集されたシークレットを含む):
serverless.yaml
、package.json
、package-lock.json
、yarn.lock
、 tsconfig.json
、webpack.config.json
など。
その他の参考資料