これは、New RelicのAWS Lambdaモニタリング を有効にするための1つのステップです。
機能例 [#features]
それぞれの基本的な例は機能的には同じで、以下のようなNew Relicの機能を説明しています。
New Relic Lambda Extensionを介して、呼び出しのテレメトリをNew Relicに送信する。
呼び出しイベントにカスタム属性を追加
テレメトリーにカスタムイベントを追加する
New Relic Lambda レイヤを自分の関数で使用する
AWS Secrets Manager にアクセスして New Relic を取得するための権限を関数に追加する
New Relic がテレメトリーをキャプチャできるようにハンドラーをラップするためのランタイム固有のテクニック
CloudWatchでファンクションログの保持を管理する
オプションとして、Lambda Extensionを介して機能ログをNew Relicのロギング製品に転送する。
例 [#examples]
私たちの例は、New Relic Lambda Extension と共に、この GitHub リポジトリ で公開されています。New Relic がインストルメントできる Lambda ランタイムごとに用意されています。
ヒント
例題をテストしていると、テレメトリーがすぐに送信されないことがあることに気づくかもしれません。AWS Lambdaのライフサイクルでは、エージェントとLambda Extensionの実行に一定の制約があります。さらに、貴重なプラットフォームの遠隔測定は、呼び出しが完了した後にのみ利用できます。New Relic Extension は、一定期間テレメトリをバッファリングし、次の呼び出し時(またはシャットダウン時)に一括して New Relic に配信することで、全体のパフォーマンスとタイムリーなテレメトリ配信の必要性とのバランスを取っています。
本番機能では、これが非常にうまく機能しています。手動でのテストでは、7秒間待ってから関数を再度呼び出し、以前にバッファリングされたテレメトリを配信する機会を与える必要がしばしばあります。
例題に掲載しているテンプレートは常に最新のものを提供するように努めていますが、お使いの地域やランタイムに対応した最新のNew Relic Lambdaレイヤーは、 layers site でいつでも見つけることができます。このサイトではAPIも提供しており、ご自身のテンプレートを最新に保つためにCI/CDパイプラインでご利用いただけます。
ディストリビューティッド(分散)トレーシング
基本的な例に加えて、分散トレースを自明ではないサーバーレスアプリケーションに統合する例を、 分散トレースの例 で提供しています。この例では、Lambda関数を呼び出す可能性のある2つの人気サービスであるSQSとSNSについて、Node、Python、Javaの関数を使った手動によるトレース伝搬を説明しています。