Skip to content

Commit 4771065

Browse files
authored
Merge pull request #22464 from Sashwatdas123/develop
Lambda Extension v2.4.0
2 parents 3cd9985 + 7dbd0f0 commit 4771065

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
subject: "Lambda-Extension"
3+
releaseDate: '2025-12-02'
4+
version: 2.4.0
5+
---
6+
7+
## Major Release: Rust Rewrite
8+
9+
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.
10+
11+
## New Features
12+
13+
- **APM Mode Support**: Lambda functions can now report directly to New Relic APM platform as application entities
14+
- Enable with `NEW_RELIC_APM_LAMBDA_MODE=true`
15+
- Full support for metrics, spans, errors, events, and transaction traces
16+
- Platform logs converted to APM metrics (`apm.lambda.transaction.*`)
17+
- Enhanced error events for timeouts and faults with distributed tracing context
18+
- See [APM Mode Documentation](https://docs.newrelic.com/docs/serverless-function-monitoring/aws-lambda-monitoring/instrument-lambda-function/upgrade-to-apm-experience/) for details
19+
20+
- **Request-Scoped Processing**: Improved payload correlation and lifecycle management
21+
- **Intelligent Buffer Management**: Handles agent payloads that arrive before request context with automatic cleanup
22+
23+
## Performance Improvements
24+
25+
- **Faster Cold Starts**: Optimized Rust compilation with minimal dependencies and LTO
26+
- **Lower Memory Usage**: Reduced memory footprint with zero-cost abstractions
27+
- **Concurrent Processing**: Parallel processing of logs, platform metrics, and agent telemetry
28+
- **Connection Pooling**: HTTP client connection reuse across invocations
29+
30+
## Security & Reliability
31+
32+
- **Memory Safety**: Rust's ownership system prevents memory leaks and buffer overflows
33+
- **Panic Safety**: Global panic handler prevents Lambda crashes from extension failures
34+
- **Type Safety**: Compile-time guarantees eliminate entire classes of runtime errors
35+
36+
## Technical Changes
37+
38+
- Migrated from Go `v1.23` to Rust 2021 edition
39+
- Built on Tokio async runtime
40+
- AWS SDK v1 for Rust (aws-config 1.8, aws-sdk-secretsmanager 1.88, aws-sdk-ssm 1.93)
41+
- Modular architecture with clean separation of concerns
42+
43+
## Configuration
44+
45+
All existing environment variables remain unchanged for backwards compatibility. Key variables:
46+
- `NEW_RELIC_LICENSE_KEY`: New Relic license key
47+
- `NEW_RELIC_APM_LAMBDA_MODE`: Enable APM mode (default: false)
48+
- `NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS`: Send function logs (default: false)
49+
- `NEW_RELIC_LAMBDA_LOG_LEVEL`: Extension log level supports more granular control with `info`, `debug`, `warn`, `error`, `trace`, `all`
50+
51+
Full configuration details in the [README](https://github.com/newrelic/newrelic-lambda-extension/blob/2a5c012f5082d2f8f056252e87d2d3eecad5479a/README.md).
52+
53+
## Migration Notes
54+
55+
- **Drop-in Replacement**: No code changes required for existing users
56+
- **Environment Variables**: All configuration remains the same
57+
- **Binary Compatibility**: Maintains compatibility with existing New Relic agents
58+
- **Performance**: Expect 20-40% faster cold starts and lower memory usage
59+
60+
---
61+
62+
## [2.3.24] - Go Implementation (Legacy)
63+
64+
Last Go-based version before Rust migration. Maintained for reference and legacy support.

0 commit comments

Comments
 (0)