Changelogs » Aws-xray-sdk

PyUp Safety actively tracks 232,000 Python packages for vulnerabilities and notifies you when to upgrade.



  * bugfix: asyncio.Task.current_task PendingDeprecation fix. `PR217 <>`_.
  * bugfix: Added proper TraceID in dummy segments. `PR223 <>`_.
  * improvement: Add testing for current Django versions. `PR200 <>`_.
  * improvement: IMDSv2 support for EC2 plugin. `PR226 <>`_.
  * improvement: Using instance doc to fetch EC2 metadata. Added 2 additional fields. `PR227 <>`_.
  * improvement: Added StaleBot. `PR228 <>`_.


  * bugfix: Downgrade Coverage to 4.5.4. `PR197 <>`_.
  * bugfix: Unwrap context provided to psycopg2.extensions.quote_ident. `PR198 <>`_.
  * feature: extension support as Bottle plugin. `PR204 <>`_.
  * bugfix: streaming_threshold not None check. `PR205 <>`_.
  * bugfix: Add support for Django 2.0 to 3.0. `PR206 <>`_.
  * bugfix: add puttracesegments to boto whitelist avoid a catch 22. `PR210 <>`_.
  * feature: Add patch support for pymysql. `PR215 <>`_.


  * 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