Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dynatrace-oss/oneagent-sdk-python-autoinstrumentation
autodynatrace, a python library that implements automatic instrumentation using the OneAgent SDK for Python
https://github.com/dynatrace-oss/oneagent-sdk-python-autoinstrumentation
instrumentation python
Last synced: about 2 hours ago
JSON representation
autodynatrace, a python library that implements automatic instrumentation using the OneAgent SDK for Python
- Host: GitHub
- URL: https://github.com/dynatrace-oss/oneagent-sdk-python-autoinstrumentation
- Owner: dynatrace-oss
- License: other
- Created: 2019-08-25T13:42:22.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-13T08:13:46.000Z (3 months ago)
- Last Synced: 2024-11-07T18:53:56.231Z (6 days ago)
- Topics: instrumentation, python
- Language: Python
- Homepage:
- Size: 187 KB
- Stars: 62
- Watchers: 11
- Forks: 29
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## autodynatrace - OneAgent-SDK-Python-AutoInstrumentation
[![Actions Status](https://github.com/dynatrace-oss/OneAgent-SDK-Python-AutoInstrumentation/workflows/Tests/badge.svg)](https://github.com/dynatrace-oss/OneAgent-SDK-Python-AutoInstrumentation/actions)
[![Downloads](https://pepy.tech/badge/autodynatrace)](https://pepy.tech/project/autodynatrace)Dynatrace provides a [powerful SDK](https://github.com/Dynatrace/OneAgent-SDK-for-Python) that can be used to achieve code level visibility and transaction tracing for applications written in multiple languages, including python. This project provides a library called *autodynatrace*, which is a wrapper around the OneAgent SDK for Python and allows you to instrument python applications with minimal code changes.
> **Warning**
> Autodynatrace is opensource and supported via github issues, this is not supported by Dynatrace via support tickets.### Usage
`pip install autodynatrace`
### Option 1 - Instrumentation without code changes
Add the environment variable `AUTOWRAPT_BOOTSTRAP=autodynatrace` to your python processes
### Option 2 - Semi-Auto Instrumentation
For most technologies, just import it in your code.
`import autodynatrace`
### Technologies supported:
- **aiohttp** (client)
- **asyncio** - Run with the environment variable `AUTODYNATRACE_INSTRUMENT_CONCURRENT=True`
- **bottle**
- **celery**
- **concurrent.futures**
- **confluent_kafka**
- **cx_Oracle**
- **django**
- **fastapi**
- **flask**
- **grpc** (client)
- **paramiko**
- **pika** (RabbitMQ)
- **psycopg2**
- **pymongo**
- **pysnmp**
- **redis**
- **ruxit** (Dynatrace plugin framework)
- **sqlalchemy**
- **subprocess**
- **suds**
- **starlette**
- **tornado**
- **urllib**
- **urllib3**
- **custom annotations**### Django
For Django, add `"autodynatrace.wrappers.django"` to `INSTALLED_APPS`
### Environment variables
* `AUTODYNATRACE_CAPTURE_HEADERS`: Default: `False`, set to `True` to capture request headers
* `AUTODYNATRACE_LOG_LEVEL`: Default `WARNING`
* `AUTODYNATRACE_FORKABLE`: Default `False`, set to `True` to [instrument forked processes](https://github.com/Dynatrace/OneAgent-SDK-for-Python#using-the-oneagent-sdk-for-python-with-forked-child-processes-only-available-on-linux). Use this for gunicorn/uwsgi
* `AUTODYNATRACE_VIRTUAL_HOST`: Overwrite the default Virtual Host for web frameworks
* `AUTODYNATRACE_APPLICATION_ID`: Overwrite the default Application Name for web frameworks
* `AUTODYNATRACE_CONTEXT_ROOT`: Overwrite the default Context Root for web frameworks
* `AUTODYNATRACE_CUSTOM_SERVICE_NAME`: Overwrite the custom service name (used by `@autodynatrace.trace`)
* `AUTODYNATRACE_CUSTOM_SERVICE_USE_FQN`: Default `False`, set to `True` to use fully qualified names for service and method names in custom traced services
* `AUTODYNATRACE_INSTRUMENT_`: If set to `False`, Disables the instrumentation for a specific lib, example: `AUTODYNATRACE_INSTRUMENT_CONCURRENT=False`, default is `True`### Support
For support using this open source project, please open a github issue explaining your issue and providing code examples, environment details