Major Release: Rust Rewrite
Complete rewrite of the New Relic Lambda Extension from Go (v2.3.24) to Rust for improved performance, memory safety, and reduced cold start times.
New Features
APM Mode Support: Lambda functions can now report directly to New Relic APM platform as application entities
- Enable with
NEW_RELIC_APM_LAMBDA_MODE=true - Full support for metrics, spans, errors, events, and transaction traces
- Platform logs converted to APM metrics (
apm.lambda.transaction.*) - Enhanced error events for timeouts and faults with distributed tracing context
- See APM Mode Documentation for details
- Enable with
Request-Scoped Processing: Improved payload correlation and lifecycle management
Intelligent Buffer Management: Handles agent payloads that arrive before request context with automatic cleanup
Performance Improvements
- Faster Cold Starts: Optimized Rust compilation with minimal dependencies and LTO
- Lower Memory Usage: Reduced memory footprint with zero-cost abstractions
- Concurrent Processing: Parallel processing of logs, platform metrics, and agent telemetry
- Connection Pooling: HTTP client connection reuse across invocations
Security & Reliability
- Memory Safety: Rust's ownership system prevents memory leaks and buffer overflows
- Panic Safety: Global panic handler prevents Lambda crashes from extension failures
- Type Safety: Compile-time guarantees eliminate entire classes of runtime errors
Technical Changes
- Migrated from Go
v1.23to Rust 2021 edition - Built on Tokio async runtime
- AWS SDK v1 for Rust (aws-config 1.8, aws-sdk-secretsmanager 1.88, aws-sdk-ssm 1.93)
- Modular architecture with clean separation of concerns
Configuration
All existing environment variables remain unchanged for backwards compatibility. Key variables:
NEW_RELIC_LICENSE_KEY: New Relic license keyNEW_RELIC_APM_LAMBDA_MODE: Enable APM mode (default: false)NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS: Send function logs (default: false)NEW_RELIC_LAMBDA_LOG_LEVEL: Extension log level supports more granular control withinfo,debug,warn,error,trace,all
Full configuration details in the README.
Migration Notes
- Drop-in Replacement: No code changes required for existing users
- Environment Variables: All configuration remains the same
- Binary Compatibility: Maintains compatibility with existing New Relic agents
- Performance: Expect 20-40% faster cold starts and lower memory usage
[2.3.24] - Go Implementation (Legacy)
Last Go-based version before Rust migration. Maintained for reference and legacy support.
Fixed
- Updated Go std lib version to
1.23.12to resolveCVE-2025-47907 - APM Mode: Resolved license key issue with SM/SSM in APM Mode & resolved log prefix
New feature
- Added Log Level Prefix
DEBUGandINFOto the existing prefix[NR_EXT] - APM Mode: Added tags to APM Mode
- APM Mode: Added Lambda ARN to host for APM connect
- APM Mode: Updated backoff duration for
NEW_RELIC_HOST - APM Mode: Refactor APM error event data
- APM Mode: Added ruby support
Notes
- Added option to build
nodejstest Layers for local testing
Fixed
- Updated AWS SDK and Go Version to address Security Vulnerabilities
[CVE-2020-8911, CVE-2020-8912, CVE-2025-0913, CVE-2025-4673]
Notes
- Added
APMconnect retry logic - Added
godebugto resolve AWS Firewall issue - Added
requestIdextraction from logs forNode.jsruntime
Fixed
- Updated Readme for
--enable-license-key-secret
Notes
- APM Fusion Mode: Limited Preview
Notes
Added logic to check the shutdown of
logserverand prevent handler from sending messages to log channelRemove Circle CI workflow
Fixed
- Add
WaitGroupto resolvelog server panicresulting from multiple log server handlers sending logs to closed channel
Notes
Updates go version to resolve
go/stdlibvulnerabilityUpdates example for AI monitoring in response streaming
Updates local testing
newrelic_lambda_wrappercodeUpdates
ubunturunnerUpdates Extension build to avoid error
/lib64/libc.so.6: versionGLIBC_X.YZnot found.Bump axios from
1.7.7to1.8.2in /examples/sam/containerized-lambda/nodejs-sam-example/hello-worldBump golang.org/x/net from
0.33.0to0.38.0
Notes
Added example for New Relic AI monitoring, along with instrumentation of Lambda functions with response streaming
Updated
SAMexamples to include latest layers and packagesUpdated
RubyLambda instrumentation exampleUpdated Readme to include
NEW_RELIC_COLLECT_TRACE_IDenvironment variable which can be used to addtrace-idto the Lambda logs
Fixed issues
Resolved the issue where Extension inaccurately captured timeout durations for Lambda function timeout errors
Updated sleep time to solve intermittent issue with unit test
TestClientSendRetry
New feature
- Add
trace.idto Lambda logs when the Lambda environment variableNEW_RELIC_COLLECT_TRACE_IDis set totrue
Notes
- Add publish script for Extension only Lambda Layer, intended for local testing of Extension
Notes
- Records AWS Lambda
platform.faultlog event type, which captures when the AWS Lambda platform shutdown is triggered. - Updates Extension's dependency version github-go from
v44.1.0tov68.0.0. - Updates Extension's dependency version golang.org/x/net from
0.30.0to0.33.0.