• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

PHP agent release notesRSS

August 8, 2019
PHP agent v9.0.2.242

Novos recursos na 9.0

Trace da transação detalhado agora disponível quando o distributed tracing está ativado.

Esta versão inclui uma refatoração do armazenamento de segmentos para permitir que o agente classifique e aplique diferentes priorizações de segmentos que são usados para traces da transação em vez de distributed tracing. A versão 8.4 do agente PHP incluiu suporte limitado para distributed tracing, o que resultou na perda de traces da transação detalhados para serviços PHP individuais quando o distributed tracing estava habilitado.

A refatoração nesta nova versão permite que o agente envie os segmentos (spans) que se deseja visualizar para um distributed trace que inclui serviços PHP. Ele também fornece separadamente o máximo de detalhes de segmento possível ao explorar o trace da transação para um serviço PHP individual.

Notas:

  • As instruções para habilitar o distributed tracing não mudaram com esta versão.
  • O comportamento de newrelic.transaction_tracer.detail mudou quando o distributed tracing está ativado. Nas versões 8.4–8.7 do agente PHP, newrelic.transaction_tracer.detail foi desativado quando o distributed tracing estava ativado. Esse não é mais o caso. Para obter mais informações, consulte a documentação sobre como configurar os detalhes de nível de trace ao usar o distributed tracing.
  • Para ativar o suporte aprimorado para distributed tracing, a estratégia de alocação de memória do agente PHP mudou na versão 9.0. O agente PHP alocará memória de forma mais agressiva quando uma transação for iniciada, e o alocador do sistema pode optar por não liberar essa memória de volta para o sistema operacional imediatamente, dependendo da configuração do kernel do sistema operacional e da biblioteca C. Como resultado, o uso de memória dos processos PHP agora pode ser maior do que era com as versões anteriores do agente PHP.

Avisos de atualização para 9.0

Com essas melhorias no distributed tracing, verifique os valores de limite.

  • Nas versões 8.4–8.7 do agente PHP, recomendamos que os clientes definissem newrelic.transaction_tracer.threshold = 0 para que o agente relatasse o distributed trace completo, mesmo quando um serviço PHP leve fizesse parte do trace. Isso não é mais necessário.
  • Ao atualizar para a versão 9.0, recomendamos que as configurações de newrelic.transaction_tracer.threshold sejam revisadas e que esse valor retorne ao seu padrão ou a algum valor mais alto que seja adequado para o aplicativo.

O daemon agora emitirá um aviso se não conseguir encontrar um pacote de certificados raiz na inicialização.

  • O daemon inclui seus próprios certificados e continuará operando, mas uma versão futura do agente PHP removerá os certificados integrados. Nesse momento, o agente PHP não poderá se comunicar com os servidores da New Relic.
  • Recomendação: certifique-se de que um pacote de certificados raiz esteja instalado no host ou no contêiner antes de usar o agente PHP. Isso geralmente está disponível na maioria das distribuições Linux como um pacote ca-certificates. No FreeBSD, um pacote de certificados está disponível por meio do pacote security/ca_root_nss em ports.

O daemon não pode mais ser invocado com a flag --tls.

  • A partir da versão 8.0.0 do agente PHP, a configuração ini newrelic.daemon.ssl foi removida para aumentar a segurança, mas ainda era possível invocar o daemon a partir da linha de comando com --tls true. As invocações de linha de comando do daemon com a flag --tls farão com que a invocação falhe.
  • Como em todas as versões do agente PHP desde a 8.0.0, O TLS é sempre usado para comunicação com os servidores da New Relic.

Correções de bugs

  • Uma possível falha de segmentação ao usar drupal_http_request no PHP 7.3 foi corrigida.
  • Em alguns casos, iniciar uma nova transação durante uma solicitação (via newrelic_start_transaction ou newrelic_set_appname) pode resultar em um estado incompleto do framework e da instrumentação de função do usuário.
  • Ao ofuscar o SQL, os comentários são removidos sem qualquer perda do próprio SQL.
  • Os comandos do Predis 0.8 que usavam o caminho de código executeCommand() síncrono (por exemplo, HSET) em uma conexão em cluster não geravam métricas. O problema foi resolvido.

