This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Python Agent version 6.x
editPython Agent version 6.x
edit6.23.0 - 2024-07-30
editFeatures
edit- Make published Docker images multi-platform with the addition of linux/arm64 #2080
Bug fixes
editDeprecations
edit- Python 3.6 support will be removed in version 7.0.0 of the agent
- The log shipping LoggingHandler will be removed in version 7.0.0 of the agent.
- The log shipping feature in the Flask instrumentation will be removed in version 7.0.0 of the agent.
- The log shipping feature in the Django instrumentation will be removed in version 7.0.0 of the agent.
- The OpenTracing bridge will be removed in version 7.0.0 of the agent.
- Celery 4.0 support is deprecated because it’s not installable anymore with a modern pip
6.22.3 - 2024-06-10
editBug fixes
edit- Fix outcome in ASGI and Starlette apps on error status codes without an exception #2060
6.21.0 - 2024-03-06
editBug fixes
edit- Fix starlette middleware setup without client argument #1952
- Fix blocking of gRPC stream-to-stream requests #1967
- Always take into account body reading time for starlette requests #1970
- Make urllib3 transport tests more robust against local env #1969
- Clarify starlette integration documentation #1956
- Make dbapi2 query scanning for dollar quotes a bit more correct #1976
- Normalize headers in AWS Lambda integration on API Gateway v1 requests #1982
6.20.0 - 2024-01-10
editFeatures
editBug fixes
editPending Deprecations
edit- The log shipping LoggingHandler will be removed in version 7.0.0 of the agent.
6.19.0 - 2023-10-11
editFeatures
editBug fixes
edit- Fix url argument fetching in aiohttp_client instrumentation #1890
-
Fix a bug in the AWS Lambda instrumentation when
event["headers"] is None
#1907 - Fix a bug in AWS Lambda where metadata could be incomplete, causing validation errors with the APM Server #1914
- Fix a bug in AWS Lambda where sending the partial transaction would be recorded as an extra span #1914
Pending Deprecations
edit- The log shipping feature in the Flask instrumentation will be removed in version 7.0.0 of the agent.
6.18.0 - 2023-07-25
editFeatures
edit- Add support for grpc aio server interceptor #1870
Bug fixes
edit- Fix a bug in the Elasticsearch client instrumentation which was causing loss of database context (including statement) when interacting with Elastic Cloud #1878
6.17.0 - 2023-07-03
editFeatures
editBug fixes
edit- Fix a bug in the GRPC instrumentation when reaching the maximum amount of spans per transaction #1861
6.16.0 - 2023-06-05
editFeatures
edit- Add lambda layer for instrumenting AWS Lambda functions #1826
- Implement instrumentation of Azure Functions #1766
- Add support for Django to wrapper script #1780
- Add support for Starlette to wrapper script #1830
-
Add
transport_json_serializer
configuration option #1777 - Add S3 bucket and key name to OTel attributes #1790
- Implement partial transaction support in AWS lambda #1784
- Add instrumentation for redis.asyncio #1807
- Add support for urllib3 v2.0.1+ #1822
-
Add
service.environment
to log correlation #1833 -
Add
ecs_logging
as a dependency #1840 - Add support for synchronous psycopg3 #1841
Bug fixes
edit- Fix spans being dropped if they don’t have a name #1770
-
Fix AWS Lambda support when
event
is not a dict #1775 - Fix deprecation warning with urllib3 2.0.0 pre-release versions #1778
-
Fix
activation_method
to only send to APM server 8.7.1+ #1787 -
Fix span.context.destination.service.resource for S3 spans to have an "s3/" prefix. #1783
Note: While this is considered a bugfix, it can potentially be a breaking change in the Kibana APM app: It can break the history of the S3-Spans / metrics for users relying on
context.destination.service.resource
. If users happen to run agents both with and without this fix (for same or different languages), the same S3-buckets can appear twice in the service map (with and without s3-prefix). - Fix instrumentation to not bubble up exceptions during instrumentation #1791
- Fix HTTP transport to not print useless and confusing stack trace #1809
6.15.0 - 2023-02-16
editFeatures
edit-
Add
service.agent.activation_method
to the metadata #1743
Bug fixes
edit- Small fix to underlying Starlette logic to prevent duplicate Client objects #1735
-
Change
server_url
default tohttp://127.0.0.1:8200
to avoid ipv6 ambiguity #1744 - Fix an issue in GRPC instrumentation with unsampled transactions #1740
- Fix error in async Elasticsearch instrumentation when spans are dropped #1758
6.13.1 - 2022-11-03
editBug fixes
edit- Fix elasticsearch instrumentation for track_total_hits=False #1687
6.13.0 - 2022-10-26
editFeatures
edit- Add support for Python 3.11
- Add backend granularity data to SQL backends as well as Cassandra and pymongo #1585, #1639
- Add support for instrumenting the Elasticsearch 8 Python client #1642
-
Add
*principal*
to defaultsanitize_field_names
configuration #1664 - Add docs and better support for custom metrics, including in AWS Lambda #1643
- Add support for capturing span links from AWS SQS in AWS Lambda #1662
Bug fixes
edit-
Fix Django’s
manage.py check
when agent is disabled #1632 - Fix an issue with long body truncation for Starlette #1635
- Fix an issue with transaction outcomes in Flask for uncaught exceptions #1637
- Fix Starlette instrumentation to make sure transaction information is still present during exception handling #1674
6.12.0 - 2022-09-07
editFeatures
editBug fixes
edit- Differentiate Lambda URLs from API Gateway in AWS Lambda integration #1609
- Restrict the size of Django request bodies to prevent APM Server rejection #1610
-
Restrict length of
exception.message
for exceptions captured by the agent #1619 - Restrict length of Starlette request bodies #1549
- Fix error when using elasticsearch(sniff_on_start=True) #1618
- Improve handling of ignored URLs and capture_body=off for Starlette #1549
- Fix possible error in the transport flush for Lambda functions #1628
6.10.1 - 2022-06-30
editBug fixes
edit- Fix an issue with Kafka instrumentation and unsampled transactions #1579
6.10.0 - 2022-06-22
editFeatures
edit-
Add instrumentation for
aiobotocore
#1520 -
Add instrumentation for
kafka-python
#1555 - Add API for span links, and implement span link support for OpenTelemetry bridge #1562
- Add span links to SQS ReceiveMessage call #1575
- Add specific instrumentation for SQS delete/batch-delete #1567
-
Add
trace_continuation_strategy
setting #1564
Bug fixes
edit-
Fix return for
opentelemetry.Span.is_recording()
#1530 - Fix error logging for bad SERVICE_NAME config #1546
- Do not instrument old versions of Tornado > 6.0 due to incompatibility #1566
- Fix transaction names for class based views in Django 4.0+ #1571
- Fix a problem with our logging handler failing to report internal errors in its emitter #1568
6.9.1 - 2022-03-30
editBug fixes
edit-
Fix
otel_attributes
-related regression with older versions of APM Server (<7.16) #1510
6.9.0 - 2022-03-29
editFeatures
edit- Add OpenTelemetry API bridge #1411
-
Change default for
sanitize_field_names
to sanitize*auth*
instead ofauthorization
#1494 -
Add
span_stack_trace_min_duration
to replace deprecatedspan_frames_min_duration
#1498 - Enable exact_match span compression by default #1504
-
Allow parent celery tasks to specify the downstream
parent_span_id
in celery headers #1500
Bug fixes
edit6.8.0 - 2022-02-22
editFeatures
edit- use "unknown-python-service" as default service name if no service name is configured #1438
- add transaction name to error objects #1441
- don’t send unsampled transactions to APM Server 8.0+ #1442
- implement snapshotting of certain configuration during transaction lifetime #1431
- propagate traceparent IDs via Celery #1371
-
removed Python 2 compatibility shims #1463
- Note: Python 2 support was already removed with version 6.0 of the agent, this now removes unused compatibilit shims.
Bug fixes
edit6.6.3 - 2021-11-15
editBug fixes
edit-
fix an issue with
metrics_sets
configuration referencing theTransactionMetricSet
removed in 6.6.2 #1397
6.6.2 - 2021-11-10
editBug fixes
edit-
Fix an issue where compressed spans would count against
transaction_max_spans
#1377 - Make sure HTTP connections are not re-used after a process fork #1374
- Fix an issue with psycopg2 instrumentation when multiple hosts are defined #1386
-
Update the
User-Agent
header to the new spec #1378 - Improve status_code handling in AWS Lambda integration #1382
-
Fix
aiohttp
exception handling to allow for non-500 responses includingHTTPOk
#1384 - Force transaction names to strings #1389
Other
edit6.6.1 - 2021-11-02
editBug fixes
edit- Fix some context fields and metadata handling in AWS Lambda support #1368
6.5.0 - 2021-10-04
editFeatures
edit- Add instrumentation for Azure Storage (blob/table/fileshare) and Azure Queue #1316
Bug fixes
edit6.3.3 - 2021-07-14
editBug fixes
edit- ensure that the elasticsearch instrumentation handles DroppedSpans correctly #1190
6.3.2 - 2021-07-07
editBug fixes
edit- Fix handling of non-http scopes in Starlette/FastAPI middleware #1187
v6.1.1 - 2021/04/08
editBug fixes
edit- fixed a validation issue with the newly introduced instrumentation for S3, SNS and DynamoDB #1090
v6.1.0 - 2021/03/31
editFeatures
edit-
Add global access to Client singleton object at
elasticapm.get_client()
#1043 -
Add
log_ecs_formatting
config option #1058 #1063 - Add instrumentation for httplib2 #1031
- Add better instrumentation for some AWS services (S3, SNS, DynamoDB) #1054
- Added beta support for collecting metrics from prometheus_client #1083
Bug fixes
edit-
Fix for potential
capture_body: error
hang in Starlette/FastAPI #1038 - Fix a rare error around processing stack frames #1012
- Fix for Starlette/FastAPI to correctly capture request bodies as strings #1041
- Fix transaction names for Starlette Mount routes #1037
- Fix for elastic excepthook arguments #1050
- Fix issue with remote configuration when resetting config values #1068
- Use a label for the elasticapm Django app that is compatible with Django 3.2 validation #1064
- Fix an issue with undefined routes in Starlette #1076
v6.0.0 - 2021/02/01
editBreaking changes
edit- Python 2.7 and 3.5 support has been deprecated. The Python agent now requires Python 3.6+ #1021
-
No longer collecting body for
elasticsearch-py
update
anddelete_by_query
#1013 -
Align
sanitize_field_names
config with the cross-agent spec. If you are using a non-defaultsanitize_field_names
, surrounding each of your entries with stars (e.g.*secret*
) will retain the old behavior. #982 - Remove credit card sanitization for field values. This improves performance, and the security value of this check was dubious anyway. #982
- Remove HTTP querystring sanitization. This improves performance, and is meant to standardize behavior across the agents, as defined in https://github.com/elastic/apm/pull/334. #982
-
Remove
elasticapm.tag()
(deprecated since 5.0.0) #1034
Bug fixes
edit- Fix for GraphQL span spamming from scalar fields with required flag #1015