• /
  • EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

PHP agent release notesRSS

April 29, 2020
PHP agent v9.10.0.262

Bug Fixes

  • In some rare cases where requests to cloud provider metadata endpoints are blocked via certain methods, the PHP Daemon logged panics from the underlying Go HTTP library. This scenario is now accounted for and handled gracefully.

Upgrade notices

  • On Linux systems, the default value for newrelic.daemon.address changed from /tmp/.newrelic.sock to @newrelic. This means that by default on Linux, agent and daemon communicate via abstract sockets instead of socket files.
  • The PHP Agent installer for Ubuntu/Debian systems now requires Python 3. Debian based distributions with Python 2 are no longer supported.

End of life notices

April 1, 2020
PHP agent v9.9.0.260

Bug fixes

  • Under some circumstances, Drupal 8 transactions were named after generic controllers. These names were not useful for troubleshooting.

    Drupal 8 transaction naming is now improved and hooks into Symfony routing to resolve the main controller associated with a route.

March 25, 2020
PHP agent v9.8.0.259

New Features

Support for W3C Trace Context, with easy upgrade from New Relic trace context

  • Distributed Tracing now supports W3C Trace Context headers for HTTP protocols when distributed tracing is enabled. Our implementation can accept and emit both W3C trace header format and New Relic trace header format. This simplifies agent upgrades, allowing trace context to be propagated between services with older and newer releases of New Relic agents. W3C trace header format will always be accepted and emitted. New Relic trace header format will be accepted, and you can optionally disable emission of the New Relic trace header format.
  • When distributed tracing is enabled, there are two new API function calls available that now support W3C tracestate and traceparent distributed tracing headers in addition to the New Relic distributed tracing header information:
  • When distributed tracing is enabled, you can use the new configuration setting newrelic.distributed_tracing_exclude_newrelic_header to exclude the New Relic distributing tracing header and only rely on W3C Trace Context headers.

Bug fixes

Known Issues and Workarounds

  • If a .NET agent is initiating distributed traces as the root service, you must update that .NET agent to version 8.24 or later before upgrading your downstream PHP New Relic agents to this agent release.

February 11, 2020
PHP agent v9.7.0.258

New Features

Avoid potential memory exhaustion for long running transactions

  • The configuration settings newrelic.transaction_tracer.max_segments_cli and newrelic.transaction_tracer.max_segments_web were added. These settings can be used to limit the number of segments the PHP agent records during a CLI transaction and a web transaction respectively.

    newrelic.transaction_tracer.max_segments_cli defaults to 100000 and thus avoids potential memory exhaustion for long running CLI transactions.

    newrelic.transaction_tracer.max_segments_web defaults to 0, meaning that the PHP Agent shall capture all segments during a web transaction.

    For more information, see the documentation about the PHP agent configuration.

Performance improvements

  • The PHP agent now creates segments in a more efficient way, which results in improved performance.

Bug fixes

  • The Debian init script now uses pidof instead of ps. This solves issues related to starting the daemon with systemctl on Debian. Previously, the daemon would start and immediately stop.

January 22, 2020
PHP agent v9.6.1.256

Bug Fixes

  • In 9.6.0, custom outbound headers added to curl requests could be silently removed if both newrelic.cross_application_tracer.enabled and newrelic.distributed_tracing_enabled are disabled. This has been fixed.

January 16, 2020
PHP agent v9.6.0.255

New Features

Enhanced visibility into curl_multi_exec calls

  • Previously, curl_multi_exec requests appeared as one segment with one total time. Now, we expose the individual segments of a curl_multi_exec request that include individual times and host details. This provides greater visibility as to which URLs are being called and improved ability to troubleshoot slow curl calls.

Configurable daemon start timeout

  • The PHP Agent has introduced a new configuration newrelic.daemon.start_timeout. Customers may use this to specify a timeout for the agent to wait for the daemon after a daemon was launched by the agent.

    With this timeout set, the agent will not immediately drop a transaction when the launched daemon hasn't acquired a socket yet, but rather grants the daemon time to do so.

    It is recommended to only set this timeout when instrumenting long-lived background tasks, as in case of daemon start problems the agent will block for the given timeout at every transaction start.

