Skip to content

Releases: newrelic/newrelic-lambda-extension

v2.4.6

10 Mar 09:51
c6d8a5a

Choose a tag to compare

What's New

New Features

  • Added NEW_RELIC_LAMBDA_EXTENSION_PROXY environment variable for proxy configuration
  • Added NEW_RELIC_EXTENSION_SEND_LOGS environment variable to control log sending
  • Added NEW_RELIC_EXTENSION_LOGS_ENABLED environment variable for extension logging
  • Added release testing workflow for multiple runtimes
  • Added prepare release automation script
  • Enhanced Java test layer for Docker image publishing

Bug Fixes

  • Fixed JSON logs with "level": "Information" being incorrectly classified as errors
  • Improved request_id handling and tracking
  • Fixed random number generation in TraceIDGenerator

Improvements

  • Refactored request state management for better performance
  • Enhanced test coverage with new unit tests
  • Updated test layer deployment to include ca-central-1 region
  • Optimized agent buffer handling and telemetry processing

Dependency Updates

  • Bumped bytes from 1.10.1 to 1.11.1
  • Bumped time from 0.3.46 to 0.3.47

Contributors

  • Chodavarapu Naga Viswanadha Avinash
  • Sashwatdas123
  • Ashish Kumar Singh
  • dependabot[bot]

v2.4.5

29 Jan 16:12
c6d8a5a

Choose a tag to compare

What's New:

Java runtime support improvements - automatic detection and proper mode routing
Enhanced log processing reliability - ensures all logs are properly tagged before sending

Bug Fixes:
Fixed Java agent version reporting
Fixed log metadata stamping for pre-invoke logs
Fixed unnecessary warning messages in APM mode

Performance:
Reduced resource usage by optimizing channel creation
Improved log processing efficiency

v2.4.4

23 Jan 12:42
1c43e44

Choose a tag to compare

🚀 Features & Enhancements

  • Runtime Detection: Enhance runtime detection logic for improved agent compatibility
  • Configuration: Add support for NEW_RELIC_EXTENSION_SEND_PLATFORM_LOGS
  • Metadata: Add tags to entity for extension version and agent version
  • Telemetry: Implement global fallback ARN handling across telemetry components
  • Documentation: Update README for Rust extension
  • Logging: Change secondary log level to DEBUG
  • Validation: Update code for additional checks

📦 Maintenance

  • Bump version to 2.4.4

❤️ Contributors

v2.4.3

09 Jan 12:59
1c43e44

Choose a tag to compare

  • feat: implement pre-invoke log buffering with metadata validation and fallback ARN support
  • fix: remove license key exposure from CloudWatch logs
  • feat: remove debug log for buffering in pre-invoke buffer
  • feat: Added fallback code for aws-arn

v2.4.2

08 Jan 06:56
1c43e44

Choose a tag to compare

  • feat: Improve panic handling in main function to ensure Lambda continue
  • fix: EU endpoint detection for license keys fetched from SSM/Secrets Manager
  • feat: add new telemetry buffer for APM mode and shutdown logs
  • feat: Enhance versioning support and logging in APM mode
  • fix: updated platform report line to send as json instead of compressed

v2.4.1

17 Dec 09:54
2a5c012

Choose a tag to compare

  • fix: Resolved an issue where requests were occasionally not instrumented in APM mode.

  • fix: Enabled automatic NEW_RELIC_LICENSE_KEY fallback.

  • feat: Removed unnecessary trace logging for skipped function and extension logs.

  • feat: Updated parsing logic to scan the first 50 characters instead of a 100-byte slice. Ensuring safe handling of multi-byte UTF-8 characters (like emojis) without truncation errors.

v2.4.0

02 Dec 09:53
2a5c012

Choose a tag to compare

What's Changed

[2.4.0] - 2025-12-02

🎉 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
  • 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 1.23 to 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 key
  • NEW_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 with info, 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.

v2.3.24

29 Aug 09:38
180564d

Choose a tag to compare

What's Changed

Full Changelog: v2.3.23...v2.3.24

v2.3.23

15 Jul 09:26
45eb888

Choose a tag to compare

What's Changed

Full Changelog: v2.3.22...v2.3.23

v2.3.22

10 Jul 09:30
4688896

Choose a tag to compare

What's Changed

Full Changelog: v2.3.21...v2.3.22