.. include:: ./shared.rst Datadog Python APM Client ========================= ``ddtrace`` is Datadog's Python APM client. It is used to profile code and trace requests as they flow across web servers, databases and microservices. This enables developers to have greater visibility into bottlenecks and troublesome requests in their application. Getting Started --------------- For a basic product overview: check out the `setup documentation`_. For details about developing and contributing: refer to the `development guide`_. For descriptions of the terminology of Datadog APM: take a look at the `official documentation`_. .. _`Supported Libraries`: Supported Libraries ------------------- We officially support Python 2.7, 3.5 and above. The versions listed are the versions that we have tested, but ``ddtrace`` can still be compatible with other versions of these libraries. If a version of a library you use is unsupported, feel free to contribute or request it by contacting support. .. |SUPPVER| replace:: Supported Version .. |AUTO| replace:: Automatically Instrumented +--------------------------------------------------+---------------+----------------+ | Integration | |SUPPVER| | |AUTO| [1]_ | +==================================================+===============+================+ | :ref:`aiobotocore` | >= 0.2.3 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`aiohttp` | >= 2.0 | Yes [2]_ | +--------------------------------------------------+---------------+----------------+ | :ref:`aiopg` | >= 0.12.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`algoliasearch` | >= 1.20.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`aredis` | >= 1.1.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`asgi` | >= 2.0 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`asyncio` | \* | Yes [5]_ | +--------------------------------------------------+---------------+----------------+ | :ref:`boto2` | >= 2.29.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`botocore` | >= 1.4.51 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`bottle` | >= 0.11 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`cassandra` | >= 3.5 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`celery` | >= 3.1 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`cherrypy` | >= 11.2.0 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`consul` | >= 0.7 | Yes [3]_ | +--------------------------------------------------+---------------+----------------+ | :ref:`django` | >= 1.8 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`djangorestframework ` | >= 3.4 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`dogpile.cache` | >= 0.6 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`elasticsearch` | >= 1.6 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`falcon` | >= 1.0 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`fastapi` | >= 0.51 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`flask` | >= 0.10 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`flask_cache` | >= 0.12 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`gevent` | >= 1.1 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`grpc` | >= 1.12.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`httplib` | \* | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`httpx` | >= 0.14.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`jinja2` | >= 2.7 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`kombu` | >= 4.0 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`mako` | >= 0.1.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`mariadb` | >= 1.0.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`molten` | >= 0.7.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`mongoengine` | >= 0.11 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`mysql-connector` | >= 2.1 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`mysqlclient ` | >= 1.3 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`psycopg2` | >= 2.7 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`pylibmc` | >= 1.4 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`pylons` | >= 0.9.6 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`pymemcache` | >= 1.3 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`pymongo` | >= 3.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`pynamodb` | >= 4.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`pyodbc` | >= 4.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`pyramid` | >= 1.7 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`pytest` | >= 4.0.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`redis` | >= 2.6 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`rediscluster` | >= 1.3.5 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`requests` | >= 2.08 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`rq` | >= 1.00 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`sanic` | >= 19.6.0 | Yes [4]_ | +--------------------------------------------------+---------------+----------------+ | :ref:`snowflake` | >= 2.0.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`sqlalchemy` | >= 1.0 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`sqlite` | \* | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`starlette` | >= 0.13.0 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`tornado` | >= 4.0 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`urllib3` | >= 1.22 | No | +--------------------------------------------------+---------------+----------------+ | :ref:`vertica` | >= 0.6 | Yes | +--------------------------------------------------+---------------+----------------+ | :ref:`wsgi` | \* | No | +--------------------------------------------------+---------------+----------------+ .. [1] Libraries that are automatically instrumented when the :ref:`ddtrace-run` command is used or the ``patch_all()`` method is called. Always use ``patch()`` and ``patch_all()`` as soon as possible in your Python entrypoint. .. [2] only third-party modules such as aiohttp_jinja2 .. [3] only the synchronous client .. [4] only in Python 3.7 and above. .. [5] Activating the legacy context provider is required in Python < 3.7. See :ref:`asyncio` for more details. Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. toctree:: :hidden: installation_quickstart configuration integrations basic_usage advanced_usage benchmarks contributing release_notes troubleshooting