This project is a redistribution of the OpenTelemetry Distro for Python, preconfigured for use with AWS services. Please check out that project too to get a better understanding of the underlying internals. You won't see much code in this repository since we only apply some small configuration changes, and our OpenTelemetry friends takes care of the rest. The exception to this is support for Application Signals.
We provided a Python agent that can be attached to any application using a supported Python version and dynamically injects bytecode to capture telemetry from a number of popular libraries and frameworks. The telemetry data can be exported in a variety of formats. In addition, the agent and exporter can be configured via command line arguments or environment variables. The net result is the ability to gather telemetry data from a Python application without any code changes.
Check out the getting started documentation.
For the complete list of supported frameworks, please refer to the OpenTelemetry for Python documentation.
Please note that as per policy, we're providing support via GitHub on a best effort basis. However, if you have AWS Enterprise Support you can create a ticket and we will provide direct support within the respective SLAs.
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public github issue.
This project is licensed under the Apache-2.0 License.
This project ensures compatibility with the following supported Python versions: 3.8, 3.9, 3.10, 3.11
Amazon CloudWatch Application Signals components are designed to seamlessly work with all library instrumentations offered by OpenTelemetry Python auto-instrumentation. While upstream OpenTelemetry Python instrumentations are in beta, Application Signals components are stable, production ready and have also been tested for popular libraries/frameworks such as Django, Boto3, and others. We will prioritize backward compatibility for Application Signals components, striving to ensure that they remain functional even in the face of potential breaking changes introduced by OpenTelemetry upstream libraries. Please raise an issue if you notice Application Signals doesn't work for a particular OpenTelemetry supported library.