Notes
This release of the Python agent fixes an issue with FastAPI instrumentation, as well as restricts gRPC to compatible versions.
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 FastAPI context propagation error
A runtime instrumentation error stemming from context propagation in FastAPI has been fixed.
Fix gRPC incompatibilities
The version of gRPC has been pinned until compatiblity can be ensured with newer versions.
gRPC recently enabled retries by default on channel connections, potentially causing a storm of requests and open threads to starve the host of resources, as well as strain our trace observers. This pin should alleviate these issues until retries can be properly configured.
Notes
This release of the Python agent fixes an issue with urllib recursion as well as an import error caused by non-ASCII characters in comments
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 urllib3 recursion regression
Urllib3 recursion regression issue that was seen in Gevent has been fixed
Fix import error caused by non-ASCII character in comments
An import error caused by non-ASCII characters has been fixed to the correct quotation formatting
Notes
This release of the Python agent adds supported builds for Python 3.10 and fixes bugs.
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 Python 3.10 wheels
Wheels for Python 3.10 are now available and supported.
Changes
Upgrade internal urllib3 to v1.26.7
The internal copy of urllib3 has been upgraded to v1.26.7 to address Python 3.10 issues and deprecation warnings.
Bug Fixes
Ensure errors are ignored by server-side config
Previously it was possible on transaction exit to have an error fail to be ignored when the settings were supplied via server-side config. This has been fixed.
Deprecation warnings for imp module removed
The
impmodule has been deprecated for some time, and has been issuing warnings. This module has been replaced withimportlibwhen available.Older versions of Python may still require the use of
imp, but no deprecation warnings should be emitted.
Notes
This release of the Python agent adds a patch to correctly build wheels for Python 3.10.
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 wheels for Python 3.10
An incorrect version of
cibuildwheelfailed to create Python 3.10 wheels. This has been fixed and wheels should now be available.
Notes
This release of the Python agent enables Distributed Tracing by default, deprecates Cross Application Tracing.
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
Reservoir sizes now configurable using settings and environment variables
Reservoir sizes for span events, transaction events, error events, and custom events are now configurable via environment variables. These reservoirs limit both the maximum number of events that can be sent as well as local memory usage.
The agent reservoir can be expanded to accommodate more spans in case more traces are needed or there are dropped spans. The default setting for
event_harvest_config.harvest_limits.span_event_datahas been increased from 1000 to 2000 for better performance. This variable can be increased up to a size of 10,000.These settings previously existed via config file but were undocumented. For details, see the new documentation.
Deprecations
Cross Application Tracing is now deprecated, and disabled by default
Distributed Tracing is replacing Cross Application Tracing as the default means of tracing between services. Cross Application Tracing will soon be removed entirely with a future release.
The default setting for
cross_application_tracer.enabledis now False, disabling Cross Application Tracing.To continue using it temporarily while transitioning to Distributed Tracing, enable it with
cross_application_tracer.enabled = Trueanddistributed_tracing.enabled = False.
Changes
Distributed Tracing is enabled by default
The default setting for
distributed_tracing.enabledis now True, enabling Distributed Tracing by default.To disable Distributed Tracing, please set the
distributed_tracing.enabledsetting to False.
Notes
This release of the Python agent adds new instrumentation for the GraphQL frameworks Strawberry and Ariadne, updates to Graphene and Starlette GraphQL instrumentation, a change to logging configuration, and includes 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.
New Features
Add new instrumentation for Strawberry
GraphQL applications built using Strawberry will now be automatically instrumented.
Add new instrumentation for Ariadne
GraphQL applications built using Ariadne will now be automatically instrumented.
Improvements
Add new and changed metrics for Graphene applications
Metrics specifying the framework details for Graphene have been added, and GraphQL metrics now include Graphene as a product field.
(eg.
GraphQL/operation/Graphene/query/<query_name>/<query_path>)Improve tracing in Starlette GraphQL applications
GraphQL applications using Starlette now support all executor classes. Previously, only async executor classes were supported.
Changes
New Relic agent logs no longer propagate to the root logger by default
Previously, logs using the
loggingmodule sent to thenewreliclogger would propagate to the root logger, potentially causing duplicate logs to appear or be sent to New Relic. This has been changed to no longer propagate to the root logger by default.To reverse this behavior, in your application you can run
logging.getLogger("newrelic").propagate = Trueat any point after initializing the agent. If you use thenewrelic-adminwrapper, this can be done at any time inside your application.
Bug Fixes
TimeTrace.str recursion
A case of infinite recursion with
TimeTrace.__str__has been corrected in this release. Callingstr(),repr()orprint()on aTimeTraceobject or subclass instance will now display helpful debugging information about it.
Notes
This release of the Python agent updates the log file location in the default newrelic.ini file, and includes multiple bug fixes.
The agent can be installed using easy_install/pip/distribute via the Python Package Index, or it can be downloaded directly from the New Relic download site.
Improved Features
Update log_file location in default
newrelic.iniThe
newrelic.inigenerated usingnewrelic-admin generate-confighas been updated to set the defaultlog_filelocation tostdoutfor improved initial visibility. This setting can still be customized to log tostderror a user-specified file as well.
Bug Fixes
Handle
cherryPy.HTTPRedirectscherrypy.HttpRedirectswere incorrectly being reported as errors. This has now been corrected thanks to a contribution from @bdeeney!Address
DeprecationWarningfor invalid escape sequenceA deprecation warning concerning unrecognized escape sequences in Python 3.6 (and higher) has been fixed. Thank you @urianchang for your contribution!
Notes
This release of the Python agent adds ARM64 wheels and fixes a crash in unsupported GraphQL versions.
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 wheel support for ARM64 (a.k.a. AArch 64, ARMv8)
The agent now provides prebuilt wheels for ARM64 for Python versions >=3.6. This requires a version of pip>=19.3.
Bug Fixes
Fix a crash in unsupported GraphQL versions
A crash in GraphQL could occur when using an older version not supported by our instrumentation (ie.
graphql-core<2.1). This has been corrected.
Notes
This release of the Python agent adds new GraphQL instrumentation support for the Graphene library and Graphene schemas created in Starlette/ FastAPI.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
New Features
Add support for Graphene
Graphene applications will now be automatically instrumented.
Add support for Graphene schemas in Starlette/FastAPI with use of an AsyncioExecutor
Starlette/ FastAPI applications using GraphQL in conjunction with an AsyncioExecutor will now be automatically instrumented.
Notes
This release of the Python agent adds wildcarding to instrumentation config and fixes a crash in the memory metric sampler.
Install the agent using easy_install/pip/distribute via the Python Package Index or download it directly from the New Relic download site.
Improvements
Add wildcard matching to instrumentation via config file
The agent now supports wildcards for classes and functions when instrumenting via config file. Note: this does not include module paths.
Bug Fixes
Fix a crash in memory sampling on BSD kernels
A crash in the memory metric sampler was possible when using kernels besides MacOS and Linux. This has been corrected.