Python Agent version 5.xedit

v5.10.1 - 2021/01/20edit

Bug fixesedit
  • Fix for custom serializers in elasticsearch-py #998
  • Fix large query truncation in psycopg2 #994
  • Fix memory metrics reporting when memory.usage_in_bytes is unavailable #987
  • Fix for Starlette/FastAPI integration to properly obey enabled config #1000

v5.10.0 - 2020/11/18edit

Featuresedit
  • Implement "sample_rate" property for transactions and spans, and propagate through tracestate #891
  • Add support for callbacks on config changes #912
  • Override sys.excepthook to catch all exceptions #943
  • Implement log_level config (supports central config) #946
  • Implement transaction_ignore_urls config (supports central config) #923
  • Add public API to retrieve trace parent header #956
  • Added support for cgroup memory metrics #846
Bug fixesedit
  • Fix to collect the whole query body in elasticsearch-py #940
  • Fix for GraphQL transaction naming #881
  • Ensure that query string max length is maintained after sanitization #968
  • Adapted kubernetes kubepod regex for detecting kubernetes metadata #958
  • Updated Starlette integration to use the route as transaction name if possible #957

v5.9.0 - 2020/09/23edit

Featuresedit
  • Add instrumentation support for httpx and httpcore #898
  • Implement "outcome" property for transactions and spans #899
  • Add support for asyncpg #889
Bug fixesedit
  • Fix validation of config to properly require required config items. #927

v5.8.1 - 2020/07/13edit

Bug fixesedit
  • Updated CLOUD_PROVIDER config to allow for new options defined in #289 #878
  • Fixed a bug in AWS metadata collection on docker containers in AWS Elastic Beanstalk #884
  • Fixed a bug in local variable serialization that could occur in multi-threaded applications #885

v5.8.0 - 2020/06/30edit

Featuresedit
  • Added graphql (graphene) support #850
  • Collect cloud provider metadata #826
  • Added sanitize_field_names config #860
Bug fixesedit
  • Fix header fetching for ASGI implementations #856

v5.7.0 - 2020/06/11edit

Featuresedit
  • capture number of affected rows for INSERT/UPDATE/DELETE SQL queries #614
  • Added instrumentation for AsyncElasticsearch #843
Bug fixesedit
  • Added error handling around frame processing in Django #837
  • Limit SQL queries in context data to 10000 characters #842
  • Omit the "sync" property on spans by default #854
  • Update the pid/ppid in transport metadata when they change #825
  • Added better error handling around closing the transport #838
  • Fixed an issue with the django admin command not detecting misconfigured server urls #855

v5.6.0 - 2020/05/06edit

New featuresedit
  • Added SERVICE_NODE_NAME config #592
  • Added instrumentation support for pymemcache #812
  • Added new configuration options enabled and recording #790
Bug fixesedit
  • Fixed an issue with metrics collection raising RuntimeErrors #802
  • Fixed an issue with getting extended destination data from pymongo #797
  • Fixed an issue with Tornado instrumentation when Tornado isn’t the "main" framework #813
  • Fixed an issue with streaming requests being consumed by the agent even if capture_body is disabled #817
Pending Deprecationsedit
  • Python 2.7 suppot will be dropped in version 6.0 of the agent.

v5.5.2 - 2020/03/20edit

Bug fixesedit
  • Fixed an issue with Redis using unix domain sockets and destination information #766

v5.5.1 - 2020/03/19edit

Bug fixesedit
  • Fixed Starlette middleware when capturing request body while the content-type header is absent #763

v5.5.0 - 2020/03/19edit

Featuresedit
  • Added destination information to database/HTTP spans, used for service maps #618
Deprecationsedit
  • Python 3.4 is no longer supported.

v5.4.3 - 2020/02/27edit

Check the diff

Bug fixesedit
  • fixed a bug in our aiohttp.client support if used with a yarl URL #733

v5.4.2 - 2020/02/18edit

Check the diff

Bug fixesedit
  • fixed a bug in our celery implementation related to the threading refactor in 5.4.0 #724

v5.4.1 - 2020/02/18edit

Check the diff

Bug fixesedit
  • fixed an issue with a DEBUG log message raising an error in some cases #722

v5.4.0 - 2020/02/17edit

Check the diff

Deprecationsedit

This will be the last minor release to support the following versions:

  • Python 3.4
  • Django 1.8, 1.9 and 1.10
  • Flask < 1.0

In addition, as of this release we only supported capturing extended information on Elasticsearch queries when using keyword arguments with the elasticsearch-py API. This is in keeping with the upstream policy of positional arguments being unsupported. #697