Upgrade Notice

  • For cross agent conformance, the agent attribute httpResponseCode has been renamed to http.statusCode. In PHP agent release 9.4, we erroneously introduced httpResponseCode as the replacement for response.statusCode.

    The new http.statusCode agent attribute name will align with other agents and enables standardized alerts and INSIGHTS queries based on a common attribute name.

    Attributes are reported with both the new http.statusCode name and the
    legacy httpResponseCode and response.statusCode attribute names.

    Support for legacy attribute names will be removed in future agent versions.

Known issues and workarounds

Potential memory exhaustion for long running transactions

January 6, 2020
PHP agent v9.5.0.252

New Features

  • Support for Real Time Streaming

    • Event data is now sent to New Relic every five seconds, instead of every minute. As a result, transaction, error, and custom events will now be available in New Relic and Insights dashboards in near real time. For more information on how to view your events with a five-second refresh, see the real time streaming documentation.
    • Note that the overall limits on how many events can be sent per minute have not changed. Also, span events, metrics, and trace data is unaffected, and will still be sent every minute.
  • Laravel 6 is now fully supported by the PHP agent.

Known issues and workarounds

Potential memory exhaustion for long running transactions

December 11, 2019
PHP agent v9.4.1.250

Bug fixes

  • A potential segfault when using PHP 7.4 in connection with framework instrumentation has been fixed.

Known issues and workarounds

Potential memory exhaustion for long running transactions

December 5, 2019
PHP agent v9.4.0.249

Known issues and workarounds

Potential memory exhaustion for long running transactions

New features in 9.4

Added support for PHP 7.4

Request URI attribute is now captured

Upgrade Notices

  • For cross agent conformance, the agent attributes request.headers.User-Agent and httpResponseCode are renamed to request.headers.userAgent and response.statusCode. The value response.StatusCode is changed to an integer.
    • Attributes are reported with both the new and the legacy attribute names.
    • Support for legacy attribute names will be removed in future agent versions.

Bug Fixes

  • Since 9.0, transaction traces and span events were not created when newrelic_end_transaction was called inside a PHP function. newrelic_end_transaction now creates transaction traces and span events in any case. It reports all traces and span events for segments that weren't ended at the time of its invocation as unknown.

  • Since 9.0, Predis calls weren't instrumented when the Predis client was loaded from a path ending in Predis/Client.php. This has been fixed.

  • For inbound distributed tracing payloads with invalid or missing values for pr (priority) and/or sa (sampled) the agent used to assign a default priority of -1 and/or a default sampled value of false to the transaction.

    • This has been fixed, the agent now keeps initial priority and sampled values if the respective values in the inbound distributed tracing payload are missing or invalid.
  • The daemon used to erroneously send SIGUSR1 signals to its parent process group in case one of the flags --foreground or --watchdog-foreground was given. This has been fixed.

November 11, 2019
PHP agent v9.3.0.248

Known issues and workarounds

Potential memory exhaustion for long running transactions

New features in 9.3

Trace and entity metadata API calls

  • A new API function newrelic_is_sampled() has been added. This call returns true if the current transaction is part of a sampled distributed trace.
  • A new API function for obtaining linking metadata been added. newrelic_get_linking_metadata(). This call returns an opaque map of key/value pairs that can be used to correlate this application to other data in the New Relic backend.
  • A new API function newrelic_get_trace_metadata() has been added. This call returns a collection of metadata used to identify a trace: trace.id, which provides the currently executing trace's identifier; and span.id, which provides the span identifier associated with the currently executing span.

Configurable connection timeout

  • The PHP agent has introduced a new configuration newrelic.daemon.app_connect_timeout. Customers may use this to specify a timeout for the agent to wait for a daemon connection.

    With this timeout set, the agent will not immediately drop a transaction when the daemon hasn't connected to the backend yet, but rather grant the daemon time to establish the connection.

    It is recommended to only set this timeout when instrumenting long-lived background tasks, as in case of connection problems the agent will block for the given timeout at every transaction start.

Copyright © 2024 New Relic Inc.

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