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.