Changelogs » Aws-xray-sdk



* bugfix: Downstream Http Calls should use hostname rather than full URL as subsegment name. `PR192 <>`_.
* improvement: Whitelist SageMakerRuntime InvokeEndpoint operation. `PR183 <>`_.
* bugfix: Fix patching for PynamoDB4 with botocore 1.13. `PR181 <>`_.
* bugfix: Add X-Ray client with default empty credentials. `PR180 <>`_.
* improvement: Faster implementation of Wildcard Matching. `PR178 <>`_.
* bugfix: Make patch compatible with PynamoDB4. `PR177 <>`_.
* bugfix: Fix unit tests for newer versions of psycopg2. `PR163 <>`_.
* improvement: Enable tests with python 3.7. `PR157 <>`_.


* bugfix: Fix exception processing in Django running in Lambda. `PR145 <>`_.
* bugfix: Poller threads block main thread from exiting bug. `PR144 <>`_.


* bugfix: Middlewares should create subsegments only when in the Lambda context running under a Lambda environment. `PR139 <>`_.


* feature: Add ability to enable/disable the SDK. `PR119 <>`_.
* feature: Add Serverless Framework Support `PR127 <>`_.
* feature: Bring aiobotocore support back. `PR125 <>`_.
* bugfix: Fix httplib invalid scheme detection for HTTPS. `PR122 <>`_.
* bugfix: Max_trace_back = 0 returns full exception stack trace bug fix. `PR123 <>`_.
* bugfix: Rename incorrect config module name to the correct global name. `PR130 <>`_.
* bugfix: Correctly remove password component from SQLAlchemy URLs, preventing... `PR132 <>`_.


* feature: Stream Django ORM SQL queries and add flag to toggle their streaming. `PR111 <>`_.
* feature: Recursively patch any given module functions with capture. `PR113 <>`_.
* feature: Add patch support for pg8000 (Pure Python Driver). `PR115 <>`_.
* improvement: Remove the dependency on Requests. `PR112 <>`_.
* bugfix: Fix psycop2 register type. `PR95 <>`_.


* feature: Added context managers on segment/subsegment capture. `PR97 <>`_.
* feature: Added AWS SNS topic ARN to the default whitelist file. `PR93 <>`_.
* bugfix: Fixed an issue on `psycopg2` to support all keywords. `PR91 <>`_.
* bugfix: Fixed an issue on `endSegment` when there is context missing. `ISSUE98 <>`_.
* bugfix: Fixed the package description rendered on PyPI. `PR101 <>`_.
* bugfix: Fixed an issue where `patch_all` could patch the same module multiple times. `ISSUE99 <>`_.
* bugfix: Fixed the `datetime` to `epoch` conversion on Windows OS. `ISSUE103 <>`_.
* bugfix: Fixed a wrong segment json key where it should be `sampling_rule_name` rather than `rule_name`.


* feature: Added support for `psycopg2`. `PR83 <>`_.
* feature: Added support for `pynamodb` >= 3.3.1. `PR88 <>`_.
* improvement: Improved stack trace recording when exception is thrown in decorators. `PR70 <>`_.
* bugfix: Argument `sampling_req` in LocalSampler `should_trace` method now becomes optional. `PR89 <>`_.
* bugfix: Fixed a wrong test setup and leftover poller threads in recorder unit test.


* bugfix: Fixed a issue where manually `begin_segment` might break when making sampling decisions. `PR82 <>`_.


* **Breaking**: The default sampler now launches background tasks to poll sampling rules from X-Ray backend. See the new default sampling strategy in more details here:
* **Breaking**: The `should_trace` function in the sampler now takes a dictionary for sampling rule matching.
* **Breaking**: The original sampling modules for local defined rules are moved from `models.sampling` to `models.sampling.local`.
* **Breaking**: The default behavior of `patch_all` changed to selectively patches libraries to avoid double patching. You can use `patch_all(double_patch=True)` to force it to patch ALL supported libraries. See more details on `ISSUE63 <>`_
* **Breaking**: The latest `botocore` that has new X-Ray service API `GetSamplingRules` and `GetSamplingTargets` are required.
* **Breaking**: Version 2.x doesn't support pynamodb and aiobotocore as it requires botocore >= 1.11.3 which isn’t currently supported by the pynamodb and aiobotocore libraries. Please continue to use version 1.x if you’re using pynamodb or aiobotocore until those haven been updated to use botocore > = 1.11.3.
* feature: Environment variable `AWS_XRAY_DAEMON_ADDRESS` now takes an additional notation in `tcp: udp:` to set TCP and UDP destination separately. By default it assumes a X-Ray daemon listening to both UDP and TCP traffic on ``.
* feature: Added MongoDB python client support. `PR65 <>`_.
* bugfix: Support binding connection in sqlalchemy as well as engine. `PR78 <>`_.
* bugfix: Flask middleware safe request teardown. `ISSUE75 <>`_.


