問題
AWS Lambdaのサーバーレスモニタリングを有効にしようとしていますが、問題またはエラーが発生しています。
解決
イネーブルメント手順 のすべてを完了しないことに関連して、2つの一般的な問題があります。
- CloudWatch metrics UIページにデータが表示されない。これは、 AWSの統合ステップ が完了していないことを意味します。
- Troubleshooting カテゴリのUIページにデータが表示されない。 Distributed tracing 、 Errors 、 Invocations UI タブにデータが表示されない場合、 APM エージェントのインスツルメンテーションステップ が完了していないことを意味します。
このような基本的なイネーブルメントの問題以外にも、問題を引き起こす可能性のある問題がいくつかあります。
CloudWatch エラー「HTTP エラー 401: 権限がありません。」これは、API キーが正しくないことが原因です。 Configure AWS enable ステップ の
--nr-api-key
引数は、 、REST API キーとは異なります。カスタムメトリクスが不足しています。Lambdaのモニタリングは、 カスタムメトリクス と互換性がありません。 カスタムアトリビュート を使用して、メタデータを追加してください。
Invocations missing.呼び出しの内訳の詳細を表示するには、 Lambda instrumentation step の一部として分散トレースを有効にする必要があります。分散トレーシングは、スパンの詳細をinvocation detailsペインに表示するために必要です。
インストール、統合、インスツルメンテーションの手順が正しく完了し、機能がCloudWatchにログを送信していますが、UIに特定の依存関係のトレース(または任意のトレース)が表示されていません。これは、レイヤーのマージの順番(Lambdaレイヤーを使用している場合)や、インポートの順番(手動でインスツルメンテーションを行っている場合)に起因している可能性があります。
- レイヤーを使ってインスツルメンテーションを行っている場合:関数の設定で、New Relic のレイヤーが他のレイヤーの前にマージされていることを確認してください(ただし、関数が webpack を使用している場合は、New Relic のレイヤーが webpack のレイヤーの後にマージされている必要があります)。
- Node.js 関数を手動で計測する場合は、 ロギングが有効になっていること、および監視する必要のある依存関係をインポートする前に、関数がnewrelicをインポートしていることを確認してください。
- Node.js 関数で ES モジュールを使用している場合は、環境変数
NEW_RELIC_USE_ESM
がtrue
に設定されていることを確認してください。さらに、ES モジュールを使用する場合はコールバックベースの関数がサポートされないため、関数内で非同期動作を処理するには async/await または Promise を使用していることを確認してください。
これらの解決策が役に立たない場合は、当社の サポートチーム にご連絡ください。以下の情報は、サポート技術者に相談する際の参考になります。
- 以前、Lambda関数がUIに登場したことはありますか?あるとしたら、その関数の名前は何ですか?
- Lambda関数のデータがUIに表示されている場合、具体的にはどのようなデータが表示されているのでしょうか。
- どのAPM言語エージェントを使って機能を測定していますか?