New features and improvements
- Removed linking metadata blob
@NewFieldsfrom log4j-2.11 module 2917 - Added support for cluster mode in the
lettuce-6.0andlettuce-6.5modules 2922 - Added new instrumentation modules for Vert.x web and core 5.x 2920
- Added new Java Server Faces instrumentation modules to replace legacy point cuts 2944
- Added a new Portlet module to replace legacy point cuts 2953
- Migrated shadow plugin from
com.github.johnrengelmantocom.gradleup2945 - Added weave class instrumentation replacement for
HandlerMethodInvoker3PointCutpoint cut 2967 - Removed
@NewFieldannotations from thejdbc-genericmodule 2963 - Removed HandlerMethodInvokerPointCut point cut 2977
- Removed SpringPointCut point cut 2990
- Added new
http.request.methodattribute to all external HTTP spans 29853010 - Added support for decorating JFR data with APM labels (as configured in the java agent) 3007
- [Hybrid Agent] Decorated OpenTelemetry dimensional metrics with
otlp_resource_attributesfrom connect response 2956
Fixes
- Fixed MDC leak issue in the
apache-log4j-2.11 module2926 - Removed
java.rminamespaced exceptions 2932 - Used Jakarta servlet exception attribute in the
wildfly-27module 2929 - Serverless mode now sent payload to the console if file pipe wasn't written 2975
- Changed
ForceRestartExceptionlog toINFO2989 - Added a new build time
Patcherinstance to remove problem enum values from the shadowed jspecify library@NullMarkedclass 2982 - Cleaned up segment instances for Netty Reactor HTTP calls 3004
- Fixed transaction linking metadata during some async operations 3006
Update to latest version
To identify which version of the Java agent you're currently using, run java -jar newrelic.jar -v. Your Java agent version will be printed to your console.
Then, to update to the latest Java agent version:
- Back up the entire Java agent root directory to another location. Rename that directory to
NewRelic_Agent#.#.#, where#.#.#is the agent version number. - Download the agent..
- Unzip the new agent download file, then copy
newrelic-api.jarandnewrelic.jarinto the original Java agent root directory. - Compare your old
newrelic.ymlwith the newly downloadednewrelic.ymlfrom the zip, and update the file if needed. - Restart your Java dispatcher.
If you experience issues after the Java agent update, restore from the backed-up New Relic agent directory.
Update agent config differences
We add new settings to newrelic.yml as we release new versions of the agent. You can use diff or another diffing utility to see what's changed, and add the new config settings to your old file. Make sure not to overwrite any customizations you've made to the file, such as your license key, app name, or changes to default settings.
For example, if you diff the default newrelic.yml files for Java agent versions 7.10.0 and 7.11.0, the results printed to the console will be like:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...In this example, these lines were added to the default newrelic.yml in Java agent version 7.11.0. If you're moving to 7.11.0 or higher, you should add these new lines to your original newrelic.yml.
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Novos recursos e melhorias
Adicionar a configuração log_level_denylist ao yaml padrão 2830
Módulo JMX do Solr 9 2821
Nova estratégia centralizada de contagem de tokens para capturar contagens de tokens de respostas de LLM. 2837
Suporte para capturar operações em lote JDBC; especificamente os métodos addBatch() e executeBatch(). 2840
Módulo de instrumentação XML RPC para substituir point cut legado 2841
Adicionar uma nova configuração específica do JFR
jfr.use_display_name. Se definido como true, o agente definirá o nome do host JFR para o valor na configuraçãoprocess_host.display_name. O padrão é falso para preservar o comportamento antigo.
Se jfr.use_display_name for true, mas a configuração display_name estiver vazia, o JfrService reverterá para o comportamento antigo para o nome do host.
common: &default_settings jfr: use_display_name: trueRemover a criação desnecessária de segmento no módulo java.xmlrpc 2853
Atualizar o módulo aws-bedrock-runtime-2.20 com uma nova estratégia de contagem de token para cada um dos modelos. 2845
Novo algoritmo de ofuscação de chave de licença 2864
Suporte para Micronaut Http Clients versões 3.5.0+ 2834
Suporte para Kafka Clients 4.0.0 e superior 2896
Atualização da dependência interna Log4j Core de 2.17.1 para 2.25.4 2833
Suporte ao AWS DAX a partir da versão 2.0.0 até a mais recente 2873
Adicionar instrumentação para clientes de completion e embedding do Spring AI para versões 1.0.0 e superiores. Isso adiciona novos módulos de instrumentação:
spring-ai-client-chat-1.0.0spring-ai-model-1.0.0Core Tracing - Descartar SpanEvents e reassociar SpanLinks descartados 2881
Substituições de pointcut
Suporte ao BlockingHttpClient do Micronaut 2860
Adicionar suporte para o Model Context Protocol de modelo de IA 1.0.0 até a versão mais recente. 2880
Correções
Corrige a instrumentação de coroutines. As correções incluem:
- Melhor rastreamento do comportamento assíncrono por ter instrumentado lacunas que foram encontradas onde a execução pode saltar para outra thread.
- Melhor nomenclatura de Coroutines e Continuações. A nomenclatura existente era muito genérica. A nova nomenclatura identifica de acordo com se é iniciado via runBlocking, async, withContext ou lançamento.
- Removidos alguns métodos utilitários que não eram mais utilizados 2802
Corrige o número excessivo de tokens assíncronos não expirados quando o Micronaut é instrumentado. 2792
Resolução do IllegalAccessError do Mule 4.9 2859
Corrigir um registro incorreto das métricas Instrumentadas e Mantidas para o Core Tracing, pois elas estavam sendo originalmente registradas como uma métrica de tempo. 2881
Atualizar para a versão mais recente
Para identificar qual versão do agente Java você está usando atualmente, execute java -jar newrelic.jar -v. A versão do seu agente Java será impressa em seu console.
Em seguida, para atualizar para a versão mais recente do agente Java:
- Faça backup de todo o diretório raiz do agente Java em outro local. Renomeie esse diretório para
NewRelic_Agent#.#.#, onde#.#.#é o número da versão do agente. - Baixe o agente..
- Descompacte o novo arquivo de download do agente e copie
newrelic-api.jarenewrelic.jarno diretório raiz original do agente Java. - Compare seu
newrelic.ymlantigo com onewrelic.ymlrecém-baixado do zip e atualize o arquivo, se necessário. - Reinicie seu despachante Java.
Se você tiver problemas após a atualização do agente Java, restaure a partir do diretório do agente New Relic do qual foi feito backup.
Atualizar diferenças de configuração do agente
Adicionamos novas configurações a newrelic.yml à medida que lançamos novas versões do agente. Você pode usar diff ou outro utilitário de comparação para ver o que mudou e adicionar as novas configurações ao seu arquivo antigo. Certifique-se de não substituir nenhuma personalização feita no arquivo, como chave de licença, nome do aplicativo ou alterações nas configurações padrão.
Por exemplo, se você diff os arquivos newrelic.yml padrão para as versões 7.10.0 e 7.11.0 do agente Java, os resultados impressos no console serão como:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Neste exemplo, essas linhas foram adicionadas ao newrelic.yml padrão no agente Java versão 7.11.0. Se você estiver migrando para 7.11.0 ou superior, adicione essas novas linhas ao seu newrelic.yml original.
Declaração de apoio:
- New Relic recomenda que você atualize o agente regularmente para garantir que esteja obtendo os benefícios mais recentes de recursos e desempenho. Além disso, versões mais antigas não terão mais suporte quando chegarem ao fim de sua vida útil.
Novos recursos e melhorias
- Adiciona suporte ao Java 26 2734
- Adiciona o modo Serverless para o monitoramento do AWS Lambda com o agente Java 2609 2615 2625 2633 2640 2641 2647 2673 2716 2721 2735 2723 2740 2769 2782 2794 2797 2796 2806
- Adiciona nova configuração
application_logging.forwarding.log_level_denylist2764 - Implementa URIs de ingestão de evento/métrica com reconhecimento de região 2749 2790
- Adiciona suporte para associar logs à entidade correspondente quando
enable_auto_app_namingétrue2627 - Adicionar instrumentação de
opentelemetry-sdk-extension-autoconfigure-1.59.0para OpenTelemetry 1.59.0+ 2786 - Adiciona suporte para associar o amostrador adaptativo à entidade correspondente quando
enable_auto_app_namingétrue2805 - Adiciona métricas de suportabilidade para cada entidade criada quando
enable_auto_app_namingétrue2808 - Implementa a configuração do proxy de desvio de metadados da nuvem 2791
- Adiciona suporte para várias versões do Caffeine no agente 2807
- Adiciona suporte para planos de execução que utilizam matrizes SQL 2815
- Adiciona 'Queue' genérico como um tipo de transporte 2820
- Adiciona suporte para chamadas de cliente Http do Reactor Netty 2817
Correções
- Corrige um caso limite em que cargas malformadas causavam um NPE ao acessar o campo
sampledna carga do NR 2762 - Expira tokens quando uma assinatura reativa é cancelada 2798
- Adiciona lógica para remover manualmente quaisquer threads mortas do cache
TheadTrackerpara evitar um vazamento de memória 2811 - Resolve um deadlock entre a thread de coleta e a thread de encerramento da JVM 2539
Atualizar para a versão mais recente
Para identificar qual versão do agente Java você está usando atualmente, execute java -jar newrelic.jar -v. A versão do seu agente Java será impressa em seu console.
Em seguida, para atualizar para a versão mais recente do agente Java:
- Faça backup de todo o diretório raiz do agente Java em outro local. Renomeie esse diretório para
NewRelic_Agent#.#.#, onde#.#.#é o número da versão do agente. - Baixe o agente..
- Descompacte o novo arquivo de download do agente e copie
newrelic-api.jarenewrelic.jarno diretório raiz original do agente Java. - Compare seu
newrelic.ymlantigo com onewrelic.ymlrecém-baixado do zip e atualize o arquivo, se necessário. - Reinicie seu despachante Java.
Se você tiver problemas após a atualização do agente Java, restaure a partir do diretório do agente New Relic do qual foi feito backup.
Atualizar diferenças de configuração do agente
Adicionamos novas configurações a newrelic.yml à medida que lançamos novas versões do agente. Você pode usar diff ou outro utilitário de comparação para ver o que mudou e adicionar as novas configurações ao seu arquivo antigo. Certifique-se de não substituir nenhuma personalização feita no arquivo, como chave de licença, nome do aplicativo ou alterações nas configurações padrão.
Por exemplo, se você diff os arquivos newrelic.yml padrão para as versões 7.10.0 e 7.11.0 do agente Java, os resultados impressos no console serão como:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Neste exemplo, essas linhas foram adicionadas ao newrelic.yml padrão no agente Java versão 7.11.0. Se você estiver migrando para 7.11.0 ou superior, adicione essas novas linhas ao seu newrelic.yml original.
Declaração de apoio:
- New Relic recomenda que você atualize o agente regularmente para garantir que esteja obtendo os benefícios mais recentes de recursos e desempenho. Além disso, versões mais antigas não terão mais suporte quando chegarem ao fim de sua vida útil.
Novos recursos e melhorias
- O Agente Híbrido Java: oferecendo uma experiência do "melhor dos dois mundos" ao combinar a visibilidade profunda da New Relic com a compatibilidade com a API OpenTelemetry. Esta versão inclui suporte abrangente para as APIs de Tracing, Métricas e Logs do OpenTelemetry, bem como instrumentação de bibliotecas independentes e frameworks nativos. Principais melhorias, como Span Links e Events on Spans, estão agora disponíveis, garantindo interoperabilidade perfeita em ambientes de modo misto.
- Suporte à API OpenTelemetry do Agente Híbrido por @jasonjkeller em 2711
- Melhorias em ignorar corrotinas por @dhilpipre em 2726
- Adicionar ação de metadados do agente - @mvicknr em 2732 2745
Correções
- Correção da propagação de rastreamento quebrada com cabeçalhos w3c por @jasonjkeller em 2299
- Correção da configuração de preferência multihost @jtduffy em 2720
- Corrigido problema onde suspend ignores não estava sendo lido, por @dhilpipre em 2663
Atualizar para a versão mais recente
Para identificar qual versão do agente Java você está usando atualmente, execute java -jar newrelic.jar -v. A versão do seu agente Java será impressa em seu console.
Em seguida, para atualizar para a versão mais recente do agente Java:
- Faça backup de todo o diretório raiz do agente Java em outro local. Renomeie esse diretório para
NewRelic_Agent#.#.#, onde#.#.#é o número da versão do agente. - Baixe o agente..
- Descompacte o novo arquivo de download do agente e copie
newrelic-api.jarenewrelic.jarno diretório raiz original do agente Java. - Compare seu
newrelic.ymlantigo com onewrelic.ymlrecém-baixado do zip e atualize o arquivo, se necessário. - Reinicie seu despachante Java.
Se você tiver problemas após a atualização do agente Java, restaure a partir do diretório do agente New Relic do qual foi feito backup.
Atualizar diferenças de configuração do agente
Adicionamos novas configurações a newrelic.yml à medida que lançamos novas versões do agente. Você pode usar diff ou outro utilitário de comparação para ver o que mudou e adicionar as novas configurações ao seu arquivo antigo. Certifique-se de não substituir nenhuma personalização feita no arquivo, como chave de licença, nome do aplicativo ou alterações nas configurações padrão.
Por exemplo, se você diff os arquivos newrelic.yml padrão para as versões 7.10.0 e 7.11.0 do agente Java, os resultados impressos no console serão como:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Neste exemplo, essas linhas foram adicionadas ao newrelic.yml padrão no agente Java versão 7.11.0. Se você estiver migrando para 7.11.0 ou superior, adicione essas novas linhas ao seu newrelic.yml original.
Declaração de apoio:
- New Relic recomenda que você atualize o agente regularmente para garantir que esteja obtendo os benefícios mais recentes de recursos e desempenho. Além disso, versões mais antigas não terão mais suporte quando chegarem ao fim de sua vida útil.
Novos recursos e melhorias
- Adicionar configuração para excluir jars temporários de agente obsoletos na inicialização por @jtduffy em 2676
- Adicionar a opção "inclusão" para complementar a configuração de exclusão para instrumentar seletivamente aplicativos @jtduffy em 2638
- Para usar este recurso, defina a variável de ambiente
NEW_RELIC_STARTUP_JAVA_ARTIFACT_INCLUDESou a propriedade do sistemanewrelic.config.startup_java_artifact_includes. Especifique os artefatos que devem ser instrumentados como uma lista separada por vírgulas.
- Para usar este recurso, defina a variável de ambiente
Correções
- Resolva IllegalAccessError movendo a classe wrapper de S3AsyncClient_Instrumentation por @jtduffy em 2503
- Corrigir versão de instrumentação rotulada incorretamente em eventos de log em logback-classic-1.5.20 por @jasonjkeller em 2594
- Mensagem de log corrigida para valor máximo de atributo por @jeffalder em 2680
- Prioridades do amostrador de Taxa de Rastreamento corrigidas por @jtduffy em 2583
Remoções
- Remove os módulos jdbc-inet-* obsoletos por @obenkenobi em 2572
- Remove a biblioteca obsoleta java.completable-future-jdk8. instrumentação por @obenkonobi em 2562
- Remove a instrumentação de encapsulamento aws por @obenkenobi em 2567
- Remove o módulo jdbc-sybase-6 por @obenkenobi em 2614
- Remove a instrumentação play 2.3 por @obenkenobi em 2568
- Remove thrift-0.8 obsoleto módulo por @obenkenobi em 2569
- Remove os módulos solr 4.0 e 5.0 obsoletos por @obenkenobi em 2570
- Remove o módulo obsoleto grails-1.3 por @obenkonobi em 2573
- Remove o módulo obsoleto hibernate-3.3 por @obenkenobi em 2574
- Remove a API de injeção de rodapé obsoleta por @sharvath-newrelic em 2620
- Remove pointcuts Struts 1 obsoletos por @obenkenobi em 2561
- Remove o módulo obsoleto glassfish-3 por @sharvath-newrelic em 2575
- Remove os módulos rabbit-amqp obsoletos 2.5.0, 2.4.1, 1.7.2 por @obenkenobi em 2571
- Remove a função de marcador de implantação por @jtduffy em 2589
Atualizar para a versão mais recente
Para identificar qual versão do agente Java você está usando atualmente, execute java -jar newrelic.jar -v. A versão do seu agente Java será impressa em seu console.
Em seguida, para atualizar para a versão mais recente do agente Java:
- Faça backup de todo o diretório raiz do agente Java em outro local. Renomeie esse diretório para
NewRelic_Agent#.#.#, onde#.#.#é o número da versão do agente. - Baixe o agente..
- Descompacte o novo arquivo de download do agente e copie
newrelic-api.jarenewrelic.jarno diretório raiz original do agente Java. - Compare seu
newrelic.ymlantigo com onewrelic.ymlrecém-baixado do zip e atualize o arquivo, se necessário. - Reinicie seu despachante Java.
Se você tiver problemas após a atualização do agente Java, restaure a partir do diretório do agente New Relic do qual foi feito backup.
Atualizar diferenças de configuração do agente
Adicionamos novas configurações a newrelic.yml à medida que lançamos novas versões do agente. Você pode usar diff ou outro utilitário de comparação para ver o que mudou e adicionar as novas configurações ao seu arquivo antigo. Certifique-se de não substituir nenhuma personalização feita no arquivo, como chave de licença, nome do aplicativo ou alterações nas configurações padrão.
Por exemplo, se você diff os arquivos newrelic.yml padrão para as versões 7.10.0 e 7.11.0 do agente Java, os resultados impressos no console serão como:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Neste exemplo, essas linhas foram adicionadas ao newrelic.yml padrão no agente Java versão 7.11.0. Se você estiver migrando para 7.11.0 ou superior, adicione essas novas linhas ao seu newrelic.yml original.
Declaração de apoio:
- New Relic recomenda que você atualize o agente regularmente para garantir que esteja obtendo os benefícios mais recentes de recursos e desempenho. Além disso, versões mais antigas não terão mais suporte quando chegarem ao fim de sua vida útil.
Fixes
- Fixes Kotlin Coroutine error about third party implementation of
CancellableContinuation
Deprecations
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1spring-3.0.0thrift-0.8solr-4.0.0solr-5.0.0jdbc-inet-merliajdbc-inet-oranxograils-1.3rabbit-amqp-1.7.2rabbit-amqp-2.4.1rabbit-amqp-2.5.0rabbit-amqp-2.7.0glassfish-3hibernate-3.3hibernate-3.5jdbc-jtds
Update to latest version
To identify which version of the Java agent you're currently using, run java -jar newrelic.jar -v. Your Java agent version will be printed to your console.
Then, to update to the latest Java agent version:
- Back up the entire Java agent root directory to another location. Rename that directory to
NewRelic_Agent#.#.#, where#.#.#is the agent version number. - Download the agent.
- Unzip the new agent download file, then copy
newrelic-api.jarandnewrelic.jarinto the original Java agent root directory. - Compare your old
newrelic.ymlwith the newly downloadednewrelic.ymlfrom the zip, and update the file if needed. - Restart your Java dispatcher.
If you experience issues after the Java agent update, restore from the backed-up New Relic agent directory.
Update agent config differences
We add new settings to newrelic.yml as we release new versions of the agent. You can use diff or another diffing utility to see what's changed, and add the new config settings to your old file. Make sure not to overwrite any customizations you've made to the file, such as your license key, app name, or changes to default settings.
For example, if you diff the default newrelic.yml files for Java agent versions 7.10.0 and 7.11.0, the results printed to the console will be like:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...In this example, these lines were added to the default newrelic.yml in Java agent version 7.11.0. If you're moving to 7.11.0 or higher, you should add these new lines to your original newrelic.yml.
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.