├── .sg └── utils │ └── .gitkeep ├── ddtrace ├── py.typed ├── _trace │ ├── __init__.py │ ├── utils_botocore │ │ └── __init__.py │ └── _limits.py ├── commands │ └── __init__.py ├── internal │ ├── __init__.py │ ├── iast │ │ └── __init__.py │ ├── appsec │ │ └── __init__.py │ ├── coverage │ │ └── __init__.py │ ├── datadog │ │ ├── __init__.py │ │ └── profiling │ │ │ ├── __init__.py │ │ │ ├── ddup │ │ │ └── test │ │ │ │ └── __init__.py │ │ │ ├── test │ │ │ └── .gitignore │ │ │ ├── _types.py │ │ │ └── cmake │ │ │ └── tools │ │ │ └── infer_checksums.txt │ ├── evp_proxy │ │ └── __init__.py │ ├── flare │ │ └── __init__.py │ ├── processor │ │ └── __init__.py │ ├── settings │ │ └── __init__.py │ ├── dist_computing │ │ └── __init__.py │ ├── opentelemetry │ │ ├── __init__.py │ │ └── constants.py │ ├── peer_service │ │ └── __init__.py │ ├── ci_visibility │ │ ├── api │ │ │ └── __init__.py │ │ └── telemetry │ │ │ └── __init__.py │ ├── datastreams │ │ └── schemas │ │ │ ├── __init__.py │ │ │ └── schema.py │ ├── test_visibility │ │ └── __init__.py │ ├── remoteconfig │ │ ├── products │ │ │ └── __init__.py │ │ └── constants.py │ ├── _utils.pxd │ ├── third-party.tar.gz │ ├── _stdint.h │ └── _rand.pyi ├── testing │ ├── __init__.py │ └── internal │ │ ├── __init__.py │ │ ├── retries.py │ │ ├── pytest │ │ └── __init__.py │ │ └── errors.py ├── bootstrap │ └── __init__.py ├── errortracking │ ├── __init__.py │ └── _handled_exceptions │ │ └── __init__.py ├── propagation │ └── __init__.py ├── appsec │ ├── _iast │ │ ├── _ast │ │ │ └── __init__.py │ │ ├── _patches │ │ │ └── __init__.py │ │ ├── sampling │ │ │ └── __init__.py │ │ ├── _evidence_redaction │ │ │ └── __init__.py │ │ ├── _taint_tracking │ │ │ └── _vendor │ │ │ │ ├── __init__.py │ │ │ │ └── pybind11 │ │ │ │ ├── __init__.py │ │ │ │ ├── pybind11 │ │ │ │ └── py.typed │ │ │ │ └── tools │ │ │ │ └── __init__.py │ │ ├── _stacktrace.pyi │ │ ├── sources │ │ │ └── __init__.py │ │ └── taint_sinks │ │ │ └── __init__.py │ ├── _api_security │ │ └── __init__.py │ ├── _python_info │ │ └── __init__.py │ ├── _exploit_prevention │ │ └── __init__.py │ └── __init__.py ├── contrib │ ├── internal │ │ ├── __init__.py │ │ ├── asgi │ │ │ └── __init__.py │ │ ├── bottle │ │ │ └── __init__.py │ │ ├── celery │ │ │ └── __init__.py │ │ ├── falcon │ │ │ └── __init__.py │ │ ├── valkey │ │ │ └── __init__.py │ │ ├── wsgi │ │ │ └── __init__.py │ │ ├── aiohttp │ │ │ └── __init__.py │ │ ├── cherrypy │ │ │ └── __init__.py │ │ ├── ddtrace_api │ │ │ └── __init__.py │ │ ├── flask_cache │ │ │ └── __init__.py │ │ ├── pylibmc │ │ │ └── __init__.py │ │ ├── pyramid │ │ │ └── __init__.py │ │ ├── requests │ │ │ ├── __init__.py │ │ │ └── constants.py │ │ ├── sqlalchemy │ │ │ └── __init__.py │ │ ├── botocore │ │ │ ├── services │ │ │ │ └── __init__.py │ │ │ └── constants.py │ │ ├── kombu │ │ │ └── constants.py │ │ ├── coverage │ │ │ ├── constants.py │ │ │ └── data.py │ │ ├── jinja2 │ │ │ └── constants.py │ │ ├── mako │ │ │ └── constants.py │ │ ├── pytest_bdd │ │ │ └── constants.py │ │ ├── pytest_benchmark │ │ │ └── __init__.py │ │ └── asyncio │ │ │ └── __init__.py │ └── integration_registry │ │ └── __init__.py ├── debugging │ ├── _origin │ │ └── __init__.py │ ├── _probe │ │ └── __init__.py │ ├── _exception │ │ └── __init__.py │ ├── _function │ │ └── __init__.py │ └── _products │ │ ├── __init__.py │ │ └── code_origin │ │ └── __init__.py ├── llmobs │ ├── _evaluators │ │ ├── __init__.py │ │ └── ragas │ │ │ └── __init__.py │ └── _integrations │ │ └── constants.py ├── vendor │ ├── packaging │ │ └── __init__.py │ ├── ply │ │ └── __init__.py │ └── jsonpath_ng │ │ └── __init__.py ├── profiling │ ├── bootstrap │ │ └── __init__.py │ ├── __init__.py │ └── collector │ │ └── _memalloc_reentrant.cpp └── ext │ ├── consul.py │ ├── mongo.py │ ├── memcached.py │ ├── azure_eventhubs.py │ ├── azure_servicebus.py │ └── test_visibility │ └── _constants.py ├── tests ├── __init__.py ├── cache │ └── __init__.py ├── meta │ └── __init__.py ├── appsec │ ├── __init__.py │ ├── appsec │ │ ├── __init__.py │ │ ├── rules-bad.json │ │ ├── api_security │ │ │ └── __init__.py │ │ ├── blocking_template_json.json │ │ └── blocking_template_html.html │ ├── iast │ │ ├── __init__.py │ │ ├── fixtures │ │ │ ├── ast │ │ │ │ ├── __init__.py │ │ │ │ ├── str │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── empty_file.py │ │ │ │ │ ├── invented_extension.cppy │ │ │ │ │ ├── function_no_str.py │ │ │ │ │ ├── function_str.py │ │ │ │ │ ├── class_str.py │ │ │ │ │ └── non_utf8_content.py │ │ │ │ ├── add_operator │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── basic.py │ │ │ │ ├── other │ │ │ │ │ └── globals_builtin.py │ │ │ │ └── io │ │ │ │ │ ├── module_bytesio.py │ │ │ │ │ ├── module_stringio.py │ │ │ │ │ └── function_bytesio.py │ │ │ ├── aspects │ │ │ │ ├── __init__.py │ │ │ │ ├── str │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── empty_file.py │ │ │ │ │ ├── invented_extension.cppy │ │ │ │ │ ├── function_no_str.py │ │ │ │ │ ├── function_str.py │ │ │ │ │ ├── class_str.py │ │ │ │ │ └── non_utf8_content.py │ │ │ │ └── add_operator │ │ │ │ │ └── basic.py │ │ │ ├── entrypoint │ │ │ │ └── __init__.py │ │ │ ├── secure_marks │ │ │ │ └── __init__.py │ │ │ ├── taint_sinks │ │ │ │ ├── __init__.py │ │ │ │ └── path_traversal_test_file.txt │ │ │ ├── __init__.py │ │ │ ├── integration │ │ │ │ ├── __init__.py │ │ │ │ └── print_str.py │ │ │ └── loader.py │ │ ├── secure_marks │ │ │ └── __init__.py │ │ ├── taint_sinks │ │ │ └── __init__.py │ │ ├── taint_tracking │ │ │ └── __init__.py │ │ ├── _ast │ │ │ └── __init__.py │ │ └── aspects │ │ │ └── __init__.py │ ├── iast_memcheck │ │ ├── __init__.py │ │ └── fixtures │ │ │ └── __init__.py │ ├── iast_packages │ │ ├── __init__.py │ │ └── packages │ │ │ └── __init__.py │ ├── integrations │ │ ├── __init__.py │ │ ├── fixtures │ │ │ └── __init__.py │ │ ├── django_tests │ │ │ ├── __init__.py │ │ │ └── django_app │ │ │ │ ├── __init__.py │ │ │ │ └── templates │ │ │ │ ├── index.html │ │ │ │ └── index_safe.html │ │ ├── fastapi_tests │ │ │ └── __init__.py │ │ ├── flask_tests │ │ │ └── __init__.py │ │ ├── packages_tests │ │ │ └── __init__.py │ │ └── pygoat_tests │ │ │ ├── __init__.py │ │ │ └── fixtures │ │ │ └── pygoat.xz │ ├── contrib_appsec │ │ ├── __init__.py │ │ ├── django_app │ │ │ ├── __init__.py │ │ │ └── app │ │ │ │ └── __init__.py │ │ ├── flask_app │ │ │ └── __init__.py │ │ └── db.sqlite3 │ └── iast_aggregated_memcheck │ │ └── __init__.py ├── commands │ ├── __init__.py │ ├── bootstrap │ │ ├── __init__.py │ │ └── sitecustomize.py │ ├── ddtrace_minimal.py │ ├── ddtrace_run_argv.py │ └── ddtrace_run_enabled.py ├── contrib │ ├── rq │ │ └── __init__.py │ ├── aiohttp │ │ ├── __init__.py │ │ └── app │ │ │ ├── __init__.py │ │ │ ├── templates │ │ │ ├── __init__.py │ │ │ └── template.jinja2 │ │ │ └── statics │ │ │ └── empty.txt │ ├── aiopg │ │ └── __init__.py │ ├── aredis │ │ └── __init__.py │ ├── asgi │ │ └── __init__.py │ ├── asyncio │ │ └── __init__.py │ ├── asyncpg │ │ └── __init__.py │ ├── avro │ │ ├── __init__.py │ │ └── schemas │ │ │ ├── users.avro │ │ │ └── advanced_users.avro │ ├── boto │ │ └── __init__.py │ ├── bottle │ │ └── __init__.py │ ├── celery │ │ ├── __init__.py │ │ └── run_tasks.py │ ├── consul │ │ └── __init__.py │ ├── crewai │ │ └── __init__.py │ ├── dbapi │ │ └── __init__.py │ ├── django │ │ ├── __init__.py │ │ ├── soap │ │ │ └── __init__.py │ │ ├── django_app │ │ │ └── __init__.py │ │ ├── django1_app │ │ │ └── __init__.py │ │ ├── templates │ │ │ ├── basic.html │ │ │ ├── custom_dispatch.html │ │ │ └── users_list.html │ │ └── compat.py │ ├── falcon │ │ ├── __init__.py │ │ └── app │ │ │ └── __init__.py │ ├── fastapi │ │ └── __init__.py │ ├── futures │ │ └── __init__.py │ ├── gevent │ │ ├── __init__.py │ │ ├── monkeypatch.py │ │ └── wrong_program_gevent.py │ ├── graphql │ │ └── __init__.py │ ├── grpc │ │ └── __init__.py │ ├── httplib │ │ └── __init__.py │ ├── httpx │ │ └── __init__.py │ ├── jinja2 │ │ ├── __init__.py │ │ └── templates │ │ │ ├── base.html │ │ │ └── template.html │ ├── kafka │ │ ├── __init__.py │ │ └── meta.properties │ ├── kombu │ │ └── __init__.py │ ├── litellm │ │ └── __init__.py │ ├── logbook │ │ └── __init__.py │ ├── logging │ │ └── __init__.py │ ├── loguru │ │ └── __init__.py │ ├── mako │ │ ├── __init__.py │ │ └── templates │ │ │ └── template.html │ ├── mariadb │ │ └── __init__.py │ ├── mcp │ │ └── __init__.py │ ├── molten │ │ └── __init__.py │ ├── mysql │ │ └── __init__.py │ ├── mysqldb │ │ └── __init__.py │ ├── openai │ │ ├── __init__.py │ │ └── test_data │ │ │ ├── mask.png │ │ │ ├── image.png │ │ │ ├── english_audio.mp3 │ │ │ └── french_audio.mp3 │ ├── psycopg │ │ └── __init__.py │ ├── pylibmc │ │ └── __init__.py │ ├── pymongo │ │ └── __init__.py │ ├── pymysql │ │ └── __init__.py │ ├── pyodbc │ │ └── __init__.py │ ├── pyramid │ │ ├── __init__.py │ │ └── app │ │ │ └── __init__.py │ ├── pytest │ │ └── __init__.py │ ├── redis │ │ └── __init__.py │ ├── sanic │ │ └── __init__.py │ ├── sqlite3 │ │ └── __init__.py │ ├── tornado │ │ ├── __init__.py │ │ └── web │ │ │ ├── __init__.py │ │ │ ├── statics │ │ │ └── empty.txt │ │ │ └── templates │ │ │ ├── item.html │ │ │ ├── exception.html │ │ │ ├── page.html │ │ │ └── list.html │ ├── urllib3 │ │ └── __init__.py │ ├── valkey │ │ └── __init__.py │ ├── vertica │ │ └── __init__.py │ ├── wsgi │ │ └── __init__.py │ ├── aiobotocore │ │ └── __init__.py │ ├── aiokafka │ │ └── __init__.py │ ├── aiomysql │ │ └── __init__.py │ ├── anthropic │ │ ├── __init__.py │ │ └── images │ │ │ └── bits.png │ ├── asynctest │ │ └── __init__.py │ ├── aws_lambda │ │ └── __init__.py │ ├── botocore │ │ └── __init__.py │ ├── cherrypy │ │ ├── __init__.py │ │ └── test.conf │ ├── dbapi_async │ │ └── __init__.py │ ├── ddtrace_api │ │ └── __init__.py │ ├── django_hosts │ │ ├── __init__.py │ │ └── django_app │ │ │ ├── __init__.py │ │ │ └── urls.py │ ├── dramatiq │ │ └── __init__.py │ ├── flask_cache │ │ └── __init__.py │ ├── google_adk │ │ └── __init__.py │ ├── google_genai │ │ └── __init__.py │ ├── graphene │ │ └── __init__.py │ ├── grpc_aio │ │ └── __init__.py │ ├── gunicorn │ │ └── __init__.py │ ├── langchain │ │ └── __init__.py │ ├── langgraph │ │ └── __init__.py │ ├── protobuf │ │ ├── __init__.py │ │ └── schemas │ │ │ ├── __init__.py │ │ │ └── other_message.proto │ ├── psycopg2 │ │ ├── __init__.py │ │ └── fixtures │ │ │ └── __init__.py │ ├── pydantic_ai │ │ └── __init__.py │ ├── pymemcache │ │ ├── __init__.py │ │ └── autopatch │ │ │ └── __init__.py │ ├── pynamodb │ │ └── __init__.py │ ├── pytest_bdd │ │ └── __init__.py │ ├── pytest_flaky │ │ └── __init__.py │ ├── rediscluster │ │ └── __init__.py │ ├── requests │ │ └── __init__.py │ ├── snowflake │ │ └── __init__.py │ ├── sqlalchemy │ │ └── __init__.py │ ├── starlette │ │ └── __init__.py │ ├── structlog │ │ └── __init__.py │ ├── subprocess │ │ └── __init__.py │ ├── unittest │ │ └── __init__.py │ ├── vertexai │ │ └── __init__.py │ ├── yaaredis │ │ └── __init__.py │ ├── aiohttp_jinja2 │ │ └── __init__.py │ ├── algoliasearch │ │ └── __init__.py │ ├── azure_eventhubs │ │ └── __init__.py │ ├── azure_functions │ │ └── __init__.py │ ├── azure_servicebus │ │ └── __init__.py │ ├── dogpile_cache │ │ └── __init__.py │ ├── elasticsearch │ │ └── __init__.py │ ├── flask_autopatch │ │ ├── __init__.py │ │ └── test_templates │ │ │ ├── err.html │ │ │ └── test.html │ ├── openai_agents │ │ └── __init__.py │ ├── pytest_benchmark │ │ └── __init__.py │ ├── djangorestframework │ │ ├── __init__.py │ │ └── app │ │ │ └── __init__.py │ ├── integration_registry │ │ ├── __init__.py │ │ └── registry_update_helpers │ │ │ └── __init__.py │ ├── azure_functions_eventhubs │ │ └── __init__.py │ ├── azure_functions_servicebus │ │ └── __init__.py │ ├── django_celery │ │ └── app │ │ │ └── demoapp │ │ │ ├── __init__.py │ │ │ ├── migrations │ │ │ └── __init__.py │ │ │ ├── views.py │ │ │ └── models.py │ └── flask │ │ ├── static │ │ └── test.txt │ │ └── test_templates │ │ ├── err.html │ │ ├── test.html │ │ ├── test_insecure.html │ │ └── render_err.html ├── coverage │ ├── __init__.py │ ├── included_path │ │ ├── rpa │ │ │ ├── __init__.py │ │ │ ├── rpa │ │ │ │ ├── __init__.py │ │ │ │ ├── late_import_const.py │ │ │ │ └── normal_import_const.py │ │ │ ├── rpb │ │ │ │ ├── __init__.py │ │ │ │ ├── late_import_const.py │ │ │ │ └── normal_import_const.py │ │ │ ├── late_import_const.py │ │ │ └── normal_import_const.py │ │ ├── rpb │ │ │ ├── __init__.py │ │ │ ├── late_import_const.py │ │ │ └── normal_import_const.py │ │ ├── late_import_const.py │ │ ├── normal_import_const.py │ │ ├── nsa │ │ │ ├── late_import_const.py │ │ │ ├── normal_import_const.py │ │ │ ├── nsa │ │ │ │ ├── late_import_const.py │ │ │ │ └── normal_import_const.py │ │ │ └── nsb │ │ │ │ ├── late_import_const.py │ │ │ │ └── normal_import_const.py │ │ ├── nsb │ │ │ ├── late_import_const.py │ │ │ └── normal_import_const.py │ │ └── constants_dynamic.py │ └── excluded_path │ │ └── excluded.py ├── debugging │ ├── __init__.py │ ├── live │ │ └── __init__.py │ ├── probe │ │ └── __init__.py │ ├── exception │ │ └── __init__.py │ ├── function │ │ └── __init__.py │ ├── run_module │ │ └── __init__.py │ ├── signal │ │ └── __init__.py │ ├── .coveragerc │ └── exploration │ │ └── output.py ├── internal │ ├── __init__.py │ ├── symbol_db │ │ └── __init__.py │ ├── lazy.pyi │ ├── peer_service │ │ └── __init__.py │ ├── service_name │ │ └── __init__.py │ ├── namespace_test │ │ └── ns_module.py │ └── lazy.py ├── llmobs │ ├── __init__.py │ └── static_files │ │ ├── empty.csv │ │ ├── good_dataset.csv │ │ └── good_dataset_pipe_separated.csv ├── profiling │ ├── __init__.py │ ├── exporter │ │ └── __init__.py │ ├── native_tests │ ├── uwsgi-app.py │ ├── collector │ │ └── conftest.py │ └── run.py ├── runtime │ └── __init__.py ├── submod │ ├── __init__.py │ └── import_test.py ├── telemetry │ └── __init__.py ├── tracer │ ├── __init__.py │ ├── runtime │ │ └── __init__.py │ ├── utils_botocore │ │ └── __init__.py │ ├── utils_inferred_spans │ │ └── __init__.py │ └── _version.py ├── vendor │ └── __init__.py ├── ci_visibility │ └── __init__.py ├── datastreams │ ├── __init__.py │ └── schemas │ │ └── __init__.py ├── errortracking │ ├── __init__.py │ ├── module │ │ └── submodule │ │ │ └── __init__.py │ └── third_party │ │ ├── setup.py │ │ └── numpy.py ├── integration │ ├── __init__.py │ └── hello.py ├── openfeature │ └── __init__.py ├── opentelemetry │ └── __init__.py ├── test_module │ └── __init__.py ├── testing │ ├── __init__.py │ └── internal │ │ ├── __init__.py │ │ └── coverage │ │ └── __init__.py └── snapshots │ ├── tests.contrib.psycopg.test_psycopg_snapshot.test_connect_default.json │ ├── tests.contrib.psycopg2.test_psycopg_snapshot.test_connect_default.json │ └── tests.contrib.django.test_django_snapshots.test_asgi_200_simple_app.json ├── benchmarks ├── __init__.py ├── base │ ├── requirements_scenario.txt │ └── requirements.txt ├── flask_simple │ └── requirements_scenario.txt ├── flask_sqli │ └── requirements_scenario.txt ├── errortracking_flask_sqli │ └── requirements_scenario.txt ├── otel_span │ └── requirements_scenario.txt ├── otel_sdk_span │ └── requirements_scenario.txt ├── bm │ └── __init__.py ├── django_simple │ └── requirements_scenario.txt ├── tracer │ └── config.yaml ├── appsec_iast_django_startup │ └── requirements.in ├── errortracking_django_simple │ └── requirements_scenario.txt ├── iast_ast_patching │ └── config.yaml └── packages_package_for_root_module_mapping │ └── config.yaml ├── min_compatible_versions.csv ├── hooks ├── pre-commit │ ├── 01-black │ ├── 02-run-mypy │ ├── 03-run-ruff │ ├── 03-run-codespell │ └── 04-run-clang-format └── scripts │ └── run-ruff.sh ├── lib-injection └── sources │ ├── min_compatible_versions.csv │ └── telemetry-forwarder.sh ├── scripts ├── import-analysis │ ├── requirements.txt │ └── requirements-cycles.txt ├── iast │ └── requirements.txt ├── profiles │ └── flask-simple │ │ └── app │ │ └── requirements.txt └── .cmake-format ├── .gitconfig ├── ci └── coverage │ └── requirements.in ├── docker └── .python-version ├── commitlint.config.js ├── docs ├── benchmarks.rst ├── favicon.ico └── pytorch_metric.png ├── releasenotes └── notes │ ├── py39-5a422b73ba563189.yaml │ ├── rq-98bc7f540452e948.yaml │ ├── mariadb-8e7bc94a0d1b8f02.yaml │ ├── django-4-support-eadd627959b9344e.yaml │ ├── wsgi-30613a9c30834225.yaml │ ├── asm-collect-header-ip-494f489b1778b6ed.yaml │ ├── django-2ebd5565ee27d4d1.yaml │ ├── feature-fastapi-ccce6171c5e1ccde.yaml │ ├── libdatadog-v15.0.0-1004e5bb7f452d9a.yaml │ ├── support-flask-2-659163726a5f66aa.yaml │ ├── add-aredis-support-416f890073cc7113.yaml │ ├── aiopg-0160-67bac7e073e4bbf9.yaml │ ├── asm-propagate-user-id-1b1f596f7442fd34.yaml │ ├── feature-flask-6744ed2003376d74.yaml │ ├── feature-molten-041abc52f37eed37.yaml │ ├── fix-pytest-bdd-6-88421928af50dc42.yaml │ ├── jinja2-3-ec7df3666745f29b.yaml │ ├── remove-span-todict-98117485031335cd.yaml │ ├── tracer-write-dc2f9d95c0e4d11f.yaml │ ├── waf_1.22.0-05b1dfbaa0d47059.yaml │ ├── add-grpc-aio-support-c59efa5557aeea8f.yaml │ ├── agent-url-path-f48aa4949b954dd5.yaml │ ├── asm_fix_headers-9bd1585200be8a2a.yaml │ ├── deprecate-pin-app-de153348b61a9905.yaml │ ├── flask-241a6dd8c17e2c12.yaml │ ├── mongo-2f086c64dbbc8be1.yaml │ ├── parent-id-abd4f7776f54399c.yaml │ ├── prof-proto4-391ce18af277ec54.yaml │ ├── python310-cd0cbde016d9dced.yaml │ ├── redis-asyncio-4b0b6a2a9d8f58c0.yaml │ ├── yaaredis-integration-9cf0d99f0261a209.yaml │ ├── add-aiomysql-d7803bcb9a1b1777.yaml │ ├── asm-detect-attack-on-body-3fe45bc066dcc680.yaml │ ├── collect-response-headers-8cfb734cc1e73cb1.yaml │ ├── configure-a39313ef4fed9028.yaml │ ├── ddtags-space-82407d0d3f0426cd.yaml │ ├── encoding-strict-types-b2bbd0844b28168a.yaml │ ├── endpoint-counts-6fa40e642b44b78c.yaml │ ├── feature-flask-4bdb2b839fada0fb.yaml │ ├── fix-grpc-client-meta-1145db1fec07255f.yaml │ ├── fix-starlette-unpatch-24829144874afc6d.yaml │ ├── add-dm-trace-tag-471f5ee0303a8497.yaml │ ├── add-windows-3.13-build-f36c6cf5a74e14de.yaml │ ├── asm-fix-reset-wsgi-input-035e0a7d917af2b2.yaml │ ├── feature-aiohttp-23084fcf8e34ad0a.yaml │ ├── feature-bottle-44cadc4aabaa750d.yaml │ ├── feature-pyramid-aa3d4c3361861753.yaml │ ├── feature-urllib3-integration-ab30709c8a39934c.yaml │ ├── fix-aiobotocore-9eeac808a3bf0f63.yaml │ ├── fix-grpc-method-93038a476c9e95aa.yaml │ ├── fix-sanic-21-2d24b817e010ed84.yaml │ ├── futures-f485da98a50c9d50.yaml │ ├── mysql-python-removal-f0578e89590aaf2f.yaml │ ├── package_arm-1beb3c4a7d6f945a.yaml │ ├── perf-profiler-lower-overhead-f2c2e7c12c337196.yaml │ ├── pin-furo-ddtrace-docs-1ceb42ce17f7a1db.yaml │ ├── profiler-windows-support-6faa2ecfdf4b97e8.yaml │ ├── profiling-3.13-e62c18bff5de1218.yaml │ ├── profiling-python-3.11-40056cf7a4313cec.yaml │ ├── pymong-4-9-support-83f7c613e5e009e6.yaml │ ├── slice-aspect-leak-95e264c4f1aa851c.yaml │ ├── upgrade-libdatadog-v16-0-3-c47ce9b03c69cb63.yaml │ ├── wrapt_2-42f935eac8adaac8.yaml │ ├── add-itr-unittest-dce1864da8d6e843.yaml │ ├── aiohttp_jinja2-fa35ccf6fc42814c.yaml │ ├── aiokafka-dsm-support-fe2cb858c43b68df.yaml │ ├── algoliasearch-dangling-ref-e7a5086104d1761b.yaml │ ├── api10-ed802d03b6067b57.yaml │ ├── asm-feat-detect-attack-on-pylons-body-593fb0819259e6ad.yaml │ ├── asm-fix-ipaddress-actorip-only-on-attack-c118a0560c0c0119.yaml │ ├── asm-taint-grpc-messages-187537707bff7021.yaml │ ├── build-deploy-py39-wheels-6524f77277e3c788.yaml │ ├── current-span-reset-a860bbbad3acda5c.yaml │ ├── detect-attack-on-flask-body-9305779e1c804b24.yaml │ ├── detect-attacks-on-path-params-d6d06c22573d22e8.yaml │ ├── django-view-mro-check-782374fb9c427305.yaml │ ├── doc-remove-sqlparse-9afa8b0ab3e510b3.yaml │ ├── feat-openai-v1-support-cec20e0157462b53.yaml │ ├── fix-elasticsearch-a3f89a915ccc36c4.yaml │ ├── fix-gevent-autopatching-7d77beebd4698da2.yaml │ ├── fix-grpc-target-0a1daf38516be79f.yaml │ ├── fix-otel-docs-formatting-1-5e555fa29a0c4ba4.yaml │ ├── fix-trace_id_lock-profiling-585779e8713144f3.yaml │ ├── flask_caching-dc23b94171041b4f.yaml │ ├── httplib-3b8917c90d162170.yaml │ ├── lib-inject-base-image-dffa9a9579a9350d.yaml │ ├── llmobs-https-proxy-9ffc06b9f87df81b.yaml │ ├── potential-race-endpoints-b8592670cdcbf023.yaml │ ├── profiling-heap-enabled-c755d2c42871e930.yaml │ ├── redis-asyncio-client-name-b3f7bb35536d25bc.yaml │ ├── remove-aioredis-3ebab9a4d3a2fc8f.yaml │ ├── session_fingerprint-b20cefb1ae3e24dc.yaml │ ├── support-sanic-21.9.0-6c5de52c832f9dcc.yaml │ ├── aiohttp-remove-1.x-7a899e50dff73357.yaml │ ├── asm-add-user-information-to-traces-27658759829e7782.yaml │ ├── asm-grpc-treats-support-025582704f96dc7d.yaml │ ├── asm-send-waf-metrics-over-telemetry-4208c7412e55cccd.yaml │ ├── dbapi-ctx-manager-008915d487d9f50d.yaml │ ├── django-404-214280e31b72571c.yaml │ ├── dogpile-cc205f8abf149360.yaml │ ├── enable-aredis-default-ec2280b4681392b8.yaml │ ├── feat-symdb-enabled-by-default-25eebb43fc8c5a0d.yaml │ ├── fingerprinting-f285687dd35085ed.yaml │ ├── fix-attribute-error-in-flask-2.2.0-94524c33b005d48a.yaml │ ├── fix-django-empty-middleware-056f9c75ad963f1f.yaml │ ├── fix-http-url-200fca099f41ce49.yaml │ ├── fix-psutil-macos-0cd7d0f93b34e3e4.yaml │ ├── fix-psycopg-parse-dsn-f645bc9f056305c7.yaml │ ├── fix-span-type-web-20122b5c57c50341.yaml │ ├── flask-caching-c23ec5c1218a8bf3.yaml │ ├── lib-injection-gsutil-f8cd44af4b361abd.yaml │ ├── profiling-fix-uds-ebf0ea0587c8a23c.yaml │ ├── psycopg-before-27-removal-d6e551e47038abde.yaml │ ├── pytest-fix-xfail-unsafe-access-f579fef50d5bd4fa.yaml │ ├── span-link-getter-setters-08ff8b2e476091ae.yaml │ ├── support-async-redis-cluster-3447583f1a117df6.yaml │ ├── traced-session-1f2134ac99449b91.yaml │ ├── tracer-flares-fixes-10c1ed70d444fc9a.yaml │ ├── upgrade-min-aws-lambda-f9d9d31cf1f8685f.yaml │ ├── add-span-get-tags-metrics-7969ba7843dcc24d.yaml │ ├── add-support-for-aiobotocore-1-x-2-x-611d93a3ec362489.yaml │ ├── asgi-bc983a8dfffe823e.yaml │ ├── asm-boto-denylist-9ea0dee3a33fff7c.yaml │ ├── asm-fix-python-2-error-reading-ddwaf-rules-d3653031f2ba84ba.yaml │ ├── asm-pylons-detect-attacks-on-cookies-ddda4822bde49a25.yaml │ ├── asm-pylons-report-http-method-d4a21ba111e75edd.yaml │ ├── asm-pylons-report-http-raw-uri-6a5f2c2351aaab6d.yaml │ ├── asm-support-in-app-waf-metrics-report-4528e2b2574268cd.yaml │ ├── django-bug-fix-5cc969608b325c66.yaml │ ├── do-not-patch-bytesio-b16ccc16f36e8b67.yaml │ ├── feat-debugging-py311-support-2160a5590048c7c3.yaml │ ├── fix-disabled-memory-leak-c793801e11c45bfe.yaml │ ├── fix-git-version-extraction-8db3a639976e725c.yaml │ ├── fix-metadata-redundancy-afc4dca3c5bb4a5a.yaml │ ├── fix-sqlite3-backup-bf92c698567237b9.yaml │ ├── graphql-measured-d512e43de27d7ae3.yaml │ ├── httpx-service-ensure-text-03dbf31d2ff29fc2.yaml │ ├── iast-langchain-0.1.0-e437ea90fe66ad31.yaml │ ├── kafka-lag-support-data-streams-c6b7aed85bf2cf14.yaml │ ├── langchain-lcel-tool-tagging-af55b56cfa21ffa1.yaml │ ├── lib-injection-user-19a5b5516c060d8b.yaml │ ├── llmobs-url-override-5d791534021f66a9.yaml │ ├── profiler-protobuf-421-bf20b8e42ba3ad4c.yaml │ ├── pymongo-add-service-name-config-option-f4eb81539b2d39dc.yaml │ ├── remote-trace-tags-3e4d8c87afb18b86.yaml │ ├── remove-payload-submodule-58fac4aaf3d4f5da.yaml │ ├── runtime-metrics-runtime-error-33e2d4cc17cf4aca.yaml │ ├── update-tornado-support-5c87ee2d79ae54c4.yaml │ ├── wsgi-73cf1d35043e7fef.yaml │ ├── 313-ddtracerun-e34ef8d7496091b3.yaml │ ├── add-debug-logs-sampling-2b163de7c992fe0b.yaml │ ├── asm-add-http-route-for-flask-8b13c721e2f7543b.yaml │ ├── asm-memleaks-0bd0a25284dd1b9b.yaml │ ├── asm-pylons-detect-attacks-on-HTTP-query-9f68009da8051bc0.yaml │ ├── correct-type-annotations-2ee30779966960b6.yaml │ ├── deprecate-span-tracer-master-6c8666cf49ee4f4a.yaml │ ├── feat-pylibmc-support-add-command-8c3545bfd7ac7c9b.yaml │ ├── feat-submit-langchain-tool-spans-e7f76291dfa1efe5.yaml │ ├── fix-dd-origin-py2-7bb39ed9e45e2131.yaml │ ├── fix-django-correct-legacy-resource-c27c7402b6b0be37.yaml │ ├── fix-encode-tagset-value-2b8bb877a88bc75a.yaml │ ├── fix-flask-non-string-view-args-ed0283ddb1541e27.yaml │ ├── fix-iast-slow-import-when-not-needed-8cf1317095842135.yaml │ ├── fix-logger-children-a5dddf8abbf7c159.yaml │ ├── fix-sanic-dont-send-error-traces-on-non-500s-b194927b887ad9d9.yaml │ ├── fix-subprocess-debug-logging-d6eb35359abdbda5.yaml │ ├── freezegun-remove-44312810d30f9e0b.yaml │ ├── grpc-client-measured-span-aa043d35bfe71238.yaml │ ├── init-dramatiq-integration-8b882a3e9921208e.yaml │ ├── lib-inject-permissions-8222a09585eb5350.yaml │ ├── opentelemetry-support-span-events-66c79465a3f68180.yaml │ ├── pin-osx-deployment-version-c33b207ada285263.yaml │ ├── profiling-fix-newline-error-8d4d10ed61143e16.yaml │ ├── profiling-libdd-windows-0e80f0facac09221.yaml │ ├── pymongo-double-patching-topology-dd90eda48daa051c.yaml │ ├── rcm-validations-162716c50ea90f1b.yaml │ ├── removing_api_security_metrics-4b6a6ba8643b5ab3.yaml │ ├── runtimeid-39dfdf1e0c1af45d.yaml │ ├── tornado-none-bug-85faed75c859f5e5.yaml │ ├── upgrade_waf_value_regex_obfuscator-b62a7e68bdfa6b98.yaml │ ├── wsgi-fix-generator-exit-b3effeb222673a06.yaml │ ├── add-http-route-to-pyramid-23eab91880ac8e0e.yaml │ ├── add-pytest-benchmark-support-71c6505ca4b202f3.yaml │ ├── asm-avoid-subprocess-iast-import-2e4b354d5880de40.yaml │ ├── asm-configure-sensitive-data-obfuscator-4bf70dcccb9f6350.yaml │ ├── asm-new-gprc-server-propagation-89812a5e161fe0f6.yaml │ ├── asm-pylons-detect-attacks-on-path-params-760837978a2e3f32.yaml │ ├── bump-llmobs-5mb-617c24b81a2db2eg.yaml │ ├── case_insensitive_matching-ee91217a6274e675.yaml │ ├── cherrypy-first-version-89893f512b2fa083.yaml │ ├── deprecate-http-server-config-82e5e9b9c7ac0024.yaml │ ├── django-request-uri-safe-guards-fdd8bd664374ded1.yaml │ ├── drop-gevent-10-438387fecc241e60.yaml │ ├── feat-co-in-product-enablement-6b70fc52d62721fa.yaml │ ├── feat-collect-user-agent-630b2c10f83ac063.yaml │ ├── feat-detect-attack-on-xml-body-878215f0d3d1a64d.yaml │ ├── feat-er-in-product-enablement-253418007f82a19b.yaml │ ├── feat-span-decoration-c04a7aa0c98d52f6.yaml │ ├── feat-support-global-tags-in-runtime-metrics-58fe01b78b7f9cbe.yaml │ ├── fix-appsec-deprecated-import-8e834665d0b1e5d5.yaml │ ├── fix-django-db-postgres-7aa62a1c3aff647d.yaml │ ├── fix-ipc-valid-tmp-dir-063d8abcc1835747.yaml │ ├── fix-mypy-py2-redis-4c8d3b4e461c6074.yaml │ ├── fix-ssi-telemetry-events-a0a01ad0b6ef63b5.yaml │ ├── fix.urllib3.integration-610312498fcdce86.yaml │ ├── flask-codes-f0841d78ec847807.yaml │ ├── gevent-pynamodb-fix-72ac7017e51fd4f9.yaml │ ├── google-sdk-denylist-0619f1734507019a.yaml │ ├── lib-injection-314-80c9ea0f0d0f3658.yaml │ ├── libddwaf-1.0.18-update-61c1513f3e632195.yaml │ ├── opentracer-remove-b1883d26ea035c50.yaml │ ├── otel-operation-name-7a2bccb294aed8cd.yaml │ ├── patch-on-import-httplib-f98bad4b73cee387.yaml │ ├── perf-celery-reduced-overheads-6afe03acf1af703f.yaml │ ├── prf-functions_for_code-9634ef79190978cf.yaml │ ├── profiler-fix-ddup-threads-1f76f44a6536876e.yaml │ ├── profiling-314-support-bc850ac5330c27fc.yaml │ ├── profiling-fix-async-b44fdc577a467a40.yaml │ ├── profiling-resource-name-fix-5f73526a307e8b40.yaml │ ├── remove-apptypes-76c78d46c1792863.yaml │ ├── snowflake-feature-add-sfqid-1142e1c991e42247.yaml │ ├── update-lambda-logs-to-debug-6139084ba50e75bb.yaml │ ├── utils-remove-merge-dicts-9252805c864677f8.yaml │ ├── add-buddy-works-metadata-extraction-988f215f36ddf88b.yaml │ ├── add-datadog-trace-tag-propagation-f69736976107f1c2.yaml │ ├── add-django-channels-support-44aefaa21961adff.yaml │ ├── asm-avoid-json-decode-error-31479891110bcb55.yaml │ ├── asm-gprc-not-none-788b4b435b931a11.yaml │ ├── asm-insecure-cookies-response-3c95331da890709e.yaml │ ├── bump-traceback-limit-4b7702bc8f771d65.yaml │ ├── capture-xml-parsing-errors-e6c8c761ed026ce3.yaml │ ├── custom_scanners-56cead2502735f2b.yaml │ ├── dbm-support-sql-queries-with-the-type-bytes-30fb4b75ea2f8cf8.yaml │ ├── denylist-extend-more-f0d96917c50d43cf.yaml │ ├── disable-internal-tag-propagation-dff3e799fb056584.yaml │ ├── django-9ce233836fca5d93.yaml │ ├── enable-distributed-tracing-rq-4aaa0d4ae84381ee.yaml │ ├── exploit_prevention_sqli-c34e1047af3c08f2.yaml │ ├── feat-add-azure-functions-integration-108911bfe1e5f081.yaml │ ├── feature-ciapp-detect-code-owners-for-PyTest-tests-f8f66db2dc02ae91.yaml │ ├── feature-injectr-trace-sqs-send-message-035dc3300db0cad0.yaml │ ├── filter-git-url-source-code-12722a027a6fa071.yaml │ ├── fix-cmake-dep-f25774b77cb7a795.yaml │ ├── fix-django-str-tags-ad4f0b9e2d0eff12.yaml │ ├── fix-health-metrics-tags-61cb3d8369cfe402.yaml │ ├── fix-jinja2-non-str-template-name-4cb2aa7cda15828a.yaml │ ├── fix-langchain-vision-apis-58e4de9b52198e43.yaml │ ├── fix-lib-injection-zombie-dc16ca6c8bf50edb.yaml │ ├── fix-oci-denylist-080592ca52e45681.yaml │ ├── fix-sanic-non-str-args-4d1b0f506bee3436.yaml │ ├── fix-undefined-var-in-otel-docs-508ff00a82264aef.yaml │ ├── fix-warning-import-54de769abd54f7b6.yaml │ ├── grpc-fix-interceptors-f596e028ef9dbcd5.yaml │ ├── iast-fix-awsgi-368c173e1f012400.yaml │ ├── iast-new-pyobject-check-6aecf9c4f22e2ae9.yaml │ ├── iast-segfaults-fix-d25c5c132dd8482e.yaml │ ├── langchain-runnable-lambda-cec8e99164d081d1.yaml │ ├── lib-injection-non-root-981fd87f97d3e552.yaml │ ├── profiling-allow-collector-disablement-0b0fb2acadc114a6.yaml │ ├── profiling-no-flush-on-fork-c6c2b3c2d27a9a32.yaml │ ├── profiling-task-pprof-3afb83e36a63aeaf.yaml │ ├── pymongo-4.0.2-1f5d2b6af5c158d2.yaml │ ├── pytyped-1a3fed96165afef1.yaml │ ├── stack_traces_for_iast-cd2c008168f6181e.yaml │ ├── support-3-11-celery-39053a6ccb7de942.yaml │ ├── threethirteen-botocore-ee2431d065f99d7b.yaml │ ├── waf_update_to_1.21.0-2f77adaf9ecce679.yaml │ ├── PCF-container-UUID-0f65eed47e42f4ad.yaml │ ├── add-aiohttp-split-by-domain-f8f3242025c96cc1.yaml │ ├── add-requirements-json-038073d722697e32.yaml │ ├── add-support-for-redis-py-cluster-265c66546f843efa.yaml │ ├── address-noisy-rcm-warnings-62eb36fb64e0f28f.yaml │ ├── agent-sample-rate-39e5ad8039c675b9.yaml │ ├── aiopg-version-update-b10995a944fb5f91.yaml │ ├── api10_redirect-d7863891c7cc8d5f.yaml │ ├── asm-fix-empty-ranges-decode-38aa73230a0e2a19.yaml │ ├── asm-upgrade-libddwaf-cbebe158731bf7d9.yaml │ ├── avoid-wrapt-two-fd3b8ad3057343ba.yaml │ ├── block_id-551e443afd917aa6.yaml │ ├── ci-error-79b5f3fae44269bb.yaml │ ├── disable-multiple-assign-02565491d5d74083.yaml │ ├── encode-bytes-974d93cec3725455.yaml │ ├── feat-azure-functions-timer-trigger-f47914ec46fc30ca.yaml │ ├── feat-debugging-span-probes-c441d7eb186f5f20.yaml │ ├── fix-botocore-missing-response-meta-e80c1cfb34ec0881.yaml │ ├── fix-encoding-exception-ff50914f97554744.yaml │ ├── fix-grpc-intercept-channel-not-unpatched-5a4252256801ad09.yaml │ ├── fix-iast-add-psycopg-to-denylist-a88961e04125e674.yaml │ ├── fix-iast-mem-leak-25b7ae83cea24bd6.yaml │ ├── fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml │ ├── fix-json-encoder-bytes-d35121d00f2b8caf.yaml │ ├── fix-msgpack-errors-3fcf9f77a77c9786.yaml │ ├── fix-profiler-recorder-rrlock-3c16195829e29acd.yaml │ ├── fix-profiler-release-gil-internal-mutation-2f0fc19f83759a72.yaml │ ├── fix-trace-payload-counts-dba81b9fa3ef51b7.yaml │ ├── flask-fix-query-encoding-ef177f8c9c7a679a.yaml │ ├── iast-python-312-2eaf8161a9f9d6e7.yaml │ ├── make-span-links-pickable-d57b92508f5d3a74.yaml │ ├── openai-responses-apm-e20c66473f3da435.yaml │ ├── otel-map-reserved-9f038de8b87ee9df.yaml │ ├── pin-protobuf-v4-357193706afd46e6.yaml │ ├── profiling-add-asyncio-locks-support-fc556221de2e0d34.yaml │ ├── profiling-add-lock-with-f75908e35a70ab71.yaml │ ├── profiling-macos-x86-64-0b89414501e91446.yaml │ ├── profiling-remove-profile-fbf8e32388899b05.yaml │ ├── profiling-remove-uncaught-exception-be09cc1bca6b7af6.yaml │ ├── profiling-update-echion-d2ff9f14c9279d4a.yaml │ ├── pyramid-config-7db0cb8f089c9417.yaml │ ├── pytest-ddtrace-auto-e6c09074a4b0af3d.yaml │ ├── pytest-disable-note-dababc18228d1f85.yaml │ ├── python-3.7-deprecation-warning-c6c00bcafda1523f.yaml │ ├── remote-header-tags-76e5cbea308b87a1.yaml │ ├── remote-logs-injection-b078bb1b9bd424eb.yaml │ ├── remove-core-settings-c2c7518876a1ca20.yaml │ ├── remove-deprecated-code-integrations-ae6970bbf9b10047.yaml │ ├── span-args-remove-5feecae6cf00537f.yaml │ ├── span-pointers-aws-s3-copyobject-3d8ab886b32695b9.yaml │ ├── starlette-root-path-bugfix-ad372cc320f384dd.yaml │ ├── umap-learn-denylist-b7c55f42f2408c24.yaml │ ├── websocket-span-pointers-25e07939aa75527a.yaml │ ├── add-httpx-integration-6e2493b2ea605203.yaml │ ├── add-ipv6-support-for-hostnames-0fb700a1ef7ed57e.yaml │ ├── add-pytest-bdd-integration-ce14f6be6d63ba01.yaml │ ├── add-sqs-lambda-context-support-5062a60d81055ed7.yaml │ ├── add-start-end-lines-for-pytest-08bc7d463b9f100e.yaml │ ├── add-start-end-unittest-515222961e619ac2.yaml │ ├── api10_status_code-deb7bbc4c0c2a68e.yaml │ ├── asyncio-lock-14b10fa0f1e43ed3.yaml │ ├── crashtracker-receiver-env-f54ab26496183a6b.yaml │ ├── disable_threats_grpc-f33dde76ef815787.yaml │ ├── django-set-usr-id-by-default-b99c0f3e6cf530a2.yaml │ ├── django_signup_instrumentation-c7f7db227105c851.yaml │ ├── elasticsearch-0a97722c93d66016.yaml │ ├── extended-heartbeat-acc361de5bdbb872.yaml │ ├── feat-runtime-distribution-e27687432f7ee4a5.yaml │ ├── fix-block-request-without-span-c5ea72a06bd389b3.yaml │ ├── fix-botocore-env-vars-89b106aadf2bba1d.yaml │ ├── fix-cors-errors-0fa947a1a583ad0c.yaml │ ├── fix-django-db-connections-b9b98a7b49f27c5f.yaml │ ├── fix-er-include-nonlocals-bbeecfbbbde35496.yaml │ ├── fix-gevent-support-_operator-163719336cc8980a.yaml │ ├── fix-git-unshallow-84b5b81db6e79287.yaml │ ├── fix-keep-copyreg-29c28bcc854e13bb.yaml │ ├── fix-lib-injection-denylist-d5478ecfef90fbcd.yaml │ ├── fix-lib-injection-version-support-ae2ff3a79ac1f6f2.yaml │ ├── fix-psycopg-async-iteration-d48a62f8aa597457.yaml │ ├── fix-sanic-resource-name-e9f5b0417f3cda13.yaml │ ├── fix-span-link-ids-e8161faabb39f5ee.yaml │ ├── fix-span-unnecessary-gc.yaml │ ├── fix-unittest-data-not-initialized-4c08983165adcfc1.yaml │ ├── fix_packages_oserror-b8da190cea6997de.yaml │ ├── iast-cmdi-langchain-863be95c1160e50f.yaml │ ├── monkey-import-exceptions-eb9557ea85a921fe.yaml │ ├── non-active-span-3398e88b19eb94c3.yaml │ ├── oai-sys-prompt-46909baa4e9b44c1.yaml │ ├── pin-protobuf-version-e06dd99a8fa47196.yaml │ ├── profiling-dynamic-agent-url-1f285029201620b8.yaml │ ├── profiling-fix-deadlock-gevent-1e6192828238def3.yaml │ ├── profiling-threading-tracing-6877348333bbaa80.yaml │ ├── profiling-threadlink-lock-27df798c36ed64e6.yaml │ ├── pymongo-disabled-tracer-bug-fix-d7782296afe5c1a9.yaml │ ├── rc_asm_features_fix-56fb35d0ca6c5d69.yaml │ ├── redact-sensitive-querystrings-in-http-url-522461022535a1e2.yaml │ ├── removed_ddtrace.util.py-0d0f48aefa6d9779.yaml │ ├── suspicious_attacker_blocking-0331938836dd0bdf.yaml │ ├── telemetry-logs-validate-unique-messages-5a020f0531952e0c.yaml │ ├── add-code-coverage-tag-ef5c183d3f29d5c3.yaml │ ├── add-datastreams-monitoring-schema-tracking-784ba3f9f3c368d2.yaml │ ├── asm-avoid-idna-d724dce73afafa93.yaml │ ├── asm-ddtracerun-info-bf2380675fe1c721.yaml │ ├── celerybeat-64b7b984461c6d12.yaml │ ├── circular-psycopg3-import-c27df66875895fc7.yaml │ ├── data-streams-public-api-9655d5b0c7f6f26e.yaml │ ├── deprecate-dd_trace_global_tags-b3d29bddc3dffe0c.yaml │ ├── deprecate-span-pprint-master-101afa039a6bbaee.yaml │ ├── docs-gunicorn-bd0db8c3c25c7deb.yaml │ ├── es-pin-tags-7f1d5d312a91ef0d.yaml │ ├── feat-azure-functions-http-distributed-tracing-79a15a88e1a1993a.yaml │ ├── feat-azure-functions-service-bus-trigger-cf816fdbb710f970.yaml │ ├── feat-bedrock-embedding-d44ac603bdb83a7b.yaml │ ├── fix-asm-request-context-partial-flushing-7c45aaf55e836261.yaml │ ├── fix-debugger-write-retries-e097ff1f0836531b.yaml │ ├── fix-django-cache-unicode-5777a6775fa312c4.yaml │ ├── fix-dont-log-remoteconfig-stacktrace-ab7d1db057233454.yaml │ ├── fix-futures-args-a206048e19889ad7.yaml │ ├── fix-itr-test-skipping-e4b99a581138a8fd.yaml │ ├── fix-kafka-commit-offsets-d86039c29e04259e.yaml │ ├── fix-lib-injection-sys-argv-fefc775a4a262d86.yaml │ ├── fix-lib-injection-telemetry-4fbea5e41ee1ff3e.yaml │ ├── fix-profilier-unicode-py27-170d078ba5712f2d.yaml │ ├── fix-redis-command-stack-2ef2be7f28c2e9ee.yaml │ ├── fix-stream-response-django-cd92556cc2a082bb.yaml │ ├── fix-verify-url-7d0dd6b0ab53306f.yaml │ ├── iast-fastapi-header-injection-ce4805c91e87ebe2.yaml │ ├── langchain-drop-v0.0-support-745a0572da799e4e.yaml │ ├── libinjection-denytlist-modules-a5e0407ed6b8166a.yaml │ ├── llmobs-add-dd-tags-f2203cb49cb531af.yaml │ ├── no-linux-32bit-cd10b5e02e83674b.yaml │ ├── profiling-asyncio-lock-with-ef209edcdd346093.yaml │ ├── profiling-fix-ddup-memleak-ca7e73197890cfd2.yaml │ ├── profiling-fix-on-cpu-tasks-unwinding-0ac6efcad8150f1c.yaml │ ├── profiling-gevent-support-older-8e1eb89e36ba8c14.yaml │ ├── profiling-move-echion-to-dd-trace-py-6a231b502eed899c.yaml │ ├── profiling-tags-api-f4d732d3c31ee2cf.yaml │ ├── profiling-track-task-gevent-threading-lock-313ac1db779e624a.yaml │ ├── py38-deprecate-34dc9ef0416b0381.yaml │ ├── rcm-fix-disable-f45787a4e6576f53.yaml │ ├── remove-deprecations-from-pin-a700ae0cb6d51d03.yaml │ ├── wsgi-move-request-modifer-code-809521ff9000ea64.yaml │ ├── Fix-version-constraints-for-Py27-e3a0069f43a84c16.yaml │ ├── actions_from_RC-08744fc9e91a8c02.yaml │ └── add-aws-payload-tagging-d01f0033c7e1f5c0.yaml ├── .claude └── CLAUDE.md ├── .github └── codeql-config.yml ├── NOTICE ├── MANIFEST.in └── .gitlab └── scripts └── get-riot-hashes.sh /.sg/utils/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /benchmarks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/cache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/meta/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/_trace/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/testing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /min_compatible_versions.csv: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/rq/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/coverage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/internal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/llmobs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/profiling/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/runtime/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/submod/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/telemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tracer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/vendor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/bootstrap/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/errortracking/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/iast/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/propagation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/appsec/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ci_visibility/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiohttp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiopg/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aredis/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/asgi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/asyncio/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/asyncpg/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/avro/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/boto/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/bottle/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/celery/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/consul/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/crewai/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/dbapi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/falcon/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/fastapi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/futures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/gevent/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/graphql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/grpc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/httplib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/httpx/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/jinja2/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/kafka/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/kombu/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/litellm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/logbook/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/logging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/loguru/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/mako/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/mariadb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/mcp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/molten/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/mysql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/mysqldb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/openai/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/psycopg/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pylibmc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pymongo/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pymysql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pyodbc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pyramid/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pytest/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/redis/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/sanic/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/sqlite3/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/tornado/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/urllib3/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/valkey/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/vertica/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/wsgi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/datastreams/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/live/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/probe/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/errortracking/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/integration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/openfeature/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/opentelemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_module/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tracer/runtime/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_ast/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/debugging/_origin/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/debugging/_probe/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/appsec/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/coverage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/datadog/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/evp_proxy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/flare/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/processor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/llmobs/_evaluators/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/testing/internal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/testing/internal/retries.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/vendor/packaging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast_memcheck/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast_packages/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/commands/bootstrap/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiobotocore/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiohttp/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiokafka/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiomysql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/anthropic/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/asynctest/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aws_lambda/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/botocore/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/cherrypy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/dbapi_async/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/ddtrace_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django/soap/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django_hosts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/dramatiq/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/flask_cache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/google_adk/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/google_genai/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/graphene/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/grpc_aio/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/gunicorn/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/langchain/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/langgraph/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/protobuf/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/psycopg2/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pydantic_ai/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pymemcache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pynamodb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pytest_bdd/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pytest_flaky/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/rediscluster/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/requests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/snowflake/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/sqlalchemy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/starlette/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/structlog/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/subprocess/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/tornado/web/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/unittest/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/vertexai/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/yaaredis/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/datastreams/schemas/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/exception/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/function/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/run_module/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/debugging/signal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/internal/symbol_db/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/llmobs/static_files/empty.csv: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/profiling/exporter/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /benchmarks/base/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/_trace/utils_botocore/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_api_security/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_patches/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/sampling/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_python_info/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/asgi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/bottle/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/celery/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/falcon/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/valkey/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/wsgi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/debugging/_exception/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/debugging/_function/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/debugging/_products/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/dist_computing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/opentelemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/peer_service/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/profiling/bootstrap/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/testing/internal/pytest/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/appsec/rules-bad.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/appsec/contrib_appsec/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/secure_marks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/taint_sinks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiohttp_jinja2/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/algoliasearch/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/azure_eventhubs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/azure_functions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/azure_servicebus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django/django_app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/dogpile_cache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/elasticsearch/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/flask_autopatch/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/openai_agents/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/protobuf/schemas/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/psycopg2/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pytest_benchmark/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/internal/lazy.pyi: -------------------------------------------------------------------------------- 1 | new_value: int 2 | -------------------------------------------------------------------------------- /tests/internal/peer_service/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/internal/service_name/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tracer/utils_botocore/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_exploit_prevention/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/integration_registry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/aiohttp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/cherrypy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/ddtrace_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/flask_cache/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/pylibmc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/pyramid/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/requests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/sqlalchemy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/ci_visibility/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/datadog/profiling/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/datastreams/schemas/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/test_visibility/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/llmobs/_evaluators/ragas/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hooks/pre-commit/01-black: -------------------------------------------------------------------------------- 1 | ../scripts/run-fmt.sh -------------------------------------------------------------------------------- /tests/appsec/appsec/api_security/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/empty_file.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/taint_tracking/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast_memcheck/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast_packages/packages/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiohttp/app/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django/django1_app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/djangorestframework/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/integration_registry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/pymemcache/autopatch/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/rpa/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/rpb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/errortracking/module/submodule/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tracer/utils_inferred_spans/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_evidence_redaction/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/debugging/_products/code_origin/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/errortracking/_handled_exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/ci_visibility/telemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/remoteconfig/products/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hooks/pre-commit/02-run-mypy: -------------------------------------------------------------------------------- 1 | ../scripts/run-mypy.sh -------------------------------------------------------------------------------- /hooks/pre-commit/03-run-ruff: -------------------------------------------------------------------------------- 1 | ../scripts/run-ruff.sh -------------------------------------------------------------------------------- /lib-injection/sources/min_compatible_versions.csv: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/contrib_appsec/django_app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/contrib_appsec/flask_app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/empty_file.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/entrypoint/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/secure_marks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/taint_sinks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast_aggregated_memcheck/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/django_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/fastapi_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/flask_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/packages_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/integrations/pygoat_tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/azure_functions_eventhubs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/azure_functions_servicebus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django_celery/app/demoapp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django_hosts/django_app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/djangorestframework/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/flask/static/test.txt: -------------------------------------------------------------------------------- 1 | Hello Flask 2 | -------------------------------------------------------------------------------- /tests/testing/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_taint_tracking/_vendor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/botocore/services/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/internal/datadog/profiling/ddup/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/contrib_appsec/django_app/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/add_operator/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/django/templates/basic.html: -------------------------------------------------------------------------------- 1 | some content 2 | -------------------------------------------------------------------------------- /tests/internal/namespace_test/ns_module.py: -------------------------------------------------------------------------------- 1 | # 🍬 🍬 🍬 2 | -------------------------------------------------------------------------------- /hooks/pre-commit/03-run-codespell: -------------------------------------------------------------------------------- 1 | ../scripts/run-codespell.sh -------------------------------------------------------------------------------- /scripts/import-analysis/requirements.txt: -------------------------------------------------------------------------------- 1 | pyrometry~=0.0.2 2 | -------------------------------------------------------------------------------- /tests/appsec/iast/_ast/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | -------------------------------------------------------------------------------- /tests/appsec/integrations/django_tests/django_app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/aiohttp/app/statics/empty.txt: -------------------------------------------------------------------------------- 1 | Static file 2 | -------------------------------------------------------------------------------- /tests/contrib/django_celery/app/demoapp/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/contrib/flask/test_templates/err.html: -------------------------------------------------------------------------------- 1 | 2 | oh {{no 3 | -------------------------------------------------------------------------------- /tests/contrib/mako/templates/template.html: -------------------------------------------------------------------------------- 1 | Hello ${name}! 2 | -------------------------------------------------------------------------------- /tests/contrib/tornado/web/statics/empty.txt: -------------------------------------------------------------------------------- 1 | Static file 2 | -------------------------------------------------------------------------------- /tests/contrib/tornado/web/templates/item.html: -------------------------------------------------------------------------------- 1 | * {{ item }} 2 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [commit] 2 | template = .github/COMMIT_TEMPLATE.txt 3 | -------------------------------------------------------------------------------- /benchmarks/flask_simple/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | flask==3.0.0 2 | -------------------------------------------------------------------------------- /benchmarks/flask_sqli/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | flask==3.0.0 2 | -------------------------------------------------------------------------------- /ci/coverage/requirements.in: -------------------------------------------------------------------------------- 1 | coverage 2 | codecov 3 | diff_cover 4 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_stacktrace.pyi: -------------------------------------------------------------------------------- 1 | def get_info_frame(): ... 2 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_taint_tracking/_vendor/pybind11/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hooks/pre-commit/04-run-clang-format: -------------------------------------------------------------------------------- 1 | ../scripts/run-clang-format.sh -------------------------------------------------------------------------------- /tests/appsec/iast/aspects/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | -------------------------------------------------------------------------------- /tests/commands/bootstrap/sitecustomize.py: -------------------------------------------------------------------------------- 1 | CORRECT_IMPORT = True 2 | -------------------------------------------------------------------------------- /tests/contrib/aiohttp/app/templates/template.jinja2: -------------------------------------------------------------------------------- 1 | {{text}} 2 | -------------------------------------------------------------------------------- /tests/contrib/django_hosts/django_app/urls.py: -------------------------------------------------------------------------------- 1 | urlpatterns = [] 2 | -------------------------------------------------------------------------------- /tests/contrib/flask/test_templates/test.html: -------------------------------------------------------------------------------- 1 | hello {{world}} 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/late_import_const.py: -------------------------------------------------------------------------------- 1 | LATE = "late" 2 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_taint_tracking/_vendor/pybind11/pybind11/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/_taint_tracking/_vendor/pybind11/tools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/kombu/constants.py: -------------------------------------------------------------------------------- 1 | DEFAULT_SERVICE = "kombu" 2 | -------------------------------------------------------------------------------- /ddtrace/internal/datadog/profiling/test/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/contrib/flask_autopatch/test_templates/err.html: -------------------------------------------------------------------------------- 1 | 2 | oh {{no 3 | -------------------------------------------------------------------------------- /tests/contrib/integration_registry/registry_update_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/coverage/included_path/normal_import_const.py: -------------------------------------------------------------------------------- 1 | NORMAL = "normal" 2 | -------------------------------------------------------------------------------- /tests/profiling/native_tests: -------------------------------------------------------------------------------- 1 | ../../ddtrace/internal/datadog/profiling/test -------------------------------------------------------------------------------- /tests/submod/import_test.py: -------------------------------------------------------------------------------- 1 | from ddtrace import doesnotexist # noqa 2 | -------------------------------------------------------------------------------- /benchmarks/errortracking_flask_sqli/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | flask==3.0.0 2 | -------------------------------------------------------------------------------- /benchmarks/otel_span/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | opentelemetry-api==1.24.0 2 | -------------------------------------------------------------------------------- /ddtrace/profiling/__init__.py: -------------------------------------------------------------------------------- 1 | from .profiler import Profiler # noqa:F401 2 | -------------------------------------------------------------------------------- /hooks/scripts/run-ruff.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | hatch -v run lint:ruff check . 3 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/integration/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | -------------------------------------------------------------------------------- /tests/contrib/django_celery/app/demoapp/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /tests/contrib/falcon/app/__init__.py: -------------------------------------------------------------------------------- 1 | from .app import get_app # noqa:F401 2 | -------------------------------------------------------------------------------- /tests/contrib/flask/test_templates/test_insecure.html: -------------------------------------------------------------------------------- 1 | hello {{world|safe}} 2 | -------------------------------------------------------------------------------- /tests/contrib/flask_autopatch/test_templates/test.html: -------------------------------------------------------------------------------- 1 | hello {{world}} 2 | -------------------------------------------------------------------------------- /tests/tracer/_version.py: -------------------------------------------------------------------------------- 1 | version = "my_test_version_from_generated_file" 2 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/coverage/constants.py: -------------------------------------------------------------------------------- 1 | PCT_COVERED_KEY = "pct_coverage" 2 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/jinja2/constants.py: -------------------------------------------------------------------------------- 1 | DEFAULT_TEMPLATE_NAME = "" 2 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/mako/constants.py: -------------------------------------------------------------------------------- 1 | DEFAULT_TEMPLATE_NAME = "" 2 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/requests/constants.py: -------------------------------------------------------------------------------- 1 | DEFAULT_SERVICE = "requests" 2 | -------------------------------------------------------------------------------- /ddtrace/testing/internal/errors.py: -------------------------------------------------------------------------------- 1 | class SetupError(Exception): 2 | pass 3 | -------------------------------------------------------------------------------- /docker/.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | 3.8 3 | 3.9 4 | 3.10 5 | 3.11 6 | 3.13 7 | 3.14 8 | -------------------------------------------------------------------------------- /tests/contrib/flask/test_templates/render_err.html: -------------------------------------------------------------------------------- 1 | hello {{object.method()}} 2 | -------------------------------------------------------------------------------- /tests/contrib/pyramid/app/__init__.py: -------------------------------------------------------------------------------- 1 | from .web import create_app # noqa:F401 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsa/late_import_const.py: -------------------------------------------------------------------------------- 1 | NSA_LATE = "nsa_late" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsb/late_import_const.py: -------------------------------------------------------------------------------- 1 | NSB_LATE = "nsb_late" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/late_import_const.py: -------------------------------------------------------------------------------- 1 | RPA_LATE = "rpa_late" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpb/late_import_const.py: -------------------------------------------------------------------------------- 1 | RPB_LATE = "rpb_late" 2 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = {extends: ['@commitlint/config-conventional']} 2 | -------------------------------------------------------------------------------- /docs/benchmarks.rst: -------------------------------------------------------------------------------- 1 | .. _benchmarks: 2 | 3 | .. include:: ../benchmarks/README.rst 4 | -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/docs/favicon.ico -------------------------------------------------------------------------------- /scripts/iast/requirements.txt: -------------------------------------------------------------------------------- 1 | memray==1.12.0 2 | anyio 3 | pydantic 4 | pydantic-settings -------------------------------------------------------------------------------- /scripts/profiles/flask-simple/app/requirements.txt: -------------------------------------------------------------------------------- 1 | flask==2.3.2 2 | gunicorn==20.1.0 3 | -------------------------------------------------------------------------------- /tests/appsec/appsec/blocking_template_json.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": "world" 3 | } 4 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/invented_extension.cppy: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /tests/contrib/jinja2/templates/base.html: -------------------------------------------------------------------------------- 1 | Message: {% block content %}{% endblock %} 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsa/normal_import_const.py: -------------------------------------------------------------------------------- 1 | NSA_NORMAL = "nsa_normal" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsb/normal_import_const.py: -------------------------------------------------------------------------------- 1 | NSB_NORMAL = "nsb_normal" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/normal_import_const.py: -------------------------------------------------------------------------------- 1 | RPA_NORMAL = "rpa_normal" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpb/normal_import_const.py: -------------------------------------------------------------------------------- 1 | RPB_NORMAL = "rpb_normal" 2 | -------------------------------------------------------------------------------- /tests/integration/hello.py: -------------------------------------------------------------------------------- 1 | if __name__ == "__main__": 2 | print("Test success") 3 | -------------------------------------------------------------------------------- /tests/testing/internal/__init__.py: -------------------------------------------------------------------------------- 1 | """Tests for ddtrace.testing.internal modules.""" 2 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/invented_extension.cppy: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/taint_sinks/path_traversal_test_file.txt: -------------------------------------------------------------------------------- 1 | path_traversal_test_file -------------------------------------------------------------------------------- /tests/contrib/tornado/web/templates/exception.html: -------------------------------------------------------------------------------- 1 | {% module ModuleThatDoesNotExist() %} 2 | -------------------------------------------------------------------------------- /tests/contrib/tornado/web/templates/page.html: -------------------------------------------------------------------------------- 1 | This is a rendered page called "{{ name }}" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsa/nsa/late_import_const.py: -------------------------------------------------------------------------------- 1 | NSA_NSA_LATE = "nsa_nsa_late" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsa/nsb/late_import_const.py: -------------------------------------------------------------------------------- 1 | NSA_NSB_LATE = "nsa_nsb_late" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/rpa/late_import_const.py: -------------------------------------------------------------------------------- 1 | RPA_RPA_LATE = "rpa_rpa_late" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/rpb/late_import_const.py: -------------------------------------------------------------------------------- 1 | RPA_RPB_LATE = "rpa_rpb_late" 2 | -------------------------------------------------------------------------------- /tests/snapshots/tests.contrib.psycopg.test_psycopg_snapshot.test_connect_default.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/snapshots/tests.contrib.psycopg2.test_psycopg_snapshot.test_connect_default.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /ddtrace/appsec/__init__.py: -------------------------------------------------------------------------------- 1 | # this module must not load any other unsafe appsec module directly 2 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/integration/print_str.py: -------------------------------------------------------------------------------- 1 | def print_str(): 2 | print(str("hi")) 3 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsa/nsa/normal_import_const.py: -------------------------------------------------------------------------------- 1 | NSA_NSA_NORMAL = "nsa_nsa_normal" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/nsa/nsb/normal_import_const.py: -------------------------------------------------------------------------------- 1 | NSA_NSB_NORMAL = "nsa_nsb_normal" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/rpa/normal_import_const.py: -------------------------------------------------------------------------------- 1 | RPA_RPA_NORMAL = "rpa_rpa_normal" 2 | -------------------------------------------------------------------------------- /tests/coverage/included_path/rpa/rpb/normal_import_const.py: -------------------------------------------------------------------------------- 1 | RPA_RPB_NORMAL = "rpa_rpb_normal" 2 | -------------------------------------------------------------------------------- /tests/snapshots/tests.contrib.django.test_django_snapshots.test_asgi_200_simple_app.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /docs/pytorch_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/docs/pytorch_metric.png -------------------------------------------------------------------------------- /releasenotes/notes/py39-5a422b73ba563189.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | prelude: > 3 | Add support for Python 3.9 4 | -------------------------------------------------------------------------------- /releasenotes/notes/rq-98bc7f540452e948.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add rq integration. 5 | -------------------------------------------------------------------------------- /scripts/import-analysis/requirements-cycles.txt: -------------------------------------------------------------------------------- 1 | betsy @ git+https://github.com/p403n1x87/betsy.git 2 | -------------------------------------------------------------------------------- /tests/contrib/django/templates/custom_dispatch.html: -------------------------------------------------------------------------------- 1 | custom dispatch {{ dispatch_call_counter }} 2 | -------------------------------------------------------------------------------- /tests/coverage/excluded_path/excluded.py: -------------------------------------------------------------------------------- 1 | def excluded_called(a: int, b: int): 2 | return (a, b) 3 | -------------------------------------------------------------------------------- /.claude/CLAUDE.md: -------------------------------------------------------------------------------- 1 | 2 | @../AGENTS.md 3 | -------------------------------------------------------------------------------- /benchmarks/otel_sdk_span/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | opentelemetry-api==1.24.0 2 | opentelemetry-sdk==1.24.0 -------------------------------------------------------------------------------- /scripts/.cmake-format: -------------------------------------------------------------------------------- 1 | line_width = 120 2 | autosort = True 3 | max_subargs_per_line: 3 4 | tab_size = 4 5 | -------------------------------------------------------------------------------- /tests/appsec/appsec/blocking_template_html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello world 4 | 5 | -------------------------------------------------------------------------------- /tests/testing/internal/coverage/__init__.py: -------------------------------------------------------------------------------- 1 | """Tests for ddtrace.testing.internal.coverage modules.""" 2 | -------------------------------------------------------------------------------- /benchmarks/bm/__init__.py: -------------------------------------------------------------------------------- 1 | from ._scenario import Scenario 2 | 3 | 4 | __all__ = [ 5 | "Scenario", 6 | ] 7 | -------------------------------------------------------------------------------- /benchmarks/django_simple/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | django==4.2.21 2 | gunicorn==20.1.0 3 | requests==2.31.0 4 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/pytest_bdd/constants.py: -------------------------------------------------------------------------------- 1 | FRAMEWORK = "pytest_bdd" 2 | STEP_KIND = "pytest_bdd.step" 3 | -------------------------------------------------------------------------------- /ddtrace/ext/consul.py: -------------------------------------------------------------------------------- 1 | APP = "consul" 2 | SERVICE = "consul" 3 | CMD = "consul.command" 4 | KEY = "consul.key" 5 | -------------------------------------------------------------------------------- /ddtrace/internal/_utils.pxd: -------------------------------------------------------------------------------- 1 | cdef extern from "_utils.h": 2 | cdef inline int PyBytesLike_Check(object o) 3 | -------------------------------------------------------------------------------- /ddtrace/internal/opentelemetry/constants.py: -------------------------------------------------------------------------------- 1 | OTLP_EXPORTER_HEADER_IDENTIFIER = "otel-otlp-exporter-python" 2 | -------------------------------------------------------------------------------- /releasenotes/notes/mariadb-8e7bc94a0d1b8f02.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add MariaDB integration. 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/other/globals_builtin.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | _globals = globals() 4 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/loader.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def add(a, b): 5 | return a + b 6 | -------------------------------------------------------------------------------- /benchmarks/tracer/config.yaml: -------------------------------------------------------------------------------- 1 | small: 2 | depth: 10 3 | medium: 4 | depth: 100 5 | large: 6 | depth: 1000 7 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/botocore/constants.py: -------------------------------------------------------------------------------- 1 | BOTOCORE_STEPFUNCTIONS_INPUT_KEY = "botocore_stepfunctions_input" 2 | -------------------------------------------------------------------------------- /releasenotes/notes/django-4-support-eadd627959b9344e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add django 4.0 support. -------------------------------------------------------------------------------- /releasenotes/notes/wsgi-30613a9c30834225.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | wsgi: add tracing middleware. 5 | -------------------------------------------------------------------------------- /tests/contrib/django/templates/users_list.html: -------------------------------------------------------------------------------- 1 | {% for user in object_list %} 2 | {{ user }} 3 | {% endfor %} 4 | -------------------------------------------------------------------------------- /lib-injection/sources/telemetry-forwarder.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo "$1 $(>mock-telemetry.out 4 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-collect-header-ip-494f489b1778b6ed.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | ASM: collect http client_ip. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/django-2ebd5565ee27d4d1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | django: tag root spans as measured. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-fastapi-ccce6171c5e1ccde.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | fastapi: add integration. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/libdatadog-v15.0.0-1004e5bb7f452d9a.yaml: -------------------------------------------------------------------------------- 1 | upgrade: 2 | - Bumps libdatadog dependency to v15.0.0. 3 | -------------------------------------------------------------------------------- /releasenotes/notes/support-flask-2-659163726a5f66aa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for Flask 2 5 | -------------------------------------------------------------------------------- /tests/profiling/uwsgi-app.py: -------------------------------------------------------------------------------- 1 | import ddtrace.profiling.auto # noqa:F401 2 | 3 | 4 | def application(): 5 | pass 6 | -------------------------------------------------------------------------------- /benchmarks/appsec_iast_django_startup/requirements.in: -------------------------------------------------------------------------------- 1 | django==4.2.21 2 | pandas==2.2.2 3 | numpy==2.0.2 4 | requests==2.31.0 5 | -------------------------------------------------------------------------------- /benchmarks/errortracking_django_simple/requirements_scenario.txt: -------------------------------------------------------------------------------- 1 | django==4.2.21 2 | gunicorn==20.1.0 3 | requests==2.31.0 4 | -------------------------------------------------------------------------------- /ddtrace/internal/datadog/profiling/_types.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | 4 | StringType = Union[None, str, bytes] 5 | -------------------------------------------------------------------------------- /ddtrace/internal/third-party.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/ddtrace/internal/third-party.tar.gz -------------------------------------------------------------------------------- /releasenotes/notes/add-aredis-support-416f890073cc7113.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add aredis support >= 1.1.0 5 | -------------------------------------------------------------------------------- /releasenotes/notes/aiopg-0160-67bac7e073e4bbf9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added support for ``aiopg~=0.16.0``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-propagate-user-id-1b1f596f7442fd34.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: propagate user id. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-flask-6744ed2003376d74.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | flask: store response headers. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-molten-041abc52f37eed37.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | molten: store request headers. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-pytest-bdd-6-88421928af50dc42.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed support for pytest-bdd 6. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/jinja2-3-ec7df3666745f29b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added support for ``jinja2~=3.0.0``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-span-todict-98117485031335cd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | ``Span.to_dict`` is removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/tracer-write-dc2f9d95c0e4d11f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | ``Tracer.write`` has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/waf_1.22.0-05b1dfbaa0d47059.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | ASM: This upgrades libddwaf to 1.22.0 5 | -------------------------------------------------------------------------------- /tests/contrib/gevent/monkeypatch.py: -------------------------------------------------------------------------------- 1 | import gevent.monkey 2 | 3 | 4 | gevent.monkey.patch_all() 5 | print("Test success") 6 | -------------------------------------------------------------------------------- /tests/contrib/jinja2/templates/template.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% block content %}Hello {{name}}!{% endblock %} 3 | -------------------------------------------------------------------------------- /ddtrace/ext/mongo.py: -------------------------------------------------------------------------------- 1 | SERVICE = "mongodb" 2 | COLLECTION = "mongodb.collection" 3 | DB = "mongodb.db" 4 | QUERY = "mongodb.query" 5 | -------------------------------------------------------------------------------- /ddtrace/internal/remoteconfig/constants.py: -------------------------------------------------------------------------------- 1 | ASM_FEATURES_PRODUCT = "ASM_FEATURES" 2 | REMOTE_CONFIG_AGENT_ENDPOINT = "v0.7/config" 3 | -------------------------------------------------------------------------------- /releasenotes/notes/add-grpc-aio-support-c59efa5557aeea8f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for ``grpc.aio``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/agent-url-path-f48aa4949b954dd5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | agent: support URL with a base path 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm_fix_headers-9bd1585200be8a2a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | internal: normalize header names in ASM 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-pin-app-de153348b61a9905.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | ``Pin.app`` is deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/flask-241a6dd8c17e2c12.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | flask: fix memory leak of sampled out traces. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/mongo-2f086c64dbbc8be1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix pymongo 3.12.0+ spans not being generated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/parent-id-abd4f7776f54399c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | perf: don't encode default parent_id value. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/prof-proto4-391ce18af277ec54.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | profiling: add support for protobuf >=4.0. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/python310-cd0cbde016d9dced.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added official support for Python 3.10 5 | -------------------------------------------------------------------------------- /releasenotes/notes/redis-asyncio-4b0b6a2a9d8f58c0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add asyncio support of redis ≥ 4.2.0 5 | -------------------------------------------------------------------------------- /releasenotes/notes/yaaredis-integration-9cf0d99f0261a209.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add yaaredis ≥ 2.0.0 support. 5 | -------------------------------------------------------------------------------- /tests/appsec/contrib_appsec/db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/appsec/contrib_appsec/db.sqlite3 -------------------------------------------------------------------------------- /tests/contrib/anthropic/images/bits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/anthropic/images/bits.png -------------------------------------------------------------------------------- /tests/contrib/avro/schemas/users.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/avro/schemas/users.avro -------------------------------------------------------------------------------- /tests/contrib/celery/run_tasks.py: -------------------------------------------------------------------------------- 1 | from tasks import fn_a 2 | from tasks import fn_b 3 | 4 | 5 | (fn_a.si() | fn_b.si()).delay() 6 | -------------------------------------------------------------------------------- /tests/contrib/openai/test_data/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/openai/test_data/mask.png -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/sources/__init__.py: -------------------------------------------------------------------------------- 1 | from .ast_taint import ast_function 2 | 3 | 4 | __all__ = [ 5 | "ast_function", 6 | ] 7 | -------------------------------------------------------------------------------- /ddtrace/ext/memcached.py: -------------------------------------------------------------------------------- 1 | CMD = "memcached.command" 2 | DBMS_NAME = "memcached" 3 | SERVICE = "memcached" 4 | QUERY = "memcached.query" 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-aiomysql-d7803bcb9a1b1777.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add tracing support for ``aiomysql>=0.1.0``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-detect-attack-on-body-3fe45bc066dcc680.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | ASM: Detect attacks on Django body. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/collect-response-headers-8cfb734cc1e73cb1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | AppSec: collect response headers 5 | -------------------------------------------------------------------------------- /releasenotes/notes/configure-a39313ef4fed9028.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Tracer: fix configuring tracer with dogstatsd url. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/ddtags-space-82407d0d3f0426cd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for space-separated `DD_TAGS`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/encoding-strict-types-b2bbd0844b28168a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | core: use loose types when encoding. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/endpoint-counts-6fa40e642b44b78c.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | profiling: Collects endpoint invocation counts. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-flask-4bdb2b839fada0fb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Store request headers in Flask integration. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-grpc-client-meta-1145db1fec07255f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | grpc: handle None values for span tags. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-starlette-unpatch-24829144874afc6d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | starlette: unpatch calls correctly. 5 | -------------------------------------------------------------------------------- /tests/contrib/openai/test_data/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/openai/test_data/image.png -------------------------------------------------------------------------------- /ddtrace/appsec/_iast/taint_sinks/__init__.py: -------------------------------------------------------------------------------- 1 | from .ast_taint import ast_function 2 | 3 | 4 | __all__ = [ 5 | "ast_function", 6 | ] 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add-dm-trace-tag-471f5ee0303a8497.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | internal: Add sampling mechanism trace tag 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-windows-3.13-build-f36c6cf5a74e14de.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for Python 3.13 on Windows. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-fix-reset-wsgi-input-035e0a7d917af2b2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: reset wsgi input after reading. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-aiohttp-23084fcf8e34ad0a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | aiohttp: store request and response headers. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-bottle-44cadc4aabaa750d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | bottle: store request and response headers. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-pyramid-aa3d4c3361861753.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | pyramid: store request and response headers. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-urllib3-integration-ab30709c8a39934c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | urllib3: add urllib3 integration 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-aiobotocore-9eeac808a3bf0f63.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | aiobotocore: set span error for 5xx status codes. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-grpc-method-93038a476c9e95aa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | grpc: handle no package in fully qualified method 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-sanic-21-2d24b817e010ed84.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | sanic: update instrumentation to support version 21. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/futures-f485da98a50c9d50.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The futures integration is now enabled by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/mysql-python-removal-f0578e89590aaf2f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for MySQL-python has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/package_arm-1beb3c4a7d6f945a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Adds ARM64 support for Single-Step instrumentation 5 | -------------------------------------------------------------------------------- /releasenotes/notes/perf-profiler-lower-overhead-f2c2e7c12c337196.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | profiler: CPU overhead reduction. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pin-furo-ddtrace-docs-1ceb42ce17f7a1db.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | docs: Fixes formatting in ddtrace docs. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiler-windows-support-6faa2ecfdf4b97e8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The profiler now supports Windows. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-3.13-e62c18bff5de1218.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: Stack v2 supports CPython 3.13. 5 | 6 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-python-3.11-40056cf7a4313cec.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: Adds support for Python 3.11. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pymong-4-9-support-83f7c613e5e009e6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | pymongo: Adds support for pymongo>=4.9.0 5 | -------------------------------------------------------------------------------- /releasenotes/notes/slice-aspect-leak-95e264c4f1aa851c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix a memory leak on the native slice aspect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/upgrade-libdatadog-v16-0-3-c47ce9b03c69cb63.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Bumps libdatadog dependency to v16.0.3. -------------------------------------------------------------------------------- /releasenotes/notes/wrapt_2-42f935eac8adaac8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracer: This fix ensures compatibility with wrapt 2.0.0 5 | -------------------------------------------------------------------------------- /tests/contrib/cherrypy/test.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | server.socket_host = "127.0.0.1" 3 | server.socket_port = 8080 4 | server.thread_pool = 10 5 | -------------------------------------------------------------------------------- /tests/contrib/kafka/meta.properties: -------------------------------------------------------------------------------- 1 | # 2 | #Tue Oct 22 15:40:26 UTC 2024 3 | node.id=1 4 | version=1 5 | cluster.id=5L6g3nShT-eMCtK--X86sw 6 | -------------------------------------------------------------------------------- /tests/contrib/tornado/web/templates/list.html: -------------------------------------------------------------------------------- 1 | This is a list: 2 | {% for item in items %} 3 | {% module Item(item) %} 4 | {% end %} 5 | -------------------------------------------------------------------------------- /tests/llmobs/static_files/good_dataset.csv: -------------------------------------------------------------------------------- 1 | in0,in1,in2,out0,out1,m0 2 | r0v1,r0v2,r0v3,r0v4,r0v5,r0v6 3 | r1v1,r1v2,r1v3,r1v4,r1v5,r1v6 4 | -------------------------------------------------------------------------------- /benchmarks/iast_ast_patching/config.yaml: -------------------------------------------------------------------------------- 1 | no_iast: &base_variant 2 | iast_enabled: 0 3 | 4 | iast_enabled: &iast_enabled 5 | iast_enabled: 1 6 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/pytest_benchmark/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | The pytest-benchmark integration traces executions of pytest benchmarks. 3 | """ 4 | -------------------------------------------------------------------------------- /ddtrace/ext/azure_eventhubs.py: -------------------------------------------------------------------------------- 1 | CLOUD = "azure" 2 | SERVICE = "eventhubs" 3 | 4 | SEND = "send" 5 | CREATE = "create" 6 | RECEIVE = "receive" 7 | -------------------------------------------------------------------------------- /ddtrace/ext/azure_servicebus.py: -------------------------------------------------------------------------------- 1 | CLOUD = "azure" 2 | SERVICE = "servicebus" 3 | 4 | SEND = "send" 5 | CREATE = "create" 6 | RECEIVE = "receive" 7 | -------------------------------------------------------------------------------- /ddtrace/profiling/collector/_memalloc_reentrant.cpp: -------------------------------------------------------------------------------- 1 | #include "_memalloc_reentrant.h" 2 | 3 | MEMALLOC_TLS bool _MEMALLOC_ON_THREAD = false; 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add-itr-unittest-dce1864da8d6e843.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | CI Visibility: adds ITR support for ``unittest`` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/aiohttp_jinja2-fa35ccf6fc42814c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | aiohttp_jinja2: use ``app_key`` to look up templates. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/aiokafka-dsm-support-fe2cb858c43b68df.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | aiokafka: Adds DSM instrumentation support. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/algoliasearch-dangling-ref-e7a5086104d1761b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix for algoliasearch dangling reference. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/api10-ed802d03b6067b57.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | AAP: This introduces downstream request analysis (API10). 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-feat-detect-attack-on-pylons-body-593fb0819259e6ad.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | ASM: Detect attacks on Pylons body. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-fix-ipaddress-actorip-only-on-attack-c118a0560c0c0119.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | ASM: only report actor.ip on attack. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-taint-grpc-messages-187537707bff7021.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | Code Security: taint strings from gRPC messages. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/build-deploy-py39-wheels-6524f77277e3c788.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | prelude: > 3 | Build and deploy Python 3.9 wheels for releases 4 | -------------------------------------------------------------------------------- /releasenotes/notes/current-span-reset-a860bbbad3acda5c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | core: always reset the current_span in the context. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/detect-attack-on-flask-body-9305779e1c804b24.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Detect attacks on Flask body. 5 | 6 | -------------------------------------------------------------------------------- /releasenotes/notes/detect-attacks-on-path-params-d6d06c22573d22e8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Detect attacks on path parameters -------------------------------------------------------------------------------- /releasenotes/notes/django-view-mro-check-782374fb9c427305.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: check view before instrumenting MRO. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/doc-remove-sqlparse-9afa8b0ab3e510b3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Removes the deprecated sqlparse dependency. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-openai-v1-support-cec20e0157462b53.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | openai: This adds support for openai v1. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-elasticsearch-a3f89a915ccc36c4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | elasticsearch: set span error for 5xx status codes. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-gevent-autopatching-7d77beebd4698da2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Ensure ``gevent`` is automatically patched. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-grpc-target-0a1daf38516be79f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | grpc: handle IPv6 addresses and no port in target. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-otel-docs-formatting-1-5e555fa29a0c4ba4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | otel: Fixes code formatting in api docs 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-trace_id_lock-profiling-585779e8713144f3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixes span id tagging in lock profiling. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/flask_caching-dc23b94171041b4f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | flask_caching: fix redis tagging after the v2.0 release. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/httplib-3b8917c90d162170.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | httplib: distributed tracing is now enabled by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/lib-inject-base-image-dffa9a9579a9350d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | lib-injection: update base Alpine image to 3.20. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/llmobs-https-proxy-9ffc06b9f87df81b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | LLM Observability: add support for HTTPS_PROXY. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/potential-race-endpoints-b8592670cdcbf023.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix a potential race condition in the tracer. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-heap-enabled-c755d2c42871e930.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The heap profiler is now enabled by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/redis-asyncio-client-name-b3f7bb35536d25bc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | redis: track the connection client_name. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-aioredis-3ebab9a4d3a2fc8f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | aioredis: The aioredis integration has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/session_fingerprint-b20cefb1ae3e24dc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Support added for session fingerprints. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/support-sanic-21.9.0-6c5de52c832f9dcc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add tracing support for ``sanic>=21.9.0``. 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/function_no_str.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def fixture_function_str(): 5 | return "test" 6 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/function_no_str.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def fixture_function_str(): 5 | return "test" 6 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/function_str.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def fixture_function_str(): 5 | return str("test") 6 | -------------------------------------------------------------------------------- /tests/appsec/integrations/django_tests/django_app/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Input: {{ user_input }}

