AWS Lambdaのサーバーレス監視 を有効にする前に、 要件 を満たしていることを確認し、 AWSの使用料 が発生することを学んでください。
推奨されるAWS Lambda言語のランタイム
- Node.js:
nodejs12.x
、nodejs14.x
、nodejs16.x
- Python:
python3.7
、python3.8
、python3.9
- Go:
provided
、provided.al2
- Java:
java8.al2
、java11
- .NET Core:
dotnetcore3.1
AWSはこれらの言語の古いランタイムも持っていますが、AWSは 、最新のLambda APIをこれらの古いランタイムでサポートすることを選択していません。古いランタイムへの統合には別の戦略が必要ですが、可能です。
PythonとNode.jsは、Lambdaエコシステムで群を抜いて最も人気のある言語です。 NodeおよびPython用のNewRelicLambdaレイヤーには、最新のNew Relic Agentバージョンが含まれており、箱から出してすぐに、最小限の構成で豊富なインストルメンテーションを提供します。
同様に、GoはNewRelicGoエージェントを使用します。最新のAWSLambdaAPIはAWS go1.x
ランタイムでサポートされていないため、セルフホスティングのGoラムダ関数をビルドすることをお勧めします。幸い、これはAWS Lambda SDKforGoによって十分にサポートされています。 New Relicは、エージェントモジュールを最新の状態に保つことをお勧めします。 3.9.0より古いバージョンのエージェントのサポートは制限されています。
パフォーマンスへの影響を最小限に抑えるために、Java と .NET Core では異なるアプローチを採用しています。New Relic はこれらのランタイム用に OpenTelemetry SDK を提供しています。このアプローチでは、統合するために少しだけコードが必要になります。
完全なLambdaインスツルメンテーションのために、Lambdaレイヤーに含まれる当社のエージェントの一部は、言語固有の AWS SDK に依存しています。AWS SDKが使用されていない場合、LambdaのデータはUI上で外部サービスの呼び出しとして表示され、最小限の詳細が表示されます。つまり、お客様の機能のインストゥルメンテーションを促進するためにAWS SDKに依存しています。
以下のサービスについては、"対象の" (Lambda関数名、SNSトピックARN、DynamoDBテーブル名など)のみが報告されます。Autoscaling、Athena、Batch、Cloud9、CodeBuild、DynamoDB、Greengrass、IoT、Kinesis(Streams、Firehose、Analytics、Video)、Lambda、Lex、Machine Learning、MQ、Redshift、Rekognition、S3、SES、SimpleDB、SNS、SQS、Storage Gateway、STS。
AWSのコストについて
AWS Lambdaのサーバーレスモニタリングを有効にすると、AmazonWebServicesの料金が発生する場合があります。 Lambdaデータをレポートするnewrelic-log-ingestion
Lambda関数は、サードパーティサービスと見なされます。その使用に起因するAWSの料金は、お客様の責任となります。
Lambda Extension を使用すると、New Relic が収集した遠隔測定の CloudWatch Logs インジェスト料金を回避することができます。