Problemas conhecidos e soluções alternativas

Possível esgotamento de memória para transações de longa duração

O agente PHP 9.x usa mais memória do que as versões anteriores, pois é menos agressivo na liberação da memória usada para rastrear chamadas de função e segmentos durante as transações: no caso normal, a memória só é liberada no final de cada transação.

Isso tende a se manifestar principalmente para usuários com transações de longa duração, como jobs em segundo plano para processar filas de mensagens, transformar ou relatar dados, ou enviar e-mails.

Pedimos desculpas pelo inconveniente que este problema causou e estamos trabalhando ativamente para resolvê-lo. A curto prazo, temos quatro possíveis soluções alternativas para mitigar este problema.

Soluções alternativas:

  • 1. Iniciar/parar transações manualmente. Se a transação afetada for uma que executa uma série de processos repetitivos, como um consumidor de fila de mensagens, é possível instrumentar manualmente cada iteração como uma transação separada. Isso fornece dados mais detalhados sobre como o processo está operando. Ao fazer isso, a memória usada será liberada após cada transação. Para implementar isso, deve-se ignorar a transação automática inicial com newrelic_end_transaction(true) e, em seguida, usar newrelic_start_transaction()e newrelic_end_transaction() para instrumentar cada transação por sua vez.
  • 2. Reduza os detalhes do trace da transação. Se for necessário o PHP 7.4 imediatamente, ou qualquer uma das funcionalidades adicionadas nas versões 9.x do agente PHP, e for suficiente o trace incluindo apenas informações sobre armazenamento de dados e chamadas externas, então é possível reduzir o nível de detalhes que o agente PHP captura alterando esta configuração: newrelic.transaction_tracer.detail = 0. Com esta configuração, o trace não conterá mais chamadas de função PHP. NOTA: Transações que fazem centenas de milhares de chamadas externas ou de armazenamento de dados ainda podem ser afetadas por problemas de memória.
  • 3. Fazer o downgrade para o agente PHP 8.7. Caso não pretenda usar o PHP 7.4 imediatamente, esta é provavelmente a solução mais simples e rápida. Para fazer o downgrade, é possível instalar a partir dos tarballs em https://download.newrelic.com/php_agent/archive/8.7.0.242/, ou fazer o downgrade para a versão 8.7.0.242 no gerenciador de pacote e fixar essa versão. Vale ressaltar que, se o distributed tracing estiver ativado no agente PHP 8.7, o detalhe do tracer de transação é automaticamente reduzido (conforme a próxima opção).
  • 4. Limite o número de segmentos de função que são criados (permaneça no agente PHP 9.x). Isso é semelhante à opção “reduzir detalhes do trace da transação”, mas também permite que seja feito o trace de um número limitado de chamadas de função PHP, à custa de um aumento no uso de memória proporcional ao número de funções que são capturadas. (Como regra geral, cada segmento requer cerca de 320–400 bytes do heap.) Para capturar as primeiras 5.000 chamadas de função, adicione esta definição de configuração: newrelic.transaction_tracer.max_segments = 5000. Com esta configuração, quaisquer funções PHP após o número de chamadas de função configuradas serão ignoradas. NOTA: Transações que fazem centenas de milhares de chamadas de armazenamento de dados ou externas ainda podem ser afetadas por problemas de memória.

**NOTA: Uma explicação mais detalhada dessas opções pode ser encontrada em nossa postagem no Explorer’s Hub.

March 14, 2019
PHP agent v8.7.0.242

Bug Fixes

  • Transaction globals are now cleanly separated from request globals. This fixes crashes related to the initialization of multiple transactions during one request (mostly triggered by newrelic_set_appname()).

March 14, 2019
PHP agent v8.6.0.238