4 | 5 | -------------------------------------------------------------------------------- /tests/contrib/avro/schemas/advanced_users.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/avro/schemas/advanced_users.avro -------------------------------------------------------------------------------- /tests/contrib/gevent/wrong_program_gevent.py: -------------------------------------------------------------------------------- 1 | from gevent import monkey 2 | 3 | import ddtrace # noqa:F401 4 | 5 | 6 | monkey.patch_all() 7 | -------------------------------------------------------------------------------- /benchmarks/packages_package_for_root_module_mapping/config.yaml: -------------------------------------------------------------------------------- 1 | cache_on: 2 | disable_cache: False 3 | 4 | cache_off: 5 | disable_cache: True 6 | -------------------------------------------------------------------------------- /ddtrace/vendor/ply/__init__.py: -------------------------------------------------------------------------------- 1 | # PLY package 2 | # Author: David Beazley (dave@dabeaz.com) 3 | 4 | __version__ = '3.11' 5 | __all__ = ['lex','yacc'] 6 | -------------------------------------------------------------------------------- /releasenotes/notes/aiohttp-remove-1.x-7a899e50dff73357.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for aiohttp previous to 2.0 has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-add-user-information-to-traces-27658759829e7782.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: add user information to traces. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-grpc-treats-support-025582704f96dc7d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Adds Threat Monitoring support for gRPC. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-send-waf-metrics-over-telemetry-4208c7412e55cccd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Send WAF metrics over telemetry 5 | -------------------------------------------------------------------------------- /releasenotes/notes/dbapi-ctx-manager-008915d487d9f50d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | dbapi: add support for connection context manager usage 5 | -------------------------------------------------------------------------------- /releasenotes/notes/django-404-214280e31b72571c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: Http404 exceptions will no longer be flagged as errors 5 | -------------------------------------------------------------------------------- /releasenotes/notes/dogpile-cc205f8abf149360.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | dogpile.cache: is now automatically instrumented by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/enable-aredis-default-ec2280b4681392b8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The aredis integration is now enabled by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-symdb-enabled-by-default-25eebb43fc8c5a0d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Symbol Database is now enabled by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fingerprinting-f285687dd35085ed.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: This introduces fingerprinting with libddwaf 1.19.1 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-attribute-error-in-flask-2.2.0-94524c33b005d48a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | flask: add support for ``flask>=2.2.0`` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-django-empty-middleware-056f9c75ad963f1f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: handle erroneous middleware gracefully. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-http-url-200fca099f41ce49.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | This fix removes unintended url parts in the ``http.url`` tag. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-psutil-macos-0cd7d0f93b34e3e4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix issue building ``ddtrace`` from source on macOS 12. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-psycopg-parse-dsn-f645bc9f056305c7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | psycopg2: Fixes a bug with DSN parsing integration. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-span-type-web-20122b5c57c50341.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django, DRF, ASGI: fix span type for web request spans. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/flask-caching-c23ec5c1218a8bf3.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | Support flask-caching (>= 1.10.0) with the Flask-Cache tracer. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/lib-injection-gsutil-f8cd44af4b361abd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: do not inject into the ``gsutil`` tool 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-fix-uds-ebf0ea0587c8a23c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix UDS upload for profiling not using the correct path. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/psycopg-before-27-removal-d6e551e47038abde.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for psycopg < 2.7 has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pytest-fix-xfail-unsafe-access-f579fef50d5bd4fa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | pytest: fix unsafe access to xfail reason. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/span-link-getter-setters-08ff8b2e476091ae.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | span: Adds a public api for setting span links 5 | -------------------------------------------------------------------------------- /releasenotes/notes/support-async-redis-cluster-3447583f1a117df6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | redis: Add support for Async RedisCluster. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/traced-session-1f2134ac99449b91.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | requests: fix TracedSession when patches are not applied. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/tracer-flares-fixes-10c1ed70d444fc9a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Flares: Fixes to make the tracer flares match the spec. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/upgrade-min-aws-lambda-f9d9d31cf1f8685f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | aws_lambda: Drops support for ``aws_lambda<=6.105.0``. -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/function_str.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def fixture_function_str(): 5 | return str("test") 6 | -------------------------------------------------------------------------------- /tests/contrib/openai/test_data/english_audio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/openai/test_data/english_audio.mp3 -------------------------------------------------------------------------------- /tests/contrib/openai/test_data/french_audio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/contrib/openai/test_data/french_audio.mp3 -------------------------------------------------------------------------------- /benchmarks/base/requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements_scenario.txt 2 | 3 | pyperf 4 | pyyaml 5 | attrs 6 | httpretty==1.1.4 7 | tenacity~=8.0 8 | viztracer 9 | -------------------------------------------------------------------------------- /ddtrace/ext/test_visibility/_constants.py: -------------------------------------------------------------------------------- 1 | from enum import IntEnum 2 | 3 | 4 | class ITR_SKIPPING_LEVEL(IntEnum): 5 | TEST = 0 6 | SUITE = 1 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add-span-get-tags-metrics-7969ba7843dcc24d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add ``Span.get_tags`` and ``Span.get_metrics``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-support-for-aiobotocore-1-x-2-x-611d93a3ec362489.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for aiobotocore 1.x and 2.x. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asgi-bc983a8dfffe823e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASGI: handle decoding errors when extracting headers for trace propagation. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-boto-denylist-9ea0dee3a33fff7c.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | Code Security: add the boto package to the IAST patching denylist. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-fix-python-2-error-reading-ddwaf-rules-d3653031f2ba84ba.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: fix Python 2 error reading WAF rules. -------------------------------------------------------------------------------- /releasenotes/notes/asm-pylons-detect-attacks-on-cookies-ddda4822bde49a25.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Detect attacks on Pylons request cookies -------------------------------------------------------------------------------- /releasenotes/notes/asm-pylons-report-http-method-d4a21ba111e75edd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Report HTTP method on Pylons framework 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-pylons-report-http-raw-uri-6a5f2c2351aaab6d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Collect raw uri for Pylons framework. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-support-in-app-waf-metrics-report-4528e2b2574268cd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Support In-App WAF metrics report. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/django-bug-fix-5cc969608b325c66.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: fix incorrect component tag being set for django orm spans -------------------------------------------------------------------------------- /releasenotes/notes/do-not-patch-bytesio-b16ccc16f36e8b67.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | IAST: don't patch BytesIO since we don't have any aspects for it. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-debugging-py311-support-2160a5590048c7c3.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | dynamic instrumentation: Python 3.11 is now supported. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-disabled-memory-leak-c793801e11c45bfe.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix memory leak caused when the tracer is disabled. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-git-version-extraction-8db3a639976e725c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | CI Visibility: Fixes incorrect Git version extraction 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-metadata-redundancy-afc4dca3c5bb4a5a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix for the declaration of dependencies for the package. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-sqlite3-backup-bf92c698567237b9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | sqlite3: fix error when using ``connection.backup`` method. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/graphql-measured-d512e43de27d7ae3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | graphql: ``graphql.execute`` spans are now marked as measured. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/httpx-service-ensure-text-03dbf31d2ff29fc2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix issue when ``httpx`` service name is ``bytes``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-langchain-0.1.0-e437ea90fe66ad31.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Code Security: IAST support for langchain v0.1.0 and above. -------------------------------------------------------------------------------- /releasenotes/notes/kafka-lag-support-data-streams-c6b7aed85bf2cf14.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | data_streams: Starts tracking Kafka lag in seconds. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/langchain-lcel-tool-tagging-af55b56cfa21ffa1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | langchain: Tags tool calls on chat completions. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/lib-injection-user-19a5b5516c060d8b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | Kubernetes library injection: run commands as non-root user. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/llmobs-url-override-5d791534021f66a9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | LLM Observability: add ability to override the URL origin. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiler-protobuf-421-bf20b8e42ba3ad4c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | profiler: Fix support for latest versions of protobuf. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pymongo-add-service-name-config-option-f4eb81539b2d39dc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | add DD_PYMONGO_SERVICE configuration 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remote-trace-tags-3e4d8c87afb18b86.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | tracer: Add support for remotely configuring trace tags. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-payload-submodule-58fac4aaf3d4f5da.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | The ``ddtrace.payload`` submodule has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/runtime-metrics-runtime-error-33e2d4cc17cf4aca.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | core: fix race condition in TracerTagCollector. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/update-tornado-support-5c87ee2d79ae54c4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | tornado: Updated minimum supported version to v6.1+. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/wsgi-73cf1d35043e7fef.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix a possible NoneType error in the WSGI middleware start_response method. 5 | -------------------------------------------------------------------------------- /tests/appsec/integrations/django_tests/django_app/templates/index_safe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Input: {{ user_input|safe }}