New Featuresedit
  • Refactored spawning of background threads #636
  • Added support for aiohttp client and server #659
  • Added support for tornado web framework #661
  • Added support for starlette/fastapi #694
  • Added support for W3C traceparent and tracestate headers #660
  • Added Django 3.0 and Flask 1.1 to the support matrix #667
  • Added support for aiopg #668
  • Use Span ID as parent ID in errors if an error happens inside a span #669
  • Added experimental support for API Key authentication #679
Bug fixesedit
  • introduced workaround to avoid instrumenting twice in rare cases #708

v5.3.3 - 2020/01/14edit

Check the diff

Bug fixesedit
  • Fixed an issue with OpenTracing bridge and dropped spans #687
  • Fixed bug that would make the agent ignore the hostname configuration setting #689

v5.3.2 - 2019/11/25edit

Check the diff

Bug fixesedit
  • Added support for IPv6 address format when parsing urls #649

v5.3.1 - 2019/11/18edit

Check the diff

New Featuresedit
  • Added support for shortening dicts in local variables #638

v5.3.0 - 2019/11/14edit

Check the diff

New Featuresedit
  • Added instrumentation for mysql-connector and pymysql #603
  • Implemented stack_trace_limit configuration option #623
  • Autoinsert tracing middleware in django settings #625
Bug fixesedit
  • Fixed issue with transactions not being captured when errors occur in Flask #635

v5.2.3 - 2019/11/13edit

Check the diff

Bug fixesedit
  • Ensure that metrics with value 0 are not collected if they have the reset_on_collect flag set #615
  • Unwrap postgres cursor for newly introduced psycopg2 extensions #621
  • Fix pod ID for kubernetes when using the systemd cgroup driver #631

v5.2.2 - 2019/10/16edit

Check the diff

Bug fixesedit
  • Fixed an issue where a cpu_total of 0 could cause an exception #610, #611

v5.2.1 - 2019/10/09edit

Check the diff

Bug fixesedit
  • Fixed an issue with DroppedSpans and logging integration #602
  • Fixed an issue with processors not being applied to chained exceptions #604

v5.2.0 - 2019/10/02edit

Check the diff

New Featuresedit
  • Added automatic tagging of LogRecord objects with transaction, trace, and span IDs via a LogRecordFactory (Python 3.2+) #520, #586
  • Added logging filter and record factory for adding transaction, trace, and span IDs #520, #586
  • Added structlog processor for adding transaction, trace, and span IDs #520, #586
  • Added new public API calls for getting transaction, trace, and span IDs #520, #586
  • Added support for chained exceptions in Python 3 #596. Note that chained exceptions will be captured and stored in Elasticsearch, but not yet visualized in the APM UI. The UI component will be released in an upcoming Kibana release (7.5 or later).
  • Added support for using structlog for agent logging #591
Bug fixesedit
  • Drop events immediately if a processor returns a falsy value #585

v5.1.2 - 2019/09/04edit

Check the diff

Bugfixesedit
  • Fixed an issue with http server_url and 'VERIFY_SERVER_CERT': False #570, #578
  • Fixed instrumenting of psycopg2 when using their context manager interface #577, #580
  • Fixed zerorpc tests #581
  • Fixed to correctly check if gevent has patched threading.local #579

v5.1.1 - 2019/08/22edit

Check the diff

Bug fixesedit
  • Fixed an issue with empty responses from APM Server’s config endpoint #562, #563
  • Fixed Windows tests by avoiding time.sleep in breakdown metrics tests #537, #550
  • Fixed container ID matching to match CloudFoundry Garden container IDs #523, #564
  • Fixed an issue in the urllib instrumentation if no port is set #567
Otheredit
  • Added Python 3.8 RC to the test matrix #565

v5.1.0 - 2019/08/14edit

Check the diff

Security issuesedit
  • This release fixes CVE-2019-7617
New Featuresedit
  • Added support for global labels which will be applied to every transaction/error/metric #549
  • Added support for NO_PROXY environment variable #458, #551
Bugfixesedit
  • Fixed an issue with using callables in set_context with unsampled transactions #541, #542
  • Limited the length of error.culprit to 1024 characters #491, #543
  • Fixed an issue with the instrument config option #546, #547
  • Limited the amount of distinct metrics to 1000 #540, #544

v5.0.0 - 2019/07/31edit

Check the diff

Breaking changesedit
  • Implemented type/subtype/action hierachy for spans. Ensure that you run at least APM Server 6.6 #377
  • renamed tags to labels and changed API. The old API remains for backwards compatibility until 6.0 of the agent #538
Other changesedit
  • Added support for recording breakdown metrics #535
  • Added support for central config management #511
  • Added instrumentation for urllib2 (Python 2) / urllib.request (Python 3) #464
  • Added disable_metrics setting #399
  • Updated elasticsearch instrumentation for 7.x #482, #483
  • Fixed an issue with opentracing-python 2.1 #471
  • Fixed an issue with certificate pinning #497
  • Lowered log level of transport success messages #527, #531