Notes
This release of the Python agent adds context data attributes to logs, support for dictionary type log messages, adds attribute support to record_log_event
API, and obfuscates logged license keys and user API keys.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
New features
Add context data attributes to logs
- Context data available from logging frameworks can now be recorded as attributes on logs. These attributes are prefixed with
context.
, which is not considered when filtering attributes from logs. - Context data may include extras, dictionary message attributes, and attributes provided by logging frameworks.
- To report these attributes, enable context data forwarding and optionally configure include and exclude rules to filter the allowed attributes.
- Context data available from logging frameworks can now be recorded as attributes on logs. These attributes are prefixed with
Add support for dictionary type log messages
- Dictionary type log messages are now supported for logging frameworks which support dictionary type log messages (including the builtin
logging
module andstructlog
). - The key
message
will be extracted if available and treated as the log message, and any other items will be considered context data attributes and prefixed withmessage.
. These attributes are subject to the same filtering rules as other context data.
- Dictionary type log messages are now supported for logging frameworks which support dictionary type log messages (including the builtin
Add attribute support to
record_log_event
API- The
record_log_event
API now allows passing context data in using the optionalattributes
keyword argument, and allows the message argument to be a dictionary as described above.
- The
Obfuscate license keys and user API keys in logs
- The agent now obfuscates all instances of license keys or user API keys in agent logs and audit logs.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent adds support for nonced content security policies for browser agent injection, adds new wheels for Python 3.12 and musl Linux systems such as Alpine, deprecates the ObjectWrapper and get_browser_timing_footer
APIs, fixes a crash with Kafka instrumentation when using distributed tracing, and removes a case sensitive header check in ASGIBrowserMiddleware
.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Deprecations
Deprecated
newrelic.agent.ObjectWrapper
API- Removes custom
newrelic.agent.ObjectWrapper
implementation and instead creates a pass through towrapt.FunctionWrapper
.
- Removes custom
Deprecated
get_browser_timing_footer
API- Previously
get_browser_timing_footer
was an API that would be used to supply information to the browser agent loaded byget_browser_timing_header
. - This step is now included in
get_browser_timing_header
, makingget_browser_timing_footer
obsolete. This function now returns an empty string to avoid breaking existing applications.
- Previously
New features
Added nonced content security policies (CSPs) for browser agent injection
- The browser agent injection API
get_browser_timing_header
has a new parameternonce
that takes a cryptographic nonce for use with content security policies. The nonce will be automatically inserted into the generated HTML.
- The browser agent injection API
Added additional wheel options for Python 3.12 and musl Linux
- Added pre-built binary wheel support for Python 3.12 as well as alternative wheels for musl-based Linux operating systems (such as Alpine).
Added
newrelic.agent.CallableObjectProxy
to public APIs- Previously
CallableObjectProxy
was never exposed for general use with custom instrumentation, but was present in internal modules used by the agent. - This API has been added to
newrelic.agent.CallableObjectProxy
for general use.
- Previously
Bug fixes
Fixed a crash with kafka-python and confluent-kafka when using distributed tracing
- Previously Kafka instrumentation packages would sometimes fail to generate distributed tracing headers and cause a crash. This has been fixed and distributed tracing headers should now generate correctly.
Removed case sensitive header check in
ASGIBrowserMiddleware
- The agent previously only supported HTML insertion for headers that were lowercase in ASGI applications. The header check is now case insensitive in compliance with the ASGI specification.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent adds Python 3.12 support. It also includes support for sending utilization data for Docker with cgroups v2, adds a new synthetics information header, upgrades the agent's internal wrapt version, and includes a bug fix for structlog.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
New features
Add support for Python 3.12 The agent now supports applications running in Python 3.12.
Add support for Docker cgroups v2 The agent now includes functionality to parse Docker IDs in later versions of Docker using cgroups v2.
Add new synthetics information header The agent now retransmits and processes information contained in a new synthetics header: X-NewRelic-Synthetics-Info.
Changes
- Upgrade internal wrapt to v1.16.0 The agent's internal copy of wrapt has been upgraded to v1.16.0 in conjunction with Python 3.12 support.
Bug fixes
- Fix structlog CallsiteParameter processor bug Call site parameter values in structlog no longer produce incorrect values.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent adds a new configuration option that allows users to disable capturing package and version information at agent startup.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
New features
- Add new configuration option
package_reporting.enabled
. This option allows users to disable capturing package and version information at agent startup. On some applications with a high number of packages some users were seeing a spike in CPU usage. Disabling this setting provides a workaround for that issue.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent fixes a regression in package version performance that was introduced in 8.10.1.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Bug fixes
- Fix package version performance regression Addressed issue that was introduced in 8.10.1 where there is increased CPU usage and time on startup and when using certain libraries at runtime.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent fixes generator instrumentation issue with Redis and adds caching to package versions to address some performance issues.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
New features
- Add caching to
get_package_version
to address performance issues
Bug fixes
- Fix generator and async generator instrumentation issue in
Redis.asyncio
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent adds support for sklearn and redis.asyncio
connections.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
New features
Add support for sklearn The Python agent now supports monitoring for machine learning models created with sklearn. Check out our documentation for details on how to view and query for your prediction events and ML related metrics directly in the New Relic user interface. Machine learning instrumentation will be disabled by default in this release. To enable it, visit our configuration page for further information. This release also introduces two new APIs to support customization of machine learning monitoring: wrap_mlmodel and record_ml_event.
Add instrumentation for
redis.asyncio.Connection
Add instrumentation support for connections initiated from theredis.asyncio
module
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent adds support for async graphql-core and drops support for graphql-core 2.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Framework Support
- Drop support for graphql-core 2 Remove support for graphql-core 2.0.
Enhancements
- Add support for async graphql-core Add support for async graphql-core 3.0 and above.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent adds support for structlog and some bug fixes.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Enhancements
- Add support for structlog Adds instrumentation support for structlog.
Bug fixes
Fix certificate fallback logic Fixed the fallback logic for the certificate bundle such that it only uses the builtin bundle when both the cafile AND capath are None.
Fix missing database metric Fixed an issue where certain databases were not recording the
Datastore/instance/<db>/<host>/<port>
metric and so the database was not showing up in the service map.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Notes
This release of the Python agent fixes an issue with MetricNormalizationRules, fixes a DeprecationWarning in pacakge version detection, and adds support for new commands introduced in Redis v5.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Enhancements
- Add support for new commands introduced in Redis v5 Adds full instrumentation support for Redis v5.
Bug fixes
Fix crash in MetricNormalizationRules Fixed a crash when using client side MetricNormalizationRules to ignore metrics (set through NerdGraph and available under a feature flag). The metrics should now be properly ignored.
Fix DeprecationWarning in pacakge version detection for Python 3.10+ Fixed a DeprecationWarning emitted by pacakge version detection used internally for Python 3.10+. When importlib.metadata is available, prefer using it to avoid checking deprecated version attributes on modules. (Thanks @renanivo for the contribution!)
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.