Lançamento importante: Reescrita para Rust
Reescrita completa da extensão Lambda do New Relic de Go (v2.3.24) para Rust para melhor desempenho, segurança de memória e tempos de inicialização a frio reduzidos.
Novo recurso
Suporte ao modoAPM : função do Lambda agora pode reportar diretamente à plataforma New Relic APM como aplicativo entidade
- Habilitar com
NEW_RELIC_APM_LAMBDA_MODE=true - Suporte completo para métricas, spans, erros, eventos e trace da transação
- Logs da plataforma convertidos para métrica APM (
apm.lambda.transaction.*) - Evento de erro aprimorado para tempos limite e falhas com contexto distributed tracing
- Consulte a documentação do Modo APM para obter detalhes.
- Habilitar com
Processamento com escopo definido por solicitação: Correlação de carga útil e gerenciamento de ciclo de vida aprimorados.
Gerenciamento Inteligente de Buffer: Lida com a carga do agente que chega antes do contexto da solicitação com limpeza automática.
Melhorias de desempenho
- Inicializações a frio mais rápidas: compilação otimizada Rust com dependência mínima e LTO.
- Uso reduzido: Pegada reduzida com abstrações de custo zero
- Processamento Simultâneo: Processamento paralelo de logs, plataforma métrica e telemetria de agente
- Agrupamento de conexões: reutilização de conexões de clientes HTTP entre invocações.
Segurança e confiabilidade
- Segurança da memória: O sistema de propriedade do Rust impede vazamentos de memória e estouros de buffer.
- Segurança contra pânico: o manipulador de pânico global impede que o Lambda falhe devido a falhas de extensão.
- Segurança de tipos: garantias em tempo de compilação eliminam classes inteiras de erros em tempo de execução.
Alterações técnicas
- Migrado de Go
v1.23para Rust 2021 - Construído sobre o ambiente de execução assíncrono Tokio.
- AWS SDK v1 para Rust (AWS-config 1.8, AWS-sdk-secretsmanager 1.88, AWS-sdk-ssm 1.93)
- Arquitetura modular com clara separação de responsabilidades.
Configuração
Todas as variáveis de ambiente existentes permanecem inalteradas para manter a compatibilidade com versões anteriores. Variáveis-chave:
NEW_RELIC_LICENSE_KEY: New Relic chave de licençaNEW_RELIC_APM_LAMBDA_MODE: Ativar o modo APM (padrão: false)NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS: Enviar logs de função (padrão: false)NEW_RELIC_LAMBDA_LOG_LEVELO nível de log da extensão oferece suporte a um controle mais granular cominfo,debug,warn,error,trace,all
Detalhes completos da configuração no arquivo README.
Notas sobre Migração
- Substituição direta: nenhuma alteração de código é necessária para usuários existentes.
- Variáveis de ambiente: todas as configurações permanecem as mesmas
- Compatibilidade binária: Mantém a compatibilidade com os agentes New Relic existentes.
- desempenho: espere partidas a frio 20-40% mais rápidas e menor uso de memória
[2.3.24] - Implementação Go (legado)
Última versão baseada em Go antes da migração para Rust. Mantido para fins de referência e suporte a legados.
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