Version majeure : Réécriture en Rust
Réécriture complète de l’extension New Relic Lambda de Go (v2.3.24 à Rust pour améliorer les performances, la sécurité de la mémoire et réduire les temps de démarrage à froid.
Nouvelle fonctionnalité
Prise en charge du mode APM: les fonctions Lambda peuvent désormais signaler directement à la plateforme New Relic APM en tant qu’entités d’application
- Activer avec
NEW_RELIC_APM_LAMBDA_MODE=true - Prise en charge complète des métriques, des spans, des erreurs, des événements et des traces de transaction
- Logs de plateforme convertis en métriques APM (
apm.lambda.transaction.*) - Événements d’erreur améliorés pour les délais d’attente et les pannes avec le contexte de tracing distribué
- Consultez la Documentation du mode APM pour plus de détails
- Activer avec
Traitement lié à la requête: amélioration de la corrélation des charges utiles et de la gestion du cycle de vie
Gestion intelligente des buffers: gère les charges utiles de l’agent qui arrivent avant le contexte de la requête avec un nettoyage automatique
Améliorations des performances
- Démarrages à froid plus rapides: compilation Rust optimisée avec un minimum de dépendances et LTO
- Utilisation de la mémoire réduite: empreinte mémoire réduite avec des abstractions sans frais
- Traitement simultané: traitement parallèle des logs, des métriques de plateforme et de la télémétrie de l’agent
- Pool de connexions: réutilisation des connexions client HTTP entre les appels
Sécurité et fiabilité
- Sécurité de la mémoire: le système de propriété de Rust empêche les fuites de mémoire et les dépassements de mémoire tampon
- Sécurité en cas de panique: le gestionnaire de panique global empêche les plantages de Lambda dus à des défaillances d’extension
- Sécurité des types: les garanties au moment de la compilation éliminent des classes entières d’erreurs d’exécution
Modifications techniques
- Migration de Go
v1.23vers l’édition Rust 2021 - Basé sur le runtime asynchrone Tokio
- AWS SDK v1 pour Rust (aws-config 1.8, aws-sdk-secretsmanager 1.88, aws-sdk-ssm 1.93)
- Architecture modulaire avec une séparation claire des préoccupations
Configuration
Toutes les variables d’environnement existantes restent inchangées pour la compatibilité descendante. Variables clés :
NEW_RELIC_LICENSE_KEY: Clé de licence New RelicNEW_RELIC_APM_LAMBDA_MODE: Activer le mode APM (par défaut : false)NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS: Envoyer les logs de fonction (par défaut : false)NEW_RELIC_LAMBDA_LOG_LEVEL: Le niveau de logs de l’extension prend en charge un contrôle plus granulaire avecinfo,debug,warn,error,trace,all
Tous les détails de configuration dans le README.
Notes de migration
- Remplacement direct: aucune modification de code requise pour les utilisateurs existants
- Variables d’environnement: toute la configuration reste la même
- Compatibilité binaire: maintient la compatibilité avec les agents New Relic existants
- Performances: attendez-vous à des démarrages à froid 20 à 40 % plus rapides et à une utilisation de la mémoire réduite
[2.3.24] - Implémentation Go (Legacy)
Dernière version basée sur Go avant la migration vers Rust. Maintenu à titre de référence et pour la prise en charge des versions héritées.
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