pypi newrelic 10.17.0
v10.17.0

one day ago

Notes

This release of the Python agent adds support for the following:

This release also provides the following fixes:

  • Safeguards for the deepest unique path in GraphQL
  • Safeguards for web URL request parsing
  • Fallback for ElasticSearch and GraphQL when trace.settings==None
  • Remove options method from async ElasticSearch client list

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

  • Adds support for custom tasks in Celery

    • Add monitoring support for custom task classes in Celery. Previously, only tasks using the default task class were able to be monitored. Note: This version of the Python agent will no longer support Celery versions less than v5.2.0.
  • Adds support for Graphene-Django

    • Add monitoring support for synchronous schemas created with Graphene-Django. Previously, schemas created with Graphene-Django would only be partially monitored, resulting in missing GraphQL related attributes.
  • Adds support for middleware filtering in Django

    • Users are now able to filter which Django middleware to monitor. There are now three additional settings:

      • instrumentation.middleware.django.enabled (Default is true)
      • instrumentation.middleware.django.exclude
      • instrumentation.middleware.django.include
  • Adds support for AWS Bedrock Converse API

    • Add monitoring support for non-streaming Converse API. This includes support for converse chat completion calls made using boto3 and aioboto3 clients.
  • Adds support for W3CTraceParent header sampled flag

    • When an upstream service sends the W3CTraceParent header with the sampling flag set, New Relic will take into account that sampling decision when deciding whether the current transaction will be sampled.
  • Added support for sampling decisions based on whether the remote parent is sampled

    • Added support for two new configuration options:

      • distributed_tracing.sampler.remote_parent_sampled
      • distributed_tracing.sampler.remote_parent_not_sampled
    • default is the default behavior and behaves as it did before this change (it passes the sampling decision to the adaptive sampling algorithm to determine whether the transaction will be sampled).

    • always_on means that the trace that has a remote parent sampled or remote parent not sampled will always be sampled.

    • always_off means that the trace that has a remote parent sampled or remote parent not sampled will never be sampled.

Bug fixes

  • Add safeguard for deepest unique path in GraphQL

    • Some users were experiencing issues with the deepest unique path in GraphQL not being generated due to a field name returning None. This issue has been fixed.
  • Add safeguard for web request parsing

    • Some users experienced a parsing error when request_uri was malformed or contained invalid characters. This can happen at this point if the request_uri in the request header is invalid and does not match the (valid) URL originally given. While this safeguard has now been put in place in New Relic, urllib has resolved this issue for versions of Python released after Jan 31, 2025.
  • Fix crash in ElasticSearch and GraphQL when trace.settings==None

    • In cases where trace.settings is None, the instrumentation for ElasticSearch crashed the application. A global_settings fallback has been put in place. This also resolves the same issue found in GraphQL.
  • Remove options method from async ElasticSearch client list

    • The previous instrumentation of ElasticSearch caused a crash because options was in the list of async methods. This method is no longer wrapped in a DatastoreTrace since it is not one that conducts any datastore operations/requests.

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.

Don't miss a new newrelic release

NewReleases is sending notifications on new releases.