* bugfix: Fixed an issue on PynamoDB patcher where the capture didn't handle client timeout.


* bugfix: Handle Aiohttp Exceptions as valid responses `PR59 <>`_.


* feature: Added Sqlalchemy parameterized query capture. `PR34 <>`_
* bugfix: Allow standalone sqlalchemy integrations without flask_sqlalchemy. `PR53 <>`_
* bugfix: Give up aiohttp client tracing when there is no open segment and LOG_ERROR is configured. `PR58 <>`_
* bugfix: Handle missing subsegment when rendering a Django template. `PR54 <>`_
* Typo fixes on comments and docs.


* Changed development status to `5 - Production/Stable` and removed beta tag.
* feature: Added S3 API parameters to the default whitelist.
* feature: Added new recorder APIs to add annotations/metadata.
* feature: The recorder now adds more runtime and version information to sampled segments.
* feature: Django, Flask and Aiohttp middleware now inject trace header to response headers.
* feature: Added a new API to configure maximum captured stack trace.
* feature: Modularized subsegments streaming logic and now it can be overriden with custom implementation.
* bugfix(**Breaking**): Subsegment `set_user` API is removed since this attribute is not supported by X-Ray back-end.
* bugfix: Fixed an issue where arbitrary fields in trace header being dropped when calling downstream.
* bugfix: Fixed a compatibility issue between botocore and httplib patcher. `ISSUE48 <>`_.
* bugfix: Fixed a typo in sqlalchemy decorators. `PR50 <>`_.
* Updated `README` with more usage examples.


* feature: Support aiohttp client tracing for aiohttp 3.x. `PR42 <>`_.
* feature: Use the official middleware pattern for Aiohttp ext. `PR29 <>`_.
* bugfix: Aiohttp middleware serialized URL values incorrectly. `PR37 <>`_
* bugfix: Don't overwrite plugins list on each `.configure` call. `PR38 <>`_
* bugfix: Do not swallow `return_value` when context is missing and `LOG_ERROR` is set. `PR44 <>`_
* bugfix: Loose entity name validation. `ISSUE36 <>`_
* bugfix: Fix PyPI project page being rendered incorrectly. `ISSUE30 <>`_


* feature: Add support for SQLAlchemy and Flask-SQLAlcemy. `PR14 <>`_.
* feature: Add support for PynamoDB calls to DynamoDB. `PR13 <>`_.
* feature: Add support for httplib calls. `PR19 <>`_.
* feature: Make streaming threshold configurable through public interface. `ISSUE21 <>`_.
* bugfix:  Drop invalid annotation keys and log a warning. `PR22 <>`_.
* bugfix:  Respect `with` statement on cursor objects in dbapi2 patcher. `PR17 <>`_.
* bugfix:  Don't throw error from built in subsegment capture when `LOG_ERROR` is set. `ISSUE4 <>`_.


* **Breaking**: AWS API parameter whitelist json file is moved to path `aws_xray_sdk/ext/resources/aws_para_whitelist.json` in `PR6 <>`_.
* Added aiobotocore/aioboto3 support and async function capture. `PR6 <>`_
* Added logic to removing segment/subsegment name invalid characters. `PR9 <>`_
* Temporarily disabled tests run on Django2.0. `PR10 <>`_
* Code cleanup. `PR11 <>`_


* Added aiohttp support. `PR3 <>`_


* The X-Ray SDK for Python is now an open source project. You can follow the project and submit issues and pull requests on GitHub:


* bugfix: Fixed an issue that caused the X-Ray recorder to omit the origin when recording segments with a service plugin. This caused the service's type to not appear on the service map in the X-Ray console.


* bugfix: Fixed an issue that caused all calls to Amazon DynamoDB tables to be grouped under a single node in the service map. With this update, each table gets a separate node.



* feature: Add Flask support
* feature: Add dynamic naming on segment name



* bugfix: The SDK has been released as a universal wheel