New Features

  • Support Laravel's handling of CORS HTTP OPTIONS.
    Requests for Laravel's built-in automatic handling of CORS HTTP OPTIONS requests will now be given the transaction name _CORS_OPTIONS.

Bug Fixes

  • A potential segfault when using PHP 7.3, opcache and multiple PHP workers has been fixed.
  • Uncaught exceptions within a job being executed by a Laravel Queue worker are now reported correctly.
  • Invoking function_exists() on a function disabled with the disable_functions configuration directive will now correctly return false.

December 19, 2018
PHP agent v8.5.0.235

New Features

  • Added support for PHP 7.3.
    Keeping up with the latest and greatest from the PHP Core team, the New Relic PHP Agent now supports PHP 7.3.
  • Distributed Tracing Improvements!
    The PHP Agent's Distributed Tracing support (introduced in version 8.4 of the PHP Agent) now includes the `http.method` attributes for External spans.
  • Up to date PHPUnit support.
    The PHP Agent now supports automatic creation of custom events for PHPUnit 6, PHPUnit 7, and PHPUnit 8.

December 5, 2018
PHP agent v8.4.0.231

New Features

  • Support for Distributed tracing

    Distributed tracing lets you see the path that a request takes as it travels through your distributed system. By showing the distributed activity through a unified view, you can troubleshoot and understand a complex system better than ever before.

    Distributed tracing is available with an APM Pro or equivalent subscription. To see a complete distributed trace, you need to enable the feature on a set of neighboring services. Enabling distributed tracing changes the behavior of some New Relic features, so carefully consult the transition guide before you enable this feature.

    To enable distributed tracing, two parameters should be changed in the newrelic.ini file:

    newrelic.distributed_tracing_enabled = true

    and

    newrelic.transaction_tracer.threshold = 0

    Read more about about distributed tracing in the PHP Agent.

Bug Fixes

  • A bug in the PHP agent resulted in databaseCallCount attributes no longer being attached to Transaction events. The 8.4 release restores these attributes.
  • Predis 2 cluster connections could not be instrumented due to internal changes in Predis. The 8.4 release fixes this.

October 15, 2018
PHP agent v8.3.0.226

Bug Fixes

  • In rare cases, during a reset of the apache web server, the agent and mod_php would hang with 100% CPU utilization. This has been fixed.

September 5, 2018
PHP agent v8.2.0.221

Bug Fixes

  • Fixed an entire category of bugs where a Drupal hook whose hook name matched its module name resulted in the generation of empty metric names.

Operating Systems Support

  • This release of the PHP Agent removes support for the Solaris operating system. For Solaris support, please install agent version 8.1 or prior.

April 30, 2018
PHP agent v8.1.0.209

Upgrade Notices

  • The PHP Agent API call newrelic_set_appname has been updated with security improvements in anticipation of future releases.

March 12, 2018
PHP agent v8.0.0.204

Upgrade Notices

  • The newrelic.daemon.ssl ini setting has been removed to increase security. Transport Layer Security (TLS) will now always be used in communication with the New Relic collector.
  • Laravel Queue support has now been enabled for all users. If newrelic.feature_flag=laravel_queue is set, it will now be ignored.

Bug Fixes

  • On FreeBSD and Solaris, when newrelic.daemon.port is configured to use TCP to connect the agent to the daemon, the agent would have difficulty receiving application configuration data from the daemon due to the default timeout of 100 milliseconds matching the delay enforced by the FreeBSD kernel as part of its implementation of Nagle's algorithm. The PHP agent will now set the TCP_NODELAY flag when connecting to the daemon via TCP, which increases the reliability of the agent:daemon connection.

January 10, 2018
PHP agent v7.7.0.203

New Features

  • Support for PHP 7.2 has been added.

Bug Fixes

  • Datastore metrics would not be generated for Predis users who stopped and started the transaction after instantiating a Predis\Client object. This included users using the newrelic_set_appname() API. This has been fixed.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.