Recommended AWS Lambda language runtimes
- .NET Core:
AWS has older runtimes for these languages as well, but AWS has not chosen to support the latest Lambda APIs with those older runtimes. Integration for older runtimes requires a different strategy, but is possible.
Python and Node.js are by far the most popular languages in the Lambda ecosystem. The New Relic Lambda Layers for Node.js and Python include the very latest New Relic agent version, and provide rich instrumentation with minimal configuration, right out of the box.
Similarly, Go uses the New Relic Go agent. We recommend building self-hosting Go lambda functions, because the
latest AWS Lambda APIs are not supported in the AWS
go1.x runtime. Fortunately, this is well supported by the AWS
Lambda SDK for Go. New Relic recommends keeping the agent module up to date. Support is limited for agent versions
older than 3.9.0.
To minimize performance impact, we've taken a different approach with Java and .NET Core. New Relic provides OpenTracing SDKs for these runtimes. This approach requires a bit more code to integrate. For newer runtimes, such as .NET 6, Trace your .NET Lambda functions with New Relic and OpenTelemetry is available.
For complete Lambda instrumentation, some of our agents included in our Lambda layers depend on a language-specific AWS SDK. If an AWS SDK is not used, Lambda data will appear as external service calls in the UI, with minimal detail. In other words, we rely on the AWS SDK to facilitate instrumentation of your function.
For the following services, only the "target" (Lambda function name, SNS topic ARN, DynamoDB table name, etc.) is reported: 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, and STS.
About AWS costs
Enabling serverless monitoring for AWS Lambda may result in Amazon Web Services charges. Our
newrelic-log-ingestion Lambda function, which reports your Lambda data to us, is considered a Third Party Service: AWS charges resulting from your use of it are your responsibility.
If you use the Lambda Extension, you can avoid the CloudWatch Logs ingest charge for the telemetry gathered by New Relic.