Skip to content

Releases: newrelic/newrelic-lambda-extension

v2.5.2

11 May 06:25
a31ba42

Choose a tag to compare

Bug Fixes

  • missing and duplicate function logs (#41)

v2.5.1

07 May 14:10
a31ba42

Choose a tag to compare

Bug Fixes

  • handle empty string as run_id placeholder in send_apm_telemetry (#39)
  • prevent panic on multibyte UTF-8 characters in extract_log_level (#36)

Other Changes

  • bump version to 2.5.1 (#40)

v2.5.0

10 Apr 14:24
eb23d8e

Choose a tag to compare

Features

  • add support for sql_trace_data in APM telemetry
  • improved shutdown logging duration metrics
  • add support for SSL_CERT_FILE

Bug Fixes

  • add changes to include error_event_data

Other Changes

  • update aws-lc-rs and aws-lc-sys versions in Cargo.lock
  • bump quinn-proto from 0.11.13 to 0.11.14

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.