4 | 5 | -------------------------------------------------------------------------------- /tests/commands/ddtrace_minimal.py: -------------------------------------------------------------------------------- 1 | import ddtrace.bootstrap.sitecustomize as module 2 | 3 | 4 | if __name__ == "__main__": 5 | print(module.loaded) 6 | -------------------------------------------------------------------------------- /tests/llmobs/static_files/good_dataset_pipe_separated.csv: -------------------------------------------------------------------------------- 1 | in0|in1|in2|out0|out1|m0 2 | r0v1|r0v2|r0v3|r0v4|r0v5|r0v6 3 | r1v1|r1v2|r1v3|r1v4|r1v5|r1v6 4 | -------------------------------------------------------------------------------- /.github/codeql-config.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL config" 2 | paths-ignore: 3 | - "tests/appsec/iast_packages/packages/**" 4 | - "tests/appsec/contrib_appsec/**" 5 | -------------------------------------------------------------------------------- /ddtrace/internal/_stdint.h: -------------------------------------------------------------------------------- 1 | #ifdef _MSC_VER 2 | typedef __int64 int64_t; 3 | typedef unsigned __int64 uint64_t; 4 | #else 5 | #include 6 | #endif 7 | -------------------------------------------------------------------------------- /releasenotes/notes/313-ddtracerun-e34ef8d7496091b3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Enables tests of the ``ddtrace-run`` entrypoint with Python 3.13 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-debug-logs-sampling-2b163de7c992fe0b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | sampling: Add more debug logs to help debug sampling issues. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-add-http-route-for-flask-8b13c721e2f7543b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | tracing: add http.route tag to root span for Flask framework. -------------------------------------------------------------------------------- /releasenotes/notes/asm-memleaks-0bd0a25284dd1b9b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | - Code Security: fix two small memory leaks with Python 3.11 and 3.12. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-pylons-detect-attacks-on-HTTP-query-9f68009da8051bc0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Detect attacks on Pylons HTTP query. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/correct-type-annotations-2ee30779966960b6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Corrected some typing annotations for PEP 484 compliance 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-span-tracer-master-6c8666cf49ee4f4a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | :py:attr:`ddtrace.Span.tracer` is deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-pylibmc-support-add-command-8c3545bfd7ac7c9b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | pylibmc: adds traces for memcached add command 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-submit-langchain-tool-spans-e7f76291dfa1efe5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | langchain : Adds support for tracing tool invocations. -------------------------------------------------------------------------------- /releasenotes/notes/fix-dd-origin-py2-7bb39ed9e45e2131.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: fix handling of unicode ``_dd.origin`` tag for Python 2 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-django-correct-legacy-resource-c27c7402b6b0be37.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: add legacy resource format of `{handler}`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-encode-tagset-value-2b8bb877a88bc75a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing/internal: fix encoding of propagated internal tags. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-flask-non-string-view-args-ed0283ddb1541e27.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixes error with tagging non-string Flask view args. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-iast-slow-import-when-not-needed-8cf1317095842135.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | IAST: fixes import overhead when IAST is disabled. -------------------------------------------------------------------------------- /releasenotes/notes/fix-logger-children-a5dddf8abbf7c159.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | internal: call ``_fixupChildren`` when retrieving ``DDLogger`` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-sanic-dont-send-error-traces-on-non-500s-b194927b887ad9d9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | sanic: Don't send non-500s error traces. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-subprocess-debug-logging-d6eb35359abdbda5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | subprocess: Removes unnecessary debug log variables. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/freezegun-remove-44312810d30f9e0b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | freezegun: The deprecated `freezegun` integration is now removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/grpc-client-measured-span-aa043d35bfe71238.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | gRPC client spans are now marked as measured by default. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/init-dramatiq-integration-8b882a3e9921208e.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | dramatiq: Adds automatic tracing of the ``dramatiq`` library. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/lib-inject-permissions-8222a09585eb5350.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Update package files to not be world-writable. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/opentelemetry-support-span-events-66c79465a3f68180.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | opentelemetry: Adds support for span events. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pin-osx-deployment-version-c33b207ada285263.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | setup: pins the default macOS deployment target to 10.14. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-fix-newline-error-8d4d10ed61143e16.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix a formatting issue on error exporting profiles. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-libdd-windows-0e80f0facac09221.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: add support for native exporter on Windows. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pymongo-double-patching-topology-dd90eda48daa051c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix double patching of ``pymongo`` client topology. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/rcm-validations-162716c50ea90f1b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | remote config: ensure proper validation of responses from the agent. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/removing_api_security_metrics-4b6a6ba8643b5ab3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: This fix removes unrequired API security metrics. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/runtimeid-39dfdf1e0c1af45d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix runtime-id and system.pid tags not being set on distributed traces. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/tornado-none-bug-85faed75c859f5e5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tornado: handle when the current span is None in log_exception(). 5 | -------------------------------------------------------------------------------- /releasenotes/notes/upgrade_waf_value_regex_obfuscator-b62a7e68bdfa6b98.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | AAP: Upgrade the WAF value regex obfuscator. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/wsgi-fix-generator-exit-b3effeb222673a06.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | wsgi: ignore GeneratorExit Exception in wsgi.response spans 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/class_str.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | class my_fixture: 5 | def __repr__(self): 6 | return str(self) 7 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/str/non_utf8_content.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/appsec/iast/fixtures/ast/str/non_utf8_content.py -------------------------------------------------------------------------------- /tests/contrib/protobuf/schemas/other_message.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | message OtherMessage { 4 | repeated string name = 1; 5 | int32 age = 2; 6 | } -------------------------------------------------------------------------------- /tests/profiling/collector/conftest.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | import ddtrace 4 | 5 | 6 | @pytest.fixture 7 | def tracer(): 8 | return ddtrace.trace.tracer 9 | -------------------------------------------------------------------------------- /tests/profiling/run.py: -------------------------------------------------------------------------------- 1 | import runpy 2 | import sys 3 | 4 | 5 | module = sys.argv[1] 6 | del sys.argv[0] 7 | runpy.run_module(module, run_name="__main__") 8 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Datadog dd-trace-py 2 | Copyright 2016-Present Datadog, Inc. 3 | 4 | This product includes software developed at Datadog, Inc. (https://www.datadoghq.com/). 5 | -------------------------------------------------------------------------------- /ddtrace/internal/_rand.pyi: -------------------------------------------------------------------------------- 1 | def seed() -> None: ... 2 | def rand64bits(check_pid: bool = True) -> int: ... 3 | def rand128bits(check_pid: bool = True) -> int: ... 4 | -------------------------------------------------------------------------------- /ddtrace/internal/datadog/profiling/cmake/tools/infer_checksums.txt: -------------------------------------------------------------------------------- 1 | 5f5d453814422e93e2a70998d8946b09a2721628ff427f67ff0123dea87461d4 infer-linux64-v1.1.0.tar.xz 2 | -------------------------------------------------------------------------------- /ddtrace/llmobs/_integrations/constants.py: -------------------------------------------------------------------------------- 1 | LANGGRAPH_SPAN_TRACES_ASTREAM = "langgraph.span_traces_astream" 2 | LANGGRAPH_ASTREAM_OUTPUT = "langgraph.astream.output" 3 | -------------------------------------------------------------------------------- /releasenotes/notes/add-http-route-to-pyramid-23eab91880ac8e0e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | pyramid: Adds http.route tag to ``pyramid.request`` spans. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-pytest-benchmark-support-71c6505ca4b202f3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | CI Visibility: added tracing support for pytest-benchmark 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-avoid-subprocess-iast-import-2e4b354d5880de40.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | ASM: avoid potentially unneeded import of the IAST native module. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-configure-sensitive-data-obfuscator-4bf70dcccb9f6350.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: configure the sensitive data obfuscator. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-new-gprc-server-propagation-89812a5e161fe0f6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Code Security: add propagation for GRPC server sources. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-pylons-detect-attacks-on-path-params-760837978a2e3f32.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: detect attacks on Pylons path parameters. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/bump-llmobs-5mb-617c24b81a2db2eg.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | LLM Observability: Increases span event size limit from 1MB to 5MB. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/case_insensitive_matching-ee91217a6274e675.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | tracing: Span and trace sampling rules are case insensitive. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/cherrypy-first-version-89893f512b2fa083.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | cherrypy: introduce TraceMiddleware for the CherryPy web framework. -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-http-server-config-82e5e9b9c7ac0024.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | HttpServerConfig is no longer part of the public API. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/django-request-uri-safe-guards-fdd8bd664374ded1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: add safe guards for building http.url span tag. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/drop-gevent-10-438387fecc241e60.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for gevent 1.0 has been removed and gevent >= 1.1 is required. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-co-in-product-enablement-6b70fc52d62721fa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | code origin: added support for in-product enablement. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-collect-user-agent-630b2c10f83ac063.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Collect user agent in normalized span tag ``http.useragent``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-detect-attack-on-xml-body-878215f0d3d1a64d.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | ASM: Detect attacks on XML body (for Django, Pylons and Flask). 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-er-in-product-enablement-253418007f82a19b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | exception replay: added in-product enablement support. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-span-decoration-c04a7aa0c98d52f6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | dynamic instrumentation: Added support for span decoration probes. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-support-global-tags-in-runtime-metrics-58fe01b78b7f9cbe.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | core: Apply ``DD_TAGS`` to runtime metrics. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-appsec-deprecated-import-8e834665d0b1e5d5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix internal import of deprecated ``ddtrace.utils`` module. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-django-db-postgres-7aa62a1c3aff647d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: fix a bug when postgres query is composable sql object. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-ipc-valid-tmp-dir-063d8abcc1835747.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Prevent startup failure when a temporary directory is not available. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-mypy-py2-redis-4c8d3b4e461c6074.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | mypy: Avoid parsing redis asyncio files when type checking Python 2 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-ssi-telemetry-events-a0a01ad0b6ef63b5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Fixes incorrect telemetry data payload format. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix.urllib3.integration-610312498fcdce86.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix ``urllib3`` patching not properly activating the integration. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/flask-codes-f0841d78ec847807.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | flask: deprecated configuration option `extra_error_codes` has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/gevent-pynamodb-fix-72ac7017e51fd4f9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Patch pynamodb on import to prevent patching conflicts with gevent. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/google-sdk-denylist-0619f1734507019a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Add googlecloudsdk and google auth to the Code Security deny list. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/lib-injection-314-80c9ea0f0d0f3658.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | This change updates library injection logic to work under Python 3.14. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/libddwaf-1.0.18-update-61c1513f3e632195.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - Fixes build issues on older MacOS versions by updating ``libddwaf`` to 1.0.18 4 | -------------------------------------------------------------------------------- /releasenotes/notes/opentracer-remove-b1883d26ea035c50.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | opentracer: This change removes the deprecated ``opentracer`` package 5 | -------------------------------------------------------------------------------- /releasenotes/notes/otel-operation-name-7a2bccb294aed8cd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | opentelemetry: datadog operation name from semantic conventions 5 | -------------------------------------------------------------------------------- /releasenotes/notes/patch-on-import-httplib-f98bad4b73cee387.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | httplib: Fixes an issue with patching of http client upon import 5 | -------------------------------------------------------------------------------- /releasenotes/notes/perf-celery-reduced-overheads-6afe03acf1af703f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Performance of the Celery integration has been improved. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/prf-functions_for_code-9634ef79190978cf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | code origin for spans: fixes a performance issue with exit spans. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiler-fix-ddup-threads-1f76f44a6536876e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | profiler: Fixes a sigabrt when shutdown occurs during an upload 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-314-support-bc850ac5330c27fc.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | profiling: This adds support for Python 3.14 in the Continuous Profiler. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-fix-async-b44fdc577a467a40.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | profiling: The stack sampler supports async generators and ``asyncio.wait``. -------------------------------------------------------------------------------- /releasenotes/notes/profiling-resource-name-fix-5f73526a307e8b40.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Make sure that correct endpoint name collected for profiling. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-apptypes-76c78d46c1792863.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Removed `ddtrace.ext.AppTypes` and its usages in the tracer library. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/snowflake-feature-add-sfqid-1142e1c991e42247.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | snowflake: add snowflake query id tag to ``sql.query`` span 5 | -------------------------------------------------------------------------------- /releasenotes/notes/update-lambda-logs-to-debug-6139084ba50e75bb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | aws_lambda: Logs warnings and exceptions on cold start only. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/utils-remove-merge-dicts-9252805c864677f8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The function ``ddtrace.utils.merge_dicts`` has been removed. 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/class_str.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | class my_fixture: 5 | def __repr__(self): 6 | return str(self) 7 | -------------------------------------------------------------------------------- /tests/commands/ddtrace_run_argv.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | 4 | if __name__ == "__main__": 5 | assert sys.argv[1:] == ["foo", "bar"] 6 | print("Test success") 7 | -------------------------------------------------------------------------------- /tests/coverage/included_path/constants_dynamic.py: -------------------------------------------------------------------------------- 1 | """Constants module - imported dynamically""" 2 | 3 | # Module-level constants 4 | OFFSET = 10 5 | MULTIPLIER = 2 6 | -------------------------------------------------------------------------------- /tests/debugging/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | include = ddtrace/debugging/* 3 | 4 | [report] 5 | include = ddtrace/debugging/* 6 | 7 | disable_warnings = couldnt-parse 8 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/coverage/data.py: -------------------------------------------------------------------------------- 1 | from copy import copy 2 | import sys 3 | 4 | 5 | _coverage_data = {} 6 | 7 | _original_sys_argv_command = copy(sys.argv) 8 | -------------------------------------------------------------------------------- /ddtrace/vendor/jsonpath_ng/__init__.py: -------------------------------------------------------------------------------- 1 | from .jsonpath import * # noqa 2 | from .parser import parse # noqa 3 | 4 | 5 | # Current package version 6 | __version__ = '1.6.1' -------------------------------------------------------------------------------- /releasenotes/notes/add-buddy-works-metadata-extraction-988f215f36ddf88b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | CI Visibility: Add support for CI provider buddy.works 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-datadog-trace-tag-propagation-f69736976107f1c2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | internal: Add support for Datadog trace tag propagation 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-django-channels-support-44aefaa21961adff.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix application crash on startup when using ``channels >= 3.0``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-avoid-json-decode-error-31479891110bcb55.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: (flask) avoid json decode error while parsing request body. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-gprc-not-none-788b4b435b931a11.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | ASM: protect against potentially returning ``None`` when tainting a gRPC message. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-insecure-cookies-response-3c95331da890709e.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | ASM: Adds detection of insecure cookie vulnerabilities on responses. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/bump-traceback-limit-4b7702bc8f771d65.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | span: Increases the traceback limit in ``error.stack`` tags from 20 to 30 5 | -------------------------------------------------------------------------------- /releasenotes/notes/capture-xml-parsing-errors-e6c8c761ed026ce3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: Do not raise exceptions when failing to parse XML request body. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/custom_scanners-56cead2502735f2b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | AAP: This introduces supports for custom scanners for data classification. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/dbm-support-sql-queries-with-the-type-bytes-30fb4b75ea2f8cf8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | dbm: Support sql queries with the type ``byte``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/denylist-extend-more-f0d96917c50d43cf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Add more modules to the IAST patching denylist to improve startup time 5 | -------------------------------------------------------------------------------- /releasenotes/notes/disable-internal-tag-propagation-dff3e799fb056584.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | tracing/internal: disable Datadog internal tag propagation 5 | -------------------------------------------------------------------------------- /releasenotes/notes/django-9ce233836fca5d93.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The legacy Django configuration method (deprecated in 0.34) has 5 | been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/enable-distributed-tracing-rq-4aaa0d4ae84381ee.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | rq: enable parsing distributed tracing metadata in perform job 5 | -------------------------------------------------------------------------------- /releasenotes/notes/exploit_prevention_sqli-c34e1047af3c08f2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: This introduces SQL injection support for exploit prevention. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-add-azure-functions-integration-108911bfe1e5f081.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | azure_functions: This introduces support for Azure Functions. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-ciapp-detect-code-owners-for-PyTest-tests-f8f66db2dc02ae91.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ciapp: detect code owners of PyTest tests 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feature-injectr-trace-sqs-send-message-035dc3300db0cad0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | botocore: inject tracing data to `MessageAttributes`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/filter-git-url-source-code-12722a027a6fa071.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Source Code: filters Git repo URLs from env vars and setuptools 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-cmake-dep-f25774b77cb7a795.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | core: This fix moves ``cmake`` from ``install_requires`` to ``setup_requires``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-django-str-tags-ad4f0b9e2d0eff12.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed the handling of the Django template name tag causing type errors. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-health-metrics-tags-61cb3d8369cfe402.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: Ensures health metrics are tagged with the correct values. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-jinja2-non-str-template-name-4cb2aa7cda15828a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | jinja2: fix handling of template names which are not strings. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-langchain-vision-apis-58e4de9b52198e43.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | langchain: Ensures langchain vision APIs are correctly instrumented 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-lib-injection-zombie-dc16ca6c8bf50edb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Avoid zombie process from telemetry sender on startup. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-oci-denylist-080592ca52e45681.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | SSI: This fix ensures injection denylist is included in published OCI package. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-sanic-non-str-args-4d1b0f506bee3436.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed the handling of sanic endpoint paths with non-string arguments. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-undefined-var-in-otel-docs-508ff00a82264aef.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | docs: Fix undefined variable reference in otel documentation 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-warning-import-54de769abd54f7b6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Updates import path in FastAPI module to use the new ASGI module location. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/grpc-fix-interceptors-f596e028ef9dbcd5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | grpc: Resolves segfaults raised when grpc.aio interceptors are registered 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-fix-awsgi-368c173e1f012400.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASGI: This fix resolves an issue parsing response cookies in FastAPI and awsgi 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-new-pyobject-check-6aecf9c4f22e2ae9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Code Security: add null pointer checks when creating new objects ids. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-segfaults-fix-d25c5c132dd8482e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Code Security: fix a potential memory corruption when the context was reset. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/langchain-runnable-lambda-cec8e99164d081d1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | langchain: Adds support for tracing ``RunnableLambda`` instances. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/lib-injection-non-root-981fd87f97d3e552.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Adds support for non-root run applications in containers. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-allow-collector-disablement-0b0fb2acadc114a6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: allow individual collectors to be disabled. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-no-flush-on-fork-c6c2b3c2d27a9a32.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed an issue in profiling exporting profiles twice when forking. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-task-pprof-3afb83e36a63aeaf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The profiler now exports active tasks for CPU and wall time profiles. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pymongo-4.0.2-1f5d2b6af5c158d2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | pymongo: fix ``write_command`` being patched with the wrong method signature. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pytyped-1a3fed96165afef1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | This fix resolves an issue causing MyPy linting to fail on files that import ddtrace. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/stack_traces_for_iast-cd2c008168f6181e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Code Security: This introduces stack trace reports for Code Security. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/support-3-11-celery-39053a6ccb7de942.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | celery: Adds Python 3.11 and 3.12 support for the celery integration. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/threethirteen-botocore-ee2431d065f99d7b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | botocore: Makes boto-related integrations compatible with Python 3.13 5 | -------------------------------------------------------------------------------- /releasenotes/notes/waf_update_to_1.21.0-2f77adaf9ecce679.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | ASM: This upgrades libddwaf to 1.21.0 and security rule file to 1.13.3 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/add_operator/basic.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def fixture_function_with_add_operator(): 5 | return "hello" + " world" 6 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/aspects/str/non_utf8_content.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/appsec/iast/fixtures/aspects/str/non_utf8_content.py -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/add_operator/basic.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | def fixture_function_with_add_operator(): 5 | return "hello" + " world" 6 | -------------------------------------------------------------------------------- /tests/appsec/integrations/pygoat_tests/fixtures/pygoat.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataDog/dd-trace-py/HEAD/tests/appsec/integrations/pygoat_tests/fixtures/pygoat.xz -------------------------------------------------------------------------------- /tests/contrib/django_celery/app/demoapp/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class Widget(models.Model): 5 | name = models.CharField(max_length=140) 6 | -------------------------------------------------------------------------------- /ddtrace/internal/datastreams/schemas/schema.py: -------------------------------------------------------------------------------- 1 | class Schema: 2 | def __init__(self, definition, _id): 3 | self.definition = definition 4 | self.id = _id 5 | -------------------------------------------------------------------------------- /releasenotes/notes/PCF-container-UUID-0f65eed47e42f4ad.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | CGroup file parsing was fixed to correctly parse container UUID for PCF containers. -------------------------------------------------------------------------------- /releasenotes/notes/add-aiohttp-split-by-domain-f8f3242025c96cc1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | aiohttp: add `split_by_domain` config to split service name by domain 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-requirements-json-038073d722697e32.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add requirements.json to SSI artifact for bailing out on unsupported systems. -------------------------------------------------------------------------------- /releasenotes/notes/add-support-for-redis-py-cluster-265c66546f843efa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | redis: Adds tracing support for `redis.cluster.RedisCluster`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/address-noisy-rcm-warnings-62eb36fb64e0f28f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | remote_config: Change the level of remote config startup logs to debug. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/agent-sample-rate-39e5ad8039c675b9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracer: tag spans that have been sampled due to an Agent sampling configuration. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/aiopg-version-update-b10995a944fb5f91.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | aiopg: Upgrades supported versions to >=1.2. Drops support for 0.x versions. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/api10_redirect-d7863891c7cc8d5f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | AAP: This introduces proper support for API10 for redirected requests on urllib3 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-fix-empty-ranges-decode-38aa73230a0e2a19.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | IAST: fix potentially empty ranges after executing the decode aspect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-upgrade-libddwaf-cbebe158731bf7d9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | ASM: libddwaf upgraded to version 1.6.1 using a new library loading mechanism 5 | -------------------------------------------------------------------------------- /releasenotes/notes/avoid-wrapt-two-fd3b8ad3057343ba.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Pin to ``wrapt<2`` until we can ensure full compatibility with the breaking changes. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/block_id-551e443afd917aa6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | AAP: This introduces security response id for easy identification of blocking responses. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/ci-error-79b5f3fae44269bb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | pytest: report exception details directly instead of through a `RuntimeWarning` exception. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/disable-multiple-assign-02565491d5d74083.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | IAST: Don't split AST Assign nodes since it's not needed for propagation to work. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/encode-bytes-974d93cec3725455.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: This resolves a ``TypeError`` in encoding when truncating a large bytes object. -------------------------------------------------------------------------------- /releasenotes/notes/feat-azure-functions-timer-trigger-f47914ec46fc30ca.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | azure_functions: This introduces tracing support for timer triggers. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-debugging-span-probes-c441d7eb186f5f20.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | dynamic instrumentation: introduced support for dynamic span probes. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-botocore-missing-response-meta-e80c1cfb34ec0881.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | botocore: Do not assume that ResponseMeta exists in the results. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-encoding-exception-ff50914f97554744.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | tracing: Fixes a cryptic encoding exception message when a span tag is not a string. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-grpc-intercept-channel-not-unpatched-5a4252256801ad09.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | grpc: ensure grpc.intercept_channel is unpatched properly 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-iast-add-psycopg-to-denylist-a88961e04125e674.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Code security: This fix resolves a patching issue with `psycopg3`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-iast-mem-leak-25b7ae83cea24bd6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | This fix eliminates some reference leaks and C-API usage in the ``_iast`` module. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Prevent a potential ``ResourceWarning`` in multiprocess scenarios. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-json-encoder-bytes-d35121d00f2b8caf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix JSON encoding error when a ``bytes`` string is used for span metadata. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-msgpack-errors-3fcf9f77a77c9786.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: Fixes a msgpack import error when ``DD_TRACE_API`` is set to ``v0.5`` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-profiler-recorder-rrlock-3c16195829e29acd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | profiling: prevent deadlocks while recording events of different type. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-profiler-release-gil-internal-mutation-2f0fc19f83759a72.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Profiling: prevent potential deadlocks with thread pools. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-trace-payload-counts-dba81b9fa3ef51b7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: Improves the accuracy of ``X-Datadog-Trace-Count`` payload header. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/flask-fix-query-encoding-ef177f8c9c7a679a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | flask: fix a bug when the query string would contain non-Unicode characters 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-python-312-2eaf8161a9f9d6e7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Vulnerability Management for Code-level (IAST): Adds Python 3.12 compatibility 5 | -------------------------------------------------------------------------------- /releasenotes/notes/make-span-links-pickable-d57b92508f5d3a74.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: Ensures all fields in ``ddtrace.context.Context`` are picklable. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/openai-responses-apm-e20c66473f3da435.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | openai: This introduces tracing support for the OpenAI Responses endpoint. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/otel-map-reserved-9f038de8b87ee9df.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | opentelemetry: Map reserved OpenTelemetry attributes to Datadog span model. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pin-protobuf-v4-357193706afd46e6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | pin protobuf to version ``>=3,<4`` due to incompatibility with version ``4.21``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-add-asyncio-locks-support-fc556221de2e0d34.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The profiler now supports profiling ``asyncio.Lock`` objects. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-add-lock-with-f75908e35a70ab71.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | profiling: captures lock usages with ``with`` context managers, e.g. ``with lock:`` 4 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-macos-x86-64-0b89414501e91446.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: This enables profiling native modules for macOS x86_64. 5 | 6 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-remove-profile-fbf8e32388899b05.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated compatibility module `ddtrace.profile` has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-remove-uncaught-exception-be09cc1bca6b7af6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The profiler does not catch uncaught exception anymore. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-update-echion-d2ff9f14c9279d4a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | profiling: This upgrades echion which includes performance improvements. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pyramid-config-7db0cb8f089c9417.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | Added `config.pyramid.distributed_tracing` setting to integration config for pyramid. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pytest-ddtrace-auto-e6c09074a4b0af3d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix some modules being unloaded too soon when using pytest + ddtrace + gevent. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pytest-disable-note-dababc18228d1f85.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | pytest: Add note for disabling ddtrace plugin as workaround for side-effects 5 | -------------------------------------------------------------------------------- /releasenotes/notes/python-3.7-deprecation-warning-c6c00bcafda1523f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Python 3.7 support is deprecated and will be removed in 3.0 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remote-header-tags-76e5cbea308b87a1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | tracing: Adds support for remote configuration of ``DD_TRACE_HEADER_TAGS`` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remote-logs-injection-b078bb1b9bd424eb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | tracing: Add support for remote configuration of trace-logs correlation. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-core-settings-c2c7518876a1ca20.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | configurations: Removes deprecated attributes from ``ddtrace.config``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecated-code-integrations-ae6970bbf9b10047.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | integrations: Removes deprecated interfaces from all integrations. -------------------------------------------------------------------------------- /releasenotes/notes/span-args-remove-5feecae6cf00537f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | This change removes deprecated methods and method parameters from the `Span` class. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/span-pointers-aws-s3-copyobject-3d8ab886b32695b9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | botocore: Adds span pointers for successful S3 CopyObject spans. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/starlette-root-path-bugfix-ad372cc320f384dd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | starlette: Ensures correct URL tag is set for starlette v0.34.0 and above. -------------------------------------------------------------------------------- /releasenotes/notes/umap-learn-denylist-b7c55f42f2408c24.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Code Security: add umap, numba and pynndescent to the Code Security denylist. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/websocket-span-pointers-25e07939aa75527a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | feat(asgi): Enable context propagation between websocket message spans. 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/io/module_bytesio.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import _io 3 | 4 | 5 | def fixture_function_bytesio(): 6 | return _io.BytesIO(b"test") 7 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/io/module_stringio.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import _io 3 | 4 | 5 | def fixture_function_stringio(): 6 | return _io.StringIO("test") 7 | -------------------------------------------------------------------------------- /tests/commands/ddtrace_run_enabled.py: -------------------------------------------------------------------------------- 1 | from ddtrace.trace import tracer 2 | 3 | 4 | if __name__ == "__main__": 5 | assert tracer.enabled 6 | print("Test success") 7 | -------------------------------------------------------------------------------- /tests/errortracking/third_party/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | 4 | setup( 5 | name="numpy", 6 | version="0.1", 7 | py_modules=["numpy"], 8 | ) 9 | -------------------------------------------------------------------------------- /tests/internal/lazy.py: -------------------------------------------------------------------------------- 1 | from ddtrace.internal.module import lazy 2 | 3 | 4 | print("lazy loaded") 5 | 6 | 7 | @lazy 8 | def _(): 9 | new_value = 42 # noqa 10 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | graft ddtrace 2 | graft src 3 | 4 | recursive-exclude * **/__pycache__/* 5 | prune .riot/ 6 | prune benchmarks/ 7 | prune releasenotes/ 8 | prune src/native/target* 9 | -------------------------------------------------------------------------------- /ddtrace/_trace/_limits.py: -------------------------------------------------------------------------------- 1 | """ 2 | Limits for trace data. 3 | """ 4 | 5 | MAX_SPAN_META_KEY_LEN = 200 6 | MAX_SPAN_META_VALUE_LEN = 25000 7 | TRUNCATED_SPAN_ATTRIBUTE_LEN = 2500 8 | -------------------------------------------------------------------------------- /releasenotes/notes/add-httpx-integration-6e2493b2ea605203.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add tracing support for the ``httpx`` library. Supported versions ``>=0.14.0``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-ipv6-support-for-hostnames-0fb700a1ef7ed57e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | tracing: Adds support for IPv6 agent hostnames for `DD_AGENT_HOST`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-pytest-bdd-integration-ce14f6be6d63ba01.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Adds pytest-bdd integration to show more details in CI Visibility product. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-sqs-lambda-context-support-5062a60d81055ed7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | DSM: Add support for context extraction for SQS -> Lambda message events. -------------------------------------------------------------------------------- /releasenotes/notes/add-start-end-lines-for-pytest-08bc7d463b9f100e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | CI Visibility: adds start/end line support for ``pytest`` test spans 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-start-end-unittest-515222961e619ac2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | CI Visibility: adds start/end line source file data to ``unittest`` test spans 5 | -------------------------------------------------------------------------------- /releasenotes/notes/api10_status_code-deb7bbc4c0c2a68e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | AAP: make sure the status code for downstream requests is properly sent to libddwaf. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asyncio-lock-14b10fa0f1e43ed3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | profiling: implement ``__aenter__`` and ``__aexit__`` methods on ``asyncio.Lock`` wrapper. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/crashtracker-receiver-env-f54ab26496183a6b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | crashtracker: Fixes missing env variables inheritance for receiver process. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/disable_threats_grpc-f33dde76ef815787.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | AAP: This fix disables grpc threat monitoring, as it could generate false positives. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/django-set-usr-id-by-default-b99c0f3e6cf530a2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Django: set `usr.id` tag by default if `request.user` is authenticated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/django_signup_instrumentation-c7f7db227105c851.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: This introduces auto instrumentation of signup events for Django. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/elasticsearch-0a97722c93d66016.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | elasticsearch: patch versioned elasticsearch modules (elasticsearch1, ..., elasticsearch7). 5 | -------------------------------------------------------------------------------- /releasenotes/notes/extended-heartbeat-acc361de5bdbb872.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | SCA: This add support for extended heartbeat every 24h with dependencies payload. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-runtime-distribution-e27687432f7ee4a5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Submit runtime metrics as distribution metrics instead of gauge metrics. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-block-request-without-span-c5ea72a06bd389b3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: fix calling `set_user` without a created span raising a `ValueError`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-botocore-env-vars-89b106aadf2bba1d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixes parsing of ``botocore`` env variables to ensure they are parsed as booleans. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-cors-errors-0fa947a1a583ad0c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: avoid ``SynchronousOnlyOperation`` when failing to retrieve user information. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-django-db-connections-b9b98a7b49f27c5f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: fix a bug where multiple database backends would not be instrumented. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-er-include-nonlocals-bbeecfbbbde35496.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | exception replay: include missing nonlocal variables in snapshot log messages. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-gevent-support-_operator-163719336cc8980a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed an issue with gevent support and the typing module on CPython >= 3.12. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-git-unshallow-84b5b81db6e79287.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | CI Visibility: This fix solves an issue where the git unshallow command wasn't called 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-keep-copyreg-29c28bcc854e13bb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | gevent: Fix a bug that caused traceback objects to fail to pickle when using gevent. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-lib-injection-denylist-d5478ecfef90fbcd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: This fix adds more commands to the auto-injection denylist. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-lib-injection-version-support-ae2ff3a79ac1f6f2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Support Python 2.7+ for injection compatibility check. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-psycopg-async-iteration-d48a62f8aa597457.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | psycopg: Ensures traced async cursors return an asynchronous iterator object. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-sanic-resource-name-e9f5b0417f3cda13.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | sanic: use path parameter names instead of parameter values for the resource. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-span-link-ids-e8161faabb39f5ee.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: Fixes a bug that prevents span links from being visualized in the Datadog UI. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-span-unnecessary-gc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracing: Removes a reference cycle that caused unnecessary garbage collection for top-level spans. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-unittest-data-not-initialized-4c08983165adcfc1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | CI Visibility: fixes ``unittest`` data not being initialized properly 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix_packages_oserror-b8da190cea6997de.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | internal: fixes an issue where some pathlib functions return OSError on Windows. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-cmdi-langchain-863be95c1160e50f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Vulnerability Management for Code-level (IAST): Add support for CMDi in langchain. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/monkey-import-exceptions-eb9557ea85a921fe.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | tracer: Handle exceptions besides ``ImportError`` when integrations are loaded. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/non-active-span-3398e88b19eb94c3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | This change removes the deprecated non_active_span parameter to `HttpPropagator.inject` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/oai-sys-prompt-46909baa4e9b44c1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | LLM Observability: This introduces tracing for system prompts in the OpenAI Agents SDK. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pin-protobuf-version-e06dd99a8fa47196.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Pin ``protobuf`` version to ``<3.18`` for Python <=3.5 due to support being dropped. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-dynamic-agent-url-1f285029201620b8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: profiler uses agent url configured via ``tracer.configure()`` 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-fix-deadlock-gevent-1e6192828238def3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | The profiler won't deadlock on fork when gevent monkey patch is enabled. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-threading-tracing-6877348333bbaa80.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The profiler now captures the traces information with the lock profiling. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-threadlink-lock-27df798c36ed64e6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | profiling: fix a possible deadlock due to spans being activated unexpectedly. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pymongo-disabled-tracer-bug-fix-d7782296afe5c1a9.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | Pymongo instrumentation raises an AttributeError when ``tracer.enabled == False`` 4 | -------------------------------------------------------------------------------- /releasenotes/notes/rc_asm_features_fix-56fb35d0ca6c5d69.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: This fix resolves an issue where ASM one click feature could fail to deactivate ASM. -------------------------------------------------------------------------------- /releasenotes/notes/redact-sensitive-querystrings-in-http-url-522461022535a1e2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: Redact sensitive query strings if sent in http.url. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/removed_ddtrace.util.py-0d0f48aefa6d9779.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - ".. _remove-ddtrace-util: 4 | 5 | 6 | ``ddtrace.util`` is removed. 7 | 8 | " 9 | -------------------------------------------------------------------------------- /releasenotes/notes/suspicious_attacker_blocking-0331938836dd0bdf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | ASM: This introduces suspicious attacker blocking with libddwaf 1.19.1 5 | -------------------------------------------------------------------------------- /releasenotes/notes/telemetry-logs-validate-unique-messages-5a020f0531952e0c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | telemetry: resolves issue with sending unnecessary duplicate logs 5 | -------------------------------------------------------------------------------- /tests/debugging/exploration/output.py: -------------------------------------------------------------------------------- 1 | from _config import config 2 | 3 | 4 | def log(*args): 5 | print(*args, file=config.output_stream) 6 | config.output_stream.flush() 7 | -------------------------------------------------------------------------------- /tests/errortracking/third_party/numpy.py: -------------------------------------------------------------------------------- 1 | def numpy_f(): 2 | try: 3 | raise ValueError("") 4 | except ValueError: 5 | return "" 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add-code-coverage-tag-ef5c183d3f29d5c3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | CI Visibility: Adds code coverage lines covered tag for ``pytest`` and ``unittest``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-datastreams-monitoring-schema-tracking-784ba3f9f3c368d2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Datastreams Monitoring (DSM): Add support for schema tracking. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-avoid-idna-d724dce73afafa93.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Code Security: add encodings.idna to the IAST patching denylist to avoid problems with gevent. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/asm-ddtracerun-info-bf2380675fe1c721.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | ASM: Add information about Application Security config values on `ddtrace-run --info`. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/celerybeat-64b7b984461c6d12.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | celery: Adds automatic tracing of the ``celery.beat`` scheduling service to the ``celery`` integration. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/circular-psycopg3-import-c27df66875895fc7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | psycopg: This fix resolves a potential circular import with the psycopg3 contrib. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/data-streams-public-api-9655d5b0c7f6f26e.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | data_streams: Adds public api ``set_produce_checkpoint`` and ``set_consume_checkpoint`` 4 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-dd_trace_global_tags-b3d29bddc3dffe0c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | tracing: Deprecates support for DD_TRACE_GLOBAL_TAGS in favor of `DD_TAGS`. -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-span-pprint-master-101afa039a6bbaee.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | :py:meth:`ddtrace.Span.pprint` is deprecated and will be removed in v1.0. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/docs-gunicorn-bd0db8c3c25c7deb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - | 4 | Documentation on how to use Gunicorn with the ``gevent`` worker class has 5 | been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/es-pin-tags-7f1d5d312a91ef0d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | elasticsearch: This allows custom tags to be set on Elasticsearch spans via the Pin interface. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-azure-functions-http-distributed-tracing-79a15a88e1a1993a.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | azure_functions: Add distributed tracing support for http triggers. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-azure-functions-service-bus-trigger-cf816fdbb710f970.yaml: -------------------------------------------------------------------------------- 1 | features: 2 | - | 3 | azure_functions: This introduces tracing support for service bus triggers. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/feat-bedrock-embedding-d44ac603bdb83a7b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | botocore: This introduces tracing support for bedrock-runtime embedding operations. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-asm-request-context-partial-flushing-7c45aaf55e836261.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | ASM: Fixes encoding error when using AppSec and a trace is partial flushed. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-debugger-write-retries-e097ff1f0836531b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | dynamic instrumentation: uploading snapshots now retries on all HTTP error codes. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-django-cache-unicode-5777a6775fa312c4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django,redis: fix unicode decode error when using unicode cache key on Python 2.7 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-dont-log-remoteconfig-stacktrace-ab7d1db057233454.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | Fix full stacktrace being sent to the log on remote config connection errors. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-futures-args-a206048e19889ad7.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | Fix error when calling ``concurrent.futures.ThreadPoolExecutor.submit`` with ``fn`` keyword argument. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-itr-test-skipping-e4b99a581138a8fd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | CI Visibility: This fix resolves an issue where test skipping was not working properly. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-kafka-commit-offsets-d86039c29e04259e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | kafka: Fixes ``ValueError`` raised when ``Consumer.commit(offsets=...)`` is called. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-lib-injection-sys-argv-fefc775a4a262d86.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Fix injection guardrail check when ``sys.argv`` is not available. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-lib-injection-telemetry-4fbea5e41ee1ff3e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | lib-injection: Fix missing lib-injection telemetry for common abort scenarios. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-profilier-unicode-py27-170d078ba5712f2d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Profiler raises a typing error when ``Span.resource`` is unicode on Python 2.7. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-redis-command-stack-2ef2be7f28c2e9ee.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | redis: Fix pipeline compatibility with redis >= 6.2.0 after ``_command_stack`` removal. -------------------------------------------------------------------------------- /releasenotes/notes/fix-stream-response-django-cd92556cc2a082bb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | django: Resolves ``AttributeError`` raised by traced ``StreamingHttpResponse``. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/fix-verify-url-7d0dd6b0ab53306f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix for ValueError when ``@`` is not present in network location but other part of the url. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/iast-fastapi-header-injection-ce4805c91e87ebe2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Code Security: add support for Header Injection vulnerability sink point. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/langchain-drop-v0.0-support-745a0572da799e4e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | langchain: Drops tracing and LLM Observability support for Langchain v0.0.x versions. -------------------------------------------------------------------------------- /releasenotes/notes/libinjection-denytlist-modules-a5e0407ed6b8166a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | libinjection: allow python module executed with ``-m`` entries in the denylist. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/llmobs-add-dd-tags-f2203cb49cb531af.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | LLM Observability: Properly parse ``DD_TAGS`` onto LLM Observability span events' tags. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/no-linux-32bit-cd10b5e02e83674b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | 32-bit linux is no longer supported. Please contact us if this blocks upgrading dd-trace-py. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-asyncio-lock-with-ef209edcdd346093.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | profiling: captures ``asyncio.Lock`` usages with ``with`` context managers 5 | 6 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-fix-ddup-memleak-ca7e73197890cfd2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix ``span_id`` conversion and potential invalid references in profiling exporter. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-fix-on-cpu-tasks-unwinding-0ac6efcad8150f1c.yaml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - | 3 | profiling: This fix makes stack sampling more accurate for on-CPU asyncio Tasks. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-gevent-support-older-8e1eb89e36ba8c14.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Profiling now supports tracing greenlets with gevent version prior to 1.3. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-move-echion-to-dd-trace-py-6a231b502eed899c.yaml: -------------------------------------------------------------------------------- 1 | other: 2 | - | 3 | profiling: Moves echion, the Python stack sampler, to the ddtrace-py repository. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-tags-api-f4d732d3c31ee2cf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The `Profiler` object can now be passed tags with the `tags` keyword 5 | argument. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/profiling-track-task-gevent-threading-lock-313ac1db779e624a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The gevent tasks are now tracked by the threading lock events 5 | -------------------------------------------------------------------------------- /releasenotes/notes/py38-deprecate-34dc9ef0416b0381.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Support for ddtrace with Python 3.8 is deprecated and will be removed in version 4.0.0. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/rcm-fix-disable-f45787a4e6576f53.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Ensure DD_REMOTE_CONFIGURATION_ENABLED environment variable disables remote config if set to False -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecations-from-pin-a700ae0cb6d51d03.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | tracing: Removes support for overriding the global tracer in ``ddtrace.trace.Pin`` -------------------------------------------------------------------------------- /releasenotes/notes/wsgi-move-request-modifer-code-809521ff9000ea64.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | wsgi: ensures resource and http tags are always set on `wsgi.request` spans. 5 | -------------------------------------------------------------------------------- /tests/appsec/iast/fixtures/ast/io/function_bytesio.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from _io import BytesIO 3 | 4 | 5 | def fixture_function_bytesio(): 6 | return BytesIO(b"test") 7 | -------------------------------------------------------------------------------- /tests/contrib/django/compat.py: -------------------------------------------------------------------------------- 1 | __all__ = ["reverse"] 2 | 3 | try: 4 | from django.core.urlresolvers import reverse 5 | except ImportError: 6 | from django.urls import reverse 7 | -------------------------------------------------------------------------------- /.gitlab/scripts/get-riot-hashes.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e -u -o pipefail 3 | 4 | SUITE_NAME="${1:-}" 5 | riot list --hash-only "${SUITE_NAME}" | sort | ./.gitlab/ci-split-input.sh 6 | -------------------------------------------------------------------------------- /ddtrace/contrib/internal/asyncio/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | This integration provides context management for tracing the execution flow 3 | of concurrent execution of ``asyncio.Task``. 4 | """ 5 | -------------------------------------------------------------------------------- /releasenotes/notes/Fix-version-constraints-for-Py27-e3a0069f43a84c16.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fix issue with ``attrs`` and ``contextlib2`` version constraints for Python 2.7. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/actions_from_RC-08744fc9e91a8c02.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | ASM: This fix resolves an issue where an org could not customize actions through remote config. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-aws-payload-tagging-d01f0033c7e1f5c0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for expanding AWS request/response Payloads into flattened span tags. 5 | 6 | --------------------------------------------------------------------------------