既存のLambda関数を最小限の労力で新しい統合監視エクスペリエンスにアップグレードできます。 この移行によりNew Relicの強化されたオブザーバビリティ機能を使用してLambda関数を監視できるようになります。 既存のLambda関数を一括でアップグレードすることも、一度に 1 つずつアップグレードすることもできます。 アップグレード プロセスは非侵入的であり、既存の機能のコード変更は必要ありません。
このアップグレードは、New Relic LambdaレイヤーまたはOpenTelemetry(ADOT)レイヤーのいずれかでインストゥルメントされたLambda関数に適用されます。どちらのレイヤータイプも、同じAPM UIエクスペリエンスを提供します。
ヒント
Lambda Managed Instance(LMI)ユーザー:アップグレードの手順は必要ありません。LMI関数は自動的に検出され、APMモードで実行されるように設定されます — NEW_RELIC_APM_LAMBDA_MODE = trueを設定していなくても同様です。LMIではServerlessモードはサポートされていません;APMモードのみが利用可能であることに注意してください。LMIのセットアップの詳細については、レイヤー化された計装を参照してください。
前提条件
- あなたのLambda関数はすでにNew Relicでインストゥルメントされています。
- Lambda関数は、
python、nodejs、ruby、go、または.NETランタイムで実行されています。 これらのランタイムのサポートされているバージョンの一覧を表示するには、 互換性と要件のドキュメントを参照してください。
インストゥルメンテーション方法
次のいずれかの方法を使用して、既存のLambda関数をアップグレードできます。
ヒント
New Relic 、 AWSインテグレーションを使用してAWSアカウントをNew Relicに統合し、 Lambda関数を自動的に検出して監視することをお勧めします。 これにより、サーバーレス機能に New Relic APM の全機能を活用できるようになります。
New Relic UIを使用して更新する
New Relic UIを使用して既存のLambda関数をアップグレードできます。
既存のLambda関数をNew Relicプラットフォームからアップグレードするには、次の手順に従います。
- one.newrelic.com > All capabilities > Serverless Functions > Lambda関数エンティティを選択します。
- Summary [概要]ページで、Instrument for APMをクリックします。
- 「APM用のLambda関数」ページで、APIキーを入力し、Continueをクリックします。
- デフォルトでは、現在の Lambda エンティティがアップグレード対象として選択されます。他のLambda関数を選択してアップグレードすることもできます。Generate New Relic CLI commandをクリックします。
- コマンドをコピーして、ターミナルまたは AWS ターミナルで実行します。このコマンドは、選択した関数に New Relic Lambda レイヤーをインストールします。
- Continueをクリックしてインストレーションをテストします。このテストでは、New Relic Lambda レイヤーが正しくインストールされているかどうか、および関数が New Relic にデータを送信しているかどうかを確認します。
- テストが成功すると、成功メッセージが表示されます。New Relic APMインターフェースでLambda関数を表示するには、See your data in APMをクリックします。
CLIを使用して更新する
既存のLambdaアラートとダッシュボードを更新する
既存のLambda関数をAPM + Serverless Convergenceにアップグレードした後、アラート条件とダッシュボード ウィジェットでNRQL付与を更新することが重要です。 この新しいアップグレードにより、 Lambdaデータのメトリクス パスが変更されます。 アラートとダッシュボードがこれらの新しいパスを使用し、正確な監視と通知を継続的に提供できるようにするには、クエリを変更する必要があります。これは、 APM + Serverless Convergenceに移行した既存のLambda関数に必要です。
アラートについては、既存の Lambda アラート条件を確認してください。レイヤーから取得したメトリクスを使用するNRQL書き込みを新しいメトリクスで更新します。 アラート条件の更新方法の詳細については、 「集計の更新」を参照してください。
ダッシュボードについては、既存のLambdaダッシュボード ウィジェットを確認してください。 レイヤーから取得したメトリクスを使用するNRQL書き込みを新しいメトリクスで更新します。 ダッシュボード ウィジェットを更新する方法の詳細については、 「ダッシュボードの管理」を参照してください。
データを見つけて使用する
AWS Lambda関数を計装した後、New Relic APMインターフェースでデータを見つけて使用できます。OpenTelemetry(ADOTレイヤー)を介してインストゥルメントされたLambda関数は、New Relic APMエージェントでインストゥルメントされた関数と同じAPM UIエクスペリエンスを表示するようになりました。これには、一貫したSummary [サマリー]ページとapm.*形式の正規化されたメトリクスが含まれます。
New Relic APMインターフェースでLambda関数を表示するには:
- one.newrelic.com > APM & Servicesに移動します。
- 検索条件を
isLambdaFunction = trueに設定します。 - 表示されたリストからLambda関数を選択して、データを表示します。
重要
New Relic APM UIは、APM + Serverless Convergenceアップグレード前にインストゥルメントされたLambda関数の履歴データが表示されません。履歴データを表示するには、APM Summaryページでsee serverless functionsをクリックします。
概要
Summaryページでは、レスポンスタイム、スループット、エラー率など、Lambda関数の最も重要なパフォーマンスデータをすばやく確認できます。このページは、APMでインストゥルメントされたLambda関数とOpenTelemetry(ADOT)でインストゥルメントされたLambda関数の両方で利用できます。
CloudWatchメトリクス
CloudWatch metricsタブには、New Relicのメトリクス合成レイヤーを介してAWS CloudWatchから取得したLambdaパフォーマンスデータが表示されます。チャートには以下が含まれます:
- 呼び出し回数
- 間隔
- スロットル
- エラー数
このタブは、APMでインストゥルメントされたLambda関数とOpenTelemetry(ADOT)でインストゥルメントされたLambda関数の両方で利用できます。
Lambdaメトリクス
Lambda metricsタブには、New Relic Lambdaレイヤーから直接取得されたパフォーマンスデータが表示されます。これは2つのセクションで構成されています:
- コスト:呼び出しとメモリ使用量のチャート。
- パフォーマンス:コールドスタート、タイムアウト、イテレーターの経過時間、および同時実行。
callout.note
Lambda Managed Instance(LMI)モードで実行されているLambda関数の場合、コストセクションにBilled durationチャートは表示されません。LMIの請求は、EC2のコスト、管理手数料、およびvCPUの使用量に基づいています — Lambdaの実行時間ではありません。
トランザクション
Transactionsタブには、期間やスループットなどのパフォーマンスデータを含むLambdaトランザクションがリストされます。AWS Request ID列は、一意のAWSリクエスト識別子によって各Lambda実行を識別し、特定の呼び出しのAPMトランザクショントレースにドリルダウンして、その特定のLambda実行に関する詳細情報を確認できるようにします。
ディストリビューティッド(分散)トレーシング
Distributed tracingタブには、モニター対象のLambda関数を含むディストリビューティッド(分散)トレーシングが表示されます。詳細については、ディストリビューティッド(分散)トレーシングを参照してください。
エラー
Errorsタブには、Lambda関数のエラーと例外が表示されます。エラー率、エラーの割合、またはエラークラスでフィルタリングし、スタックトレースにドリルダウンできます。
ログ
Logsタブには、Lambda関数からの最近のログメッセージが表示されます。詳細については、ログを参照してください。
ロールバック
Lambda関数を以前のサーバーレス監視エクスペリエンスに戻す必要がある場合は、 NEW_RELIC_APM_LAMBDA_MODE環境変数をfalseに設定することで実行できます。