New Relic Lambdaモニタリングスタック
Lambdaのモニタリングには、いくつかの重要な部分があります。
関数
関数は理解しておくべきコードです。いつエラーが発生するか、なぜ遅いか、どれくらいの頻度で呼び出されるかを把握する必要があるためです。
New RelicエージェントまたはSDK
これは、New Relicが関数が記述する言語に提供するライブラリです。コードの実際のモニタリングは、このタスクで行います。これは、関数呼び出しの期間を測定し、発生したエラーをメモし,ソースイベントの詳細と関数の応答を記録します。これを行うには、Lambda呼び出しハンドラー関数をラップする必要があります。
わずかな手間をかけるだけで、呼び出しをより意味深いセグメントに分割し、関数のインタラクションを他の関数やサービスと結合して、サーバーレスアプリケーションの全体図を提供できます。
New Relic Lambda拡張機能
このサイドカープロセスは、Lambda実行環境内でコードとともに実行されます。エージェントが収集するテレメトリーを強化し、New Relicのバックエンドにバッチで送信します。また、関数のログをNew Relicに送信することもできます。
この拡張機能は、AWS Lambdaライフサイクルと緊密に統合され、New Relicにテレメトリが到着するまでの時間と、インストゥルメンテーションが機能の遅延とスループットに与える影響の両方を最小限に抑えることができる小型のアプリケーションです。
詳しくは、Lambda機能拡張をご覧ください。
New Relicのバックエンド
New Relicサービスはテレメトリを受信してそれをAwsLambdaInvocation
、AwsLambdaInvocationError
、Span
、およびカスタムイベントに処理し、そのすべてを当社のテレメトリデータベースNRDBに保存します。
New Relic OneのLambda UI
Lambdaの関数は、従来のサービスとは大きく異なります。そのため、管理エクスペリエンスも従来のAPMのそれとは異なります。New Relic One内では、Lambdaの関数はカスタムUIを備えており、関数に関する最も重要な情報をすばやく表示し、ログ機能やディストリビューティッド(分散)トレーシング機能と密接に統合します。
NRDBとNRQLによりサポートされているため、関数のカスタムダッシュボードとアラートを作成することもできます。
レガシーのCloudWatchパス
より旧式のインテグレーションでは、テレメトリは若干異なる方法で送信されます。それを拡張子に渡す代わりに、エージェントはログラインとしてCloudWatchに書き込みます。
ログサブスクリプションフィルタを追加して、関数ログをaws-log-ingestion
Lambda関数にパイプ接続することで、そのテレメトリログラインを復元し、より意味深いプラットフォームテレメトリとともにNew Relicに転送できます。
ただし、このアプローチには大きな欠点があることがわかっています。AWS CloudWatchサービスは非常に高価です。無料ティアを超えると、ログ取り込みは、テレメトリを取り込むためにNew Relicに支払う料金を簡単にしのいでしまいます。さらに、CloudWatchはタイムリーさに関しては優秀とは言えません。CloudWatchのログラインは少なくとも数秒かかり、高負荷のケースでは、ログ収集関数に達するまでに数分間かかることがあります。これにより、アプリケーションパフォーマンスを迅速かつ明確に把握しなくてはならない負荷の高い時間に透明性を低下させ、アプリケーション像が把握しにくくなります。
その他のヘルプ
さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:
- Explorers Hubでは、コミュニティからのサポートを受けたり、ディスカッションに参加したりすることができます。
- 当社サイトで答えを見つけて、サポートポータルの使用方法を確認してください。
- Linux、Windows、およびmacOS向けトラブルシューティングツールであるNew Relic Diagnosticsを実行してください。
- New Relicの とandドキュメント をご確認ください。