ddapm-test-agent 1.33.0__tar.gz → 1.34.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/main.yml +4 -3
  2. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/PKG-INFO +5 -9
  3. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/README.md +4 -5
  4. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/__init__.py +1 -1
  5. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/agent.py +14 -8
  6. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/trace_snapshot.py +48 -13
  7. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/vcr_proxy.py +15 -7
  8. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/PKG-INFO +5 -9
  9. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/SOURCES.txt +5 -10
  10. ddapm_test_agent-1.34.0/releasenotes/notes/remove-agent-state-header-from-info-87f920bf4ce5785c.yaml +4 -0
  11. ddapm_test_agent-1.34.0/releasenotes/notes/remove-nix-ec1c4aca7dc002c4.yaml +4 -0
  12. ddapm_test_agent-1.34.0/releasenotes/notes/remove-old-pythons-4667b182aacf0ce6.yaml +4 -0
  13. ddapm_test_agent-1.34.0/releasenotes/notes/vcr-ci-mode-99dbd2940fff8d7a.yaml +4 -0
  14. ddapm_test_agent-1.34.0/releasenotes/notes/vcr-proxy-aws-recalculation-fix-2184c10270a7bca5.yaml +4 -0
  15. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/riotfile.py +4 -1
  16. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/setup.cfg +1 -0
  17. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/setup.py +0 -3
  18. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/conftest.py +7 -0
  19. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_distributed_propagated.json +1 -1
  20. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_client.py +3 -2
  21. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_snapshot_integration.py +14 -12
  22. ddapm_test_agent-1.33.0/.envrc.example +0 -6
  23. ddapm_test_agent-1.33.0/.github/workflows/nix-auto.yml +0 -33
  24. ddapm_test_agent-1.33.0/build-on-darwin.Dockerfile +0 -28
  25. ddapm_test_agent-1.33.0/ddsketch.nix +0 -32
  26. ddapm_test_agent-1.33.0/ddtrace.nix +0 -72
  27. ddapm_test_agent-1.33.0/flake.lock +0 -117
  28. ddapm_test_agent-1.33.0/flake.nix +0 -150
  29. ddapm_test_agent-1.33.0/shell.nix +0 -1
  30. ddapm_test_agent-1.33.0/treefmt.nix +0 -13
  31. ddapm_test_agent-1.33.0/use-example.Dockerfile +0 -3
  32. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.dockerignore +0 -0
  33. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/docker.yml +0 -0
  34. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/publish_pypi.yml +0 -0
  35. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/releasenote.yml +0 -0
  36. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.gitignore +0 -0
  37. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/Dockerfile +0 -0
  38. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/Dockerfile.windows +0 -0
  39. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/LICENSE.BSD3 +0 -0
  40. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/LICENSE.apache2 +0 -0
  41. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/apmtelemetry.py +0 -0
  42. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/checks.py +0 -0
  43. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/client.py +0 -0
  44. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/cmd.py +0 -0
  45. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/context.py +0 -0
  46. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/fmt.py +0 -0
  47. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/integration.py +0 -0
  48. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/logs.py +0 -0
  49. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/metrics.py +0 -0
  50. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/remoteconfig.py +0 -0
  51. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/trace.py +0 -0
  52. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/trace_checks.py +0 -0
  53. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/tracerflare.py +0 -0
  54. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/tracestats.py +0 -0
  55. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/tracestats_snapshot.py +0 -0
  56. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/dependency_links.txt +0 -0
  57. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/entry_points.txt +0 -0
  58. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/not-zip-safe +0 -0
  59. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/requires.txt +0 -0
  60. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/top_level.txt +0 -0
  61. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/pyproject.toml +0 -0
  62. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/check-releasenotes +0 -0
  63. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/config.yaml +0 -0
  64. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/1.0-e192f5064e917083.yaml +0 -0
  65. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Add-metrics.process_id-to-ignored-attributes-62b264f0ea591326.yaml +0 -0
  66. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Add-values-handling-to-span_event-array_value-to-mirror-agent-ee7483c90c263ff4.yaml +0 -0
  67. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Checks-changed-to-opt-in-8716cac4ecdbb1c2.yaml +0 -0
  68. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/SNAPSHOT_REGEX_PLACEHOLDERS-1d2c5e2711d1953b.yaml +0 -0
  69. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/SNAPSHOT_REGEX_PLACEHOLDERS-compare-c829e7a4df4fa1f4.yaml +0 -0
  70. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Settings-endpoint-928ae5b6e8ddc625.yaml +0 -0
  71. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Telemetry-requests-delay-2586180b286ce393.yaml +0 -0
  72. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Use-default-value-for-null-fields-in-tracestats-55d465f489efb2ba.yaml +0 -0
  73. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/acceptV1TracePayloads-5435cff37cfb6a85.yaml +0 -0
  74. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-datadog-proxy-7e2e608c101a564b.yaml +0 -0
  75. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-distributed-trace-c35a314698a3b966.yaml +0 -0
  76. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-fmt-command-cc31769942a5fec3.yaml +0 -0
  77. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-nix-build-support-29dc8a347e3bd7c1.yaml +0 -0
  78. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-optional-json-parser-10aac54bd1cbe322.yaml +0 -0
  79. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-otel-metrics-support-a2ebeb28cae2f0ba.yaml +0 -0
  80. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-python-3.13-support-ae7b96f4a10f20f4.yaml +0 -0
  81. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-rcm-endpoints-7e1f949e83e21039.yaml +0 -0
  82. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-request-forwarding-middleware-d3f325166b0f8e9e.yaml +0 -0
  83. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-service-naming-checks-2b68ff51d1b5496d.yaml +0 -0
  84. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-session-to-rcm-endpoints-d97e925a04a99a65.yaml +0 -0
  85. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-span-events-306e697168373899.yaml +0 -0
  86. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-support-for-plain-text-responses-00d20bf7b335e75b.yaml +0 -0
  87. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-support-telemetry-requests-10737cd3da802ca6.yaml +0 -0
  88. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-tracer_flare-endpoint-b2c81510920974d7.yaml +0 -0
  89. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/addAgentStateToInfo-f9a179ce88f2ab9e.yaml +0 -0
  90. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/addPeerTagsToInfo-4ccc2539d22c2993.yaml +0 -0
  91. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/allow-attribute-removal-snapshots-314b744b043b97c5.yaml +0 -0
  92. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/args-88f664c83a96075d.yaml +0 -0
  93. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/change-trace-proxy-headers-f9fcbb4efc4fcb95.yaml +0 -0
  94. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/check-http-header-sensitivity-daaa9d9595ae86d6.yaml +0 -0
  95. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/clearing-sessions-now-only-removes-6b0311673d8b37aa.yaml +0 -0
  96. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/client-173dbc6655e42337.yaml +0 -0
  97. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/content_length-e1bab75580aa1dcb.yaml +0 -0
  98. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/disable-error-responses-and-collect-trace-failures-in-memory-4a199bc7be416709.yaml +0 -0
  99. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/docker-arm64-images-a4b6b2cc527327d6.yaml +0 -0
  100. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/evp-proxy-on-info-d65cd077575306ca.yaml +0 -0
  101. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/exception-messages-21ee64461020edd1.yaml +0 -0
  102. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-docker-image-tags-785d40f5bfdb8003.yaml +0 -0
  103. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-fmt-logging-6a323fd8d5d4eb28.yaml +0 -0
  104. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-getting-tested-integrations-multiple-session-tokens-4ee41d545754f87f.yaml +0 -0
  105. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-matching-319744b82d2514c1.yaml +0 -0
  106. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-missing-slim-deps-fa3b0fc0292a09b3.yaml +0 -0
  107. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-partial-chunks-0db14ce3017e6173.yaml +0 -0
  108. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-racecondition-9bd0ef15b7da60fa.yaml +0 -0
  109. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-tracerflare-request-parsing-fae18ff9997c216d.yaml +0 -0
  110. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/genai-vcr-support-b499ec54df84eaa3.yaml +0 -0
  111. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/ignore-dsm-pathway-hash-during-trace-snapshots-f0b99ea267fbad48.yaml +0 -0
  112. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/image-optimization-d614eccb59441217.yaml +0 -0
  113. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/improve-test-agent-debugging-5759413f1fc5f7fa.yaml +0 -0
  114. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/improve-test-agent-proxying-a207f0fc81b3ab2d.yaml +0 -0
  115. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/improve-trace-check-results-endpoints-6ab4132628520793.yaml +0 -0
  116. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/info-34dcd9cbcc382487.yaml +0 -0
  117. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/info-drop-p0s-c207889f590340fb.yaml +0 -0
  118. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/llmobs-eval-metric-endpoint-8b5222491969ab4f.yaml +0 -0
  119. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/llmobs-evp-proxy-1383f4b4962ac7c9.yaml +0 -0
  120. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/meta-struct-2cce08475cb05470.yaml +0 -0
  121. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/more-oai-cass-908eb5ea46bd2985.yaml +0 -0
  122. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/new-process-id-tag-f0ab0daf652e05cc.yaml +0 -0
  123. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/oai-incomplete-cass-795ad19b6a226c1f.yaml +0 -0
  124. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/otlp-logs-grpc-45365879c22969aa.yaml +0 -0
  125. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/otlp-logs-support-d5a150d9f5304d7c.yaml +0 -0
  126. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/pipeline_stats_endpoint-e8ad6da735dc2647.yaml +0 -0
  127. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/profiling-endpoint-0cd209e4e5b6cfc0.yaml +0 -0
  128. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/provider-snapshot-server-f6a307acbf11d214.yaml +0 -0
  129. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/proxy-37c94e2fb428c6fc.yaml +0 -0
  130. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python-3.12-952e06c6158af67d.yaml +0 -0
  131. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python-support-1c447acc4607abc7.yaml +0 -0
  132. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python310-025fbc190363de98.yaml +0 -0
  133. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python310-docker-image-d4e329cfecf6510e.yaml +0 -0
  134. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/rc-encoding-length-fix-cc011edea7f8f5b2.yaml +0 -0
  135. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/rc-get-endpoint-e502f55b7df544e2.yaml +0 -0
  136. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/remoteconfig-requests-1af7abb99c61c069.yaml +0 -0
  137. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/reuse-session-1670aa569907cf68.yaml +0 -0
  138. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/sample-rate-1e06ae4cdc933b14.yaml +0 -0
  139. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/session-requests-b8057811f976220e.yaml +0 -0
  140. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/session-tracerflares-400ce9b3d3838b40.yaml +0 -0
  141. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-cmds-de4a561911afee11.yaml +0 -0
  142. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-empty-maps-2cbe8cea3e7112fa.yaml +0 -0
  143. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-error-messages-de41d9e3207fa30a.yaml +0 -0
  144. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-filename-c068de1bc3e50c04.yaml +0 -0
  145. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-order-type-2d6424e380b2c88f.yaml +0 -0
  146. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-parent-id-7abb860008702e70.yaml +0 -0
  147. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/span-links-1ec76bd2b47a3880.yaml +0 -0
  148. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/span-ordering-1a7b383aa015bddc.yaml +0 -0
  149. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/span-parent-id-a4d7d63fa623361c.yaml +0 -0
  150. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/support-ant-vcr-1eff9a40caa0aba0.yaml +0 -0
  151. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/support-tracking-of-tested-integrations-ac19ccd1f8333c00.yaml +0 -0
  152. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/throttling-590bf58ecb3cc4a5.yaml +0 -0
  153. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/trace-stats-97da3a478dabfa99.yaml +0 -0
  154. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/trace-stats-snapshot-718ca37385c93e1e.yaml +0 -0
  155. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/traces-endpoint-f4f9c1d94d6ceda2.yaml +0 -0
  156. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/tracestats-fixes-07152c708e73ef96.yaml +0 -0
  157. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/tracestats-post-65ce788f81862532.yaml +0 -0
  158. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/tracestats-service-2a0a178cbd21b07d.yaml +0 -0
  159. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-64b11960931d8b77.yaml +0 -0
  160. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-c99ea5d099e67156.yaml +0 -0
  161. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-container-8138f8b1438b1a0a.yaml +0 -0
  162. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-permissions-903266ac6445b873.yaml +0 -0
  163. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/v0.5-traces-cf469b0b71398d97.yaml +0 -0
  164. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/v0.7-traces-7ea3ebbed7502d01.yaml +0 -0
  165. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-aws-bedrock-proxy-3bf018b1712d5105.yaml +0 -0
  166. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-cassette-name-middleware-fix-9e47c395892a9fe7.yaml +0 -0
  167. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-cassettes-for-openai-v5-6e9d78091de1f0c2.yaml +0 -0
  168. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-cassettes-for-vercel-ai-7a8275f9c2b48bc7.yaml +0 -0
  169. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-prefix-instead-of-suffix-4c56dcb5038d222e.yaml +0 -0
  170. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-proxy-use-test-name-bugfix-be758294ba30ac78.yaml +0 -0
  171. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-proxy-use-test-name-e47891994c961c52.yaml +0 -0
  172. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-support-querystring-b06555fb9a7c90ae.yaml +0 -0
  173. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/version-0c32d2752f154eb9.yaml +0 -0
  174. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/wheels-68a7dc2f4b00e0c4.yaml +0 -0
  175. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/windows-docker-image-1f5d5e894558bb4b.yaml +0 -0
  176. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/test_deps.txt +0 -0
  177. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/__init__.py +0 -0
  178. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_multi_trace.json +0 -0
  179. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_single_trace.json +0 -0
  180. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_distributed_same_payload.json +0 -0
  181. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_missing_received.json +0 -0
  182. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_stats_tracestats.json +0 -0
  183. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_agent.py +0 -0
  184. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_apmtelemetry.py +0 -0
  185. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_checks.py +0 -0
  186. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_container.py +0 -0
  187. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_logs.py +0 -0
  188. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_metrics.py +0 -0
  189. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_remoteconfig.py +0 -0
  190. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_session.py +0 -0
  191. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_snapshot.py +0 -0
  192. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_trace.py +0 -0
  193. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_tracerflare.py +0 -0
  194. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_tracestats.py +0 -0
  195. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/trace_utils.py +0 -0
  196. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_26d618ee.yaml +0 -0
  197. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_595f439c.yaml +0 -0
  198. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_717ba0b4.yaml +0 -0
  199. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_a1af2c12.yaml +0 -0
  200. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/deepseek/deepseek_chat_completions_post_afb6ccab.yaml +0 -0
  201. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_transcriptions_post_173af3e5.yaml +0 -0
  202. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_transcriptions_post_71305a25.yaml +0 -0
  203. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_translations_post_d5b5b8d6.yaml +0 -0
  204. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_translations_post_dd92a18a.yaml +0 -0
  205. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_0f1514e1.yaml +0 -0
  206. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_172294b4.yaml +0 -0
  207. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_193ae44a.yaml +0 -0
  208. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_23558eed.yaml +0 -0
  209. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_2edb59ae.yaml +0 -0
  210. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_3517e44e.yaml +0 -0
  211. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_36bdc0cb.yaml +0 -0
  212. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_3c045664.yaml +0 -0
  213. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_432a8e46.yaml +0 -0
  214. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_4749eff9.yaml +0 -0
  215. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_4dce8db6.yaml +0 -0
  216. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_57612363.yaml +0 -0
  217. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_649d8162.yaml +0 -0
  218. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_655a8ef2.yaml +0 -0
  219. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_66dfc80e.yaml +0 -0
  220. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_67e8e833.yaml +0 -0
  221. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_6df851cc.yaml +0 -0
  222. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_7c2d1ac5.yaml +0 -0
  223. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_82a4bb3c.yaml +0 -0
  224. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_9122b1ae.yaml +0 -0
  225. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_917478d0.yaml +0 -0
  226. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_a73ecd7a.yaml +0 -0
  227. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_a925b737.yaml +0 -0
  228. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_ae4728c2.yaml +0 -0
  229. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_b29f1a87.yaml +0 -0
  230. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_ce69ed91.yaml +0 -0
  231. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_d8fb132a.yaml +0 -0
  232. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_d94d5844.yaml +0 -0
  233. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_d98ce00d.yaml +0 -0
  234. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_ebff79da.yaml +0 -0
  235. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_33681ea4.yaml +0 -0
  236. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_5d2418d4.yaml +0 -0
  237. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_619dee1c.yaml +0 -0
  238. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_6224acff.yaml +0 -0
  239. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_87f617af.yaml +0 -0
  240. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_98c30019.yaml +0 -0
  241. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_9bb49464.yaml +0 -0
  242. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_b24dbf7d.yaml +0 -0
  243. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_embeddings_post_0381abe4.yaml +0 -0
  244. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_embeddings_post_48694087.yaml +0 -0
  245. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_embeddings_post_541bd4d0.yaml +0 -0
  246. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_content_get_60bd10ef.yaml +0 -0
  247. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_delete_3ee48409.yaml +0 -0
  248. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_get_1afefb93.yaml +0 -0
  249. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_get_68efa25d.yaml +0 -0
  250. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_post_2fcf9545.yaml +0 -0
  251. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_post_957d63ba.yaml +0 -0
  252. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_ftjob-q9CUUUsHJemGUVQ1Ecc01zcf_cancel_post_d7c16b38.yaml +0 -0
  253. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_ftjob-q9CUUUsHJemGUVQ1Ecc01zcf_events_get_557d820e.yaml +0 -0
  254. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_ftjob-q9CUUUsHJemGUVQ1Ecc01zcf_get_265489e7.yaml +0 -0
  255. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_get_ebc57c6f.yaml +0 -0
  256. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_post_c3b6e4a9.yaml +0 -0
  257. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_075386c4.yaml +0 -0
  258. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_57b4f4da.yaml +0 -0
  259. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_660e9dd7.yaml +0 -0
  260. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_993e0192.yaml +0 -0
  261. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_a2f1eb43.yaml +0 -0
  262. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_ae72c45f.yaml +0 -0
  263. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_cf5af376.yaml +0 -0
  264. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_dbefb624.yaml +0 -0
  265. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_generations_post_48272841.yaml +0 -0
  266. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_generations_post_736070ea.yaml +0 -0
  267. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_variations_post_5971e285.yaml +0 -0
  268. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_variations_post_f2f62f6c.yaml +0 -0
  269. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_models_ft_gpt-4.1-mini-2025-04-14_datadog-staging__BkaILRSh_delete_c70f2992.yaml +0 -0
  270. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_models_get_e04cf04b.yaml +0 -0
  271. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_models_gpt-4_get_b13c5b23.yaml +0 -0
  272. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_moderations_post_532b3315.yaml +0 -0
  273. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_33fb1f66.yaml +0 -0
  274. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_5ca556ec.yaml +0 -0
  275. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_c05c936e.yaml +0 -0
  276. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_c61e3067.yaml +0 -0
  277. {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_ee2423e6.yaml +0 -0
@@ -10,7 +10,8 @@ jobs:
10
10
  steps:
11
11
  - uses: actions/setup-python@7f4fc3e22c37d6ff65e88745f38bd3157c663f7c # v4.9.1
12
12
  with:
13
- python-version: '3.13'
13
+ # Run typing/formatting/etc checks on the oldest version we support
14
+ python-version: '3.11'
14
15
  - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
15
16
  with:
16
17
  fetch-depth: 0
@@ -22,7 +23,7 @@ jobs:
22
23
  strategy:
23
24
  matrix:
24
25
  os: [ubuntu-latest, macos-latest]
25
- python-version: ["3.8", "3.13"]
26
+ python-version: ["3.11", "3.12", "3.13"]
26
27
  runs-on: ${{ matrix.os }}
27
28
  steps:
28
29
  - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
@@ -32,7 +33,7 @@ jobs:
32
33
  - name: install deps
33
34
  run: pip install .[testing]
34
35
  - run: |
35
- riot run -p --pass-env ${{ matrix.python-version}} test
36
+ riot run --pass-env -p ${{ matrix.python-version}} test
36
37
  cassettes-size:
37
38
  runs-on: ubuntu-latest
38
39
  steps:
@@ -1,15 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ddapm-test-agent
3
- Version: 1.33.0
3
+ Version: 1.34.0
4
4
  Summary: Test agent for Datadog APM client libraries
5
5
  Home-page: https://github.com/Datadog/dd-apm-test-agent
6
6
  Author: Kyle Verhoog
7
7
  Author-email: kyle@verhoog.ca
8
8
  License: BSD 3
9
9
  Classifier: Programming Language :: Python
10
- Classifier: Programming Language :: Python :: 3.8
11
- Classifier: Programming Language :: Python :: 3.9
12
- Classifier: Programming Language :: Python :: 3.10
13
10
  Classifier: Programming Language :: Python :: 3.11
14
11
  Classifier: Programming Language :: Python :: 3.12
15
12
  Classifier: Programming Language :: Python :: 3.13
@@ -64,11 +61,6 @@ See the [Development](#development) section for how to get the test agent runnin
64
61
 
65
62
  ## Installation
66
63
 
67
- The test agent can be installed using [nix](https://docs.determinate.systems/getting-started/):
68
-
69
- nix profile install github:datadog/dd-apm-test-agent#ddapm-test-agent
70
- # nix profile upgrade ddapm-test-agent # to upgrade
71
-
72
64
  The test agent can be installed from PyPI:
73
65
 
74
66
  pip install ddapm-test-agent
@@ -248,6 +240,10 @@ And pass in a valid API key (if needed) in the way that provider expects.
248
240
 
249
241
  To redact api keys, modify the `filter_headers` list in the `get_vcr` function in `ddapm_test_agent/vcr_proxy.py`. This can be confirmed by viewing cassettes in the `vcr-cassettes` directory (or the otherwise specified directory), and verifying that any new cassettes do not contain the api key.
250
242
 
243
+ #### Running in CI
244
+
245
+ To have the vcr proxy throw a 404 error if a cassette is not found in CI mode to ensure that all cassettes are generated locally and committed, set the `VCR_CI_MODE` environment variable or the `--vcr-ci-mode` flag in the cli tool to `true` (this value defaults to `false`).
246
+
251
247
  ## Configuration
252
248
 
253
249
  The test agent can be configured via command-line options or via environment variables.
@@ -17,11 +17,6 @@ See the [Development](#development) section for how to get the test agent runnin
17
17
 
18
18
  ## Installation
19
19
 
20
- The test agent can be installed using [nix](https://docs.determinate.systems/getting-started/):
21
-
22
- nix profile install github:datadog/dd-apm-test-agent#ddapm-test-agent
23
- # nix profile upgrade ddapm-test-agent # to upgrade
24
-
25
20
  The test agent can be installed from PyPI:
26
21
 
27
22
  pip install ddapm-test-agent
@@ -201,6 +196,10 @@ And pass in a valid API key (if needed) in the way that provider expects.
201
196
 
202
197
  To redact api keys, modify the `filter_headers` list in the `get_vcr` function in `ddapm_test_agent/vcr_proxy.py`. This can be confirmed by viewing cassettes in the `vcr-cassettes` directory (or the otherwise specified directory), and verifying that any new cassettes do not contain the api key.
203
198
 
199
+ #### Running in CI
200
+
201
+ To have the vcr proxy throw a 404 error if a cassette is not found in CI mode to ensure that all cassettes are generated locally and committed, set the `VCR_CI_MODE` environment variable or the `--vcr-ci-mode` flag in the cli tool to `true` (this value defaults to `false`).
202
+
204
203
  ## Configuration
205
204
 
206
205
  The test agent can be configured via command-line options or via environment variables.
@@ -1,4 +1,4 @@
1
1
  def _get_version():
2
- import pkg_resources # type: ignore[import-untyped]
2
+ import pkg_resources
3
3
 
4
4
  return pkg_resources.get_distribution(__name__).version
@@ -133,7 +133,7 @@ def _session_token(request: Request) -> Optional[str]:
133
133
 
134
134
  async def _vcr_proxy_cassette_prefix(request: Request) -> Optional[str]:
135
135
  try:
136
- request_body: dict[str, str] = await request.json()
136
+ request_body: Dict[str, str] = await request.json()
137
137
  requested_test_name = request_body.get("test_name")
138
138
  return requested_test_name
139
139
  except (json.JSONDecodeError, UnicodeDecodeError):
@@ -165,7 +165,7 @@ async def handle_exception_middleware(request: Request, handler: _Handler) -> we
165
165
 
166
166
  async def _forward_request(
167
167
  request_data: bytes, headers: Mapping[str, str], full_agent_url: str
168
- ) -> tuple[ClientResponse, str]:
168
+ ) -> Tuple[ClientResponse, str]:
169
169
  async with ClientSession() as session:
170
170
  async with session.post(
171
171
  full_agent_url,
@@ -831,7 +831,6 @@ class Agent:
831
831
  "peer_tags": ["db.name", "mongodb.db", "messaging.system"],
832
832
  "span_events": True, # Advertise support for the top-level Span field for Span Events
833
833
  },
834
- headers={"Datadog-Agent-State": "03e868b3ecdd62a91423cc4c3917d0d151fb9fa486736911ab7f5a0750c63824"},
835
834
  )
836
835
 
837
836
  async def _handle_traces(self, request: Request, version: Literal["v0.4", "v0.5", "v0.7", "v1"]) -> web.Response:
@@ -929,10 +928,9 @@ class Agent:
929
928
  # Get the span attributes that are to be removed for this snapshot.
930
929
  default_attribute_regex_replaces: Dict[str, str] = request.app["snapshot_regex_placeholders"]
931
930
  regex_overrides = _parse_map(request.url.query.get("regex_placeholders", ""))
932
- attribute_regex_replaces = dict(
933
- (f"{{{key}}}", re.compile(regex))
934
- for (key, regex) in (default_attribute_regex_replaces | regex_overrides).items()
935
- )
931
+ regex_replaces = default_attribute_regex_replaces.copy()
932
+ regex_replaces.update(regex_overrides)
933
+ attribute_regex_replaces = dict((f"{{{key}}}", re.compile(regex)) for (key, regex) in regex_replaces.items())
936
934
  log.info("using regex placeholders %r", attribute_regex_replaces)
937
935
 
938
936
  if "span_id" in span_removes:
@@ -1357,6 +1355,7 @@ def make_app(
1357
1355
  snapshot_removed_attrs: List[str],
1358
1356
  snapshot_regex_placeholders: Dict[str, str],
1359
1357
  vcr_cassettes_directory: str,
1358
+ vcr_ci_mode: bool,
1360
1359
  ) -> web.Application:
1361
1360
  agent = Agent()
1362
1361
  app = web.Application(
@@ -1418,7 +1417,7 @@ def make_app(
1418
1417
  web.route(
1419
1418
  "*",
1420
1419
  "/vcr/{path:.*}",
1421
- lambda request: proxy_request(request, vcr_cassettes_directory),
1420
+ lambda request: proxy_request(request, vcr_cassettes_directory, vcr_ci_mode),
1422
1421
  ),
1423
1422
  ]
1424
1423
  )
@@ -1583,6 +1582,12 @@ def main(args: Optional[List[str]] = None) -> None:
1583
1582
  default=os.environ.get("VCR_CASSETTES_DIRECTORY", os.path.join(os.getcwd(), "vcr-cassettes")),
1584
1583
  help="Directory to read and store third party API cassettes.",
1585
1584
  )
1585
+ parser.add_argument(
1586
+ "--vcr-ci-mode",
1587
+ type=bool,
1588
+ default=os.environ.get("VCR_CI_MODE", False),
1589
+ help="Will change the test agent to record VCR cassettes in CI mode, throwing an error if a cassette is not found on /vcr/{provider}",
1590
+ )
1586
1591
  parsed_args = parser.parse_args(args=args)
1587
1592
  logging.basicConfig(level=parsed_args.log_level)
1588
1593
 
@@ -1626,6 +1631,7 @@ def main(args: Optional[List[str]] = None) -> None:
1626
1631
  snapshot_removed_attrs=parsed_args.snapshot_removed_attrs,
1627
1632
  snapshot_regex_placeholders=parsed_args.snapshot_regex_placeholders,
1628
1633
  vcr_cassettes_directory=parsed_args.vcr_cassettes_directory,
1634
+ vcr_ci_mode=parsed_args.vcr_ci_mode,
1629
1635
  )
1630
1636
 
1631
1637
  # Validate port configuration
@@ -3,13 +3,13 @@ import json
3
3
  import logging
4
4
  import operator
5
5
  import pprint
6
- from re import Pattern
7
6
  import textwrap
8
7
  from typing import Any
9
8
  from typing import Dict
10
9
  from typing import List
11
10
  from typing import Optional
12
11
  from typing import OrderedDict as OrderedDictType
12
+ from typing import Pattern
13
13
  from typing import Set
14
14
  from typing import Tuple
15
15
  from typing import cast
@@ -188,9 +188,13 @@ def _match_traces(t1s: List[Trace], t2s: List[Trace]) -> List[Tuple[Trace, Trace
188
188
  return matches
189
189
 
190
190
 
191
- def _diff_spans(
192
- s1: Span, s2: Span, ignored: Set[str]
193
- ) -> Tuple[List[str], List[str], List[str], List[Tuple[List[str], List[str]]], List[Tuple[List[str], List[str]]]]:
191
+ def _diff_spans(s1: Span, s2: Span, ignored: Set[str]) -> Tuple[
192
+ List[str],
193
+ List[str],
194
+ List[str],
195
+ List[Tuple[List[str], List[str]]],
196
+ List[Tuple[List[str], List[str]]],
197
+ ]:
194
198
  """Return differing attributes between two spans and their meta/metrics maps.
195
199
 
196
200
  It is assumed that the spans have passed through preliminary validation
@@ -255,7 +259,11 @@ def _diff_spans(
255
259
  )
256
260
  link_diff = []
257
261
  for d1, d2, ign in [
258
- (l1_no_tags, l2_no_tags, set(i[11:] for i in ignored if i.startswith("span_links."))),
262
+ (
263
+ l1_no_tags,
264
+ l2_no_tags,
265
+ set(i[11:] for i in ignored if i.startswith("span_links.")),
266
+ ),
259
267
  (
260
268
  l1.get("attributes") or {},
261
269
  l2.get("attributes") or {},
@@ -288,7 +296,11 @@ def _diff_spans(
288
296
  )
289
297
  event_diff = []
290
298
  for d1, d2, ign in [
291
- (l1_no_tags, l2_no_tags, set(i[12:] for i in ignored if i.startswith("span_events."))),
299
+ (
300
+ l1_no_tags,
301
+ l2_no_tags,
302
+ set(i[12:] for i in ignored if i.startswith("span_events.")),
303
+ ),
292
304
  (
293
305
  e1.get("attributes") or {},
294
306
  e2.get("attributes") or {},
@@ -307,7 +319,13 @@ def _diff_spans(
307
319
  results.append(event_diffs) # type: ignore
308
320
 
309
321
  return cast(
310
- Tuple[List[str], List[str], List[str], List[Tuple[List[str], List[str]]], List[Tuple[List[str], List[str]]]],
322
+ Tuple[
323
+ List[str],
324
+ List[str],
325
+ List[str],
326
+ List[Tuple[List[str], List[str]]],
327
+ List[Tuple[List[str], List[str]]],
328
+ ],
311
329
  tuple(results),
312
330
  )
313
331
 
@@ -334,9 +352,13 @@ def _compare_traces(expected: Trace, received: Trace, ignored: Set[str]) -> None
334
352
  ) as frame:
335
353
  frame.add_item(f"Expected span:\n{pprint.pformat(s_exp)}")
336
354
  frame.add_item(f"Received span:\n{pprint.pformat(s_rec)}")
337
- top_level_diffs, meta_diffs, metrics_diffs, span_link_diffs, span_event_diffs = _diff_spans(
338
- s_exp, s_rec, ignored
339
- )
355
+ (
356
+ top_level_diffs,
357
+ meta_diffs,
358
+ metrics_diffs,
359
+ span_link_diffs,
360
+ span_event_diffs,
361
+ ) = _diff_spans(s_exp, s_rec, ignored)
340
362
 
341
363
  for diffs, diff_type, d_exp, d_rec in [
342
364
  (top_level_diffs, "span", s_exp, s_rec),
@@ -363,7 +385,12 @@ def _compare_traces(expected: Trace, received: Trace, ignored: Set[str]) -> None
363
385
 
364
386
  for i, (link_level_diffs, attribute_diffs) in enumerate(span_link_diffs):
365
387
  for diffs, diff_type, d_exp, d_rec in [
366
- (link_level_diffs, f"{i}", s_exp["span_links"][i], s_rec["span_links"][i]),
388
+ (
389
+ link_level_diffs,
390
+ f"{i}",
391
+ s_exp["span_links"][i],
392
+ s_rec["span_links"][i],
393
+ ),
367
394
  (
368
395
  attribute_diffs,
369
396
  f"{i} attributes",
@@ -387,7 +414,12 @@ def _compare_traces(expected: Trace, received: Trace, ignored: Set[str]) -> None
387
414
 
388
415
  for i, (event_level_diffs, attribute_diffs) in enumerate(span_event_diffs):
389
416
  for diffs, diff_type, d_exp, d_rec in [
390
- (event_level_diffs, f"{i}", s_exp["span_events"][i], s_rec["span_events"][i]),
417
+ (
418
+ event_level_diffs,
419
+ f"{i}",
420
+ s_exp["span_events"][i],
421
+ s_rec["span_events"][i],
422
+ ),
391
423
  (
392
424
  attribute_diffs,
393
425
  f"{i} attributes",
@@ -545,4 +577,7 @@ def generate_snapshot(
545
577
  removed: Optional[List[str]] = None,
546
578
  attribute_regex_replaces: Optional[Dict[str, Pattern[str]]] = None,
547
579
  ) -> str:
548
- return _snapshot_json(_normalize_traces(received_traces, attribute_regex_replaces or {}), removed or [])
580
+ return _snapshot_json(
581
+ _normalize_traces(received_traces, attribute_regex_replaces or {}),
582
+ removed or [],
583
+ )
@@ -146,7 +146,7 @@ def generate_cassette_name(path: str, method: str, body: bytes, vcr_cassette_pre
146
146
  )
147
147
 
148
148
 
149
- async def proxy_request(request: Request, vcr_cassettes_directory: str) -> Response:
149
+ async def proxy_request(request: Request, vcr_cassettes_directory: str, vcr_ci_mode: bool) -> Response:
150
150
  path = request.match_info["path"]
151
151
  if request.query_string:
152
152
  path = path + "?" + request.query_string
@@ -159,14 +159,22 @@ async def proxy_request(request: Request, vcr_cassettes_directory: str) -> Respo
159
159
  if provider not in PROVIDER_BASE_URLS:
160
160
  return Response(body=f"Unsupported provider: {provider}", status=400)
161
161
 
162
- target_url = url_path_join(PROVIDER_BASE_URLS[provider], remaining_path)
163
-
164
- headers = {key: value for key, value in request.headers.items() if key != "Host"}
165
-
166
162
  body_bytes = await request.read()
167
163
 
168
164
  vcr_cassette_prefix = request.pop("vcr_cassette_prefix", None)
169
165
  cassette_name = generate_cassette_name(path, request.method, body_bytes, vcr_cassette_prefix)
166
+ cassette_file_name = f"{cassette_name}.yaml"
167
+ cassette_file_path = os.path.join(vcr_cassettes_directory, provider, cassette_file_name)
168
+ cassette_exists = os.path.exists(cassette_file_path)
169
+
170
+ if vcr_ci_mode and not cassette_exists:
171
+ return Response(
172
+ body=f"Cassette {cassette_file_name} not found while running in CI mode. Please generate the cassette locally and commit it.",
173
+ status=500,
174
+ )
175
+
176
+ target_url = url_path_join(PROVIDER_BASE_URLS[provider], remaining_path)
177
+ headers = {key: value for key, value in request.headers.items() if key != "Host"}
170
178
 
171
179
  request_kwargs: Dict[str, Any] = {
172
180
  "method": request.method,
@@ -178,7 +186,7 @@ async def proxy_request(request: Request, vcr_cassettes_directory: str) -> Respo
178
186
  "stream": True,
179
187
  }
180
188
 
181
- if provider in AWS_SERVICES and not os.path.exists(os.path.join(vcr_cassettes_directory, provider, cassette_name)):
189
+ if provider in AWS_SERVICES and not cassette_exists:
182
190
  if not AWS_SECRET_ACCESS_KEY:
183
191
  return Response(
184
192
  body="AWS_SECRET_ACCESS_KEY environment variable not set for aws signature recalculation",
@@ -192,7 +200,7 @@ async def proxy_request(request: Request, vcr_cassettes_directory: str) -> Respo
192
200
  auth = AWS4Auth(aws_access_key, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_SERVICES[provider])
193
201
  request_kwargs["auth"] = auth
194
202
 
195
- with get_vcr(provider, vcr_cassettes_directory).use_cassette(f"{cassette_name}.yaml"):
203
+ with get_vcr(provider, vcr_cassettes_directory).use_cassette(cassette_file_name):
196
204
  provider_response = requests.request(**request_kwargs)
197
205
 
198
206
  # Extract content type without charset
@@ -1,15 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ddapm-test-agent
3
- Version: 1.33.0
3
+ Version: 1.34.0
4
4
  Summary: Test agent for Datadog APM client libraries
5
5
  Home-page: https://github.com/Datadog/dd-apm-test-agent
6
6
  Author: Kyle Verhoog
7
7
  Author-email: kyle@verhoog.ca
8
8
  License: BSD 3
9
9
  Classifier: Programming Language :: Python
10
- Classifier: Programming Language :: Python :: 3.8
11
- Classifier: Programming Language :: Python :: 3.9
12
- Classifier: Programming Language :: Python :: 3.10
13
10
  Classifier: Programming Language :: Python :: 3.11
14
11
  Classifier: Programming Language :: Python :: 3.12
15
12
  Classifier: Programming Language :: Python :: 3.13
@@ -64,11 +61,6 @@ See the [Development](#development) section for how to get the test agent runnin
64
61
 
65
62
  ## Installation
66
63
 
67
- The test agent can be installed using [nix](https://docs.determinate.systems/getting-started/):
68
-
69
- nix profile install github:datadog/dd-apm-test-agent#ddapm-test-agent
70
- # nix profile upgrade ddapm-test-agent # to upgrade
71
-
72
64
  The test agent can be installed from PyPI:
73
65
 
74
66
  pip install ddapm-test-agent
@@ -248,6 +240,10 @@ And pass in a valid API key (if needed) in the way that provider expects.
248
240
 
249
241
  To redact api keys, modify the `filter_headers` list in the `get_vcr` function in `ddapm_test_agent/vcr_proxy.py`. This can be confirmed by viewing cassettes in the `vcr-cassettes` directory (or the otherwise specified directory), and verifying that any new cassettes do not contain the api key.
250
242
 
243
+ #### Running in CI
244
+
245
+ To have the vcr proxy throw a 404 error if a cassette is not found in CI mode to ensure that all cassettes are generated locally and committed, set the `VCR_CI_MODE` environment variable or the `--vcr-ci-mode` flag in the cli tool to `true` (this value defaults to `false`).
246
+
251
247
  ## Configuration
252
248
 
253
249
  The test agent can be configured via command-line options or via environment variables.
@@ -1,27 +1,17 @@
1
1
  .dockerignore
2
- .envrc.example
3
2
  .gitignore
4
3
  Dockerfile
5
4
  Dockerfile.windows
6
5
  LICENSE.BSD3
7
6
  LICENSE.apache2
8
7
  README.md
9
- build-on-darwin.Dockerfile
10
- ddsketch.nix
11
- ddtrace.nix
12
- flake.lock
13
- flake.nix
14
8
  pyproject.toml
15
9
  riotfile.py
16
10
  setup.cfg
17
11
  setup.py
18
- shell.nix
19
12
  test_deps.txt
20
- treefmt.nix
21
- use-example.Dockerfile
22
13
  .github/workflows/docker.yml
23
14
  .github/workflows/main.yml
24
- .github/workflows/nix-auto.yml
25
15
  .github/workflows/publish_pypi.yml
26
16
  .github/workflows/releasenote.yml
27
17
  ddapm_test_agent/__init__.py
@@ -125,6 +115,9 @@ releasenotes/notes/python310-docker-image-d4e329cfecf6510e.yaml
125
115
  releasenotes/notes/rc-encoding-length-fix-cc011edea7f8f5b2.yaml
126
116
  releasenotes/notes/rc-get-endpoint-e502f55b7df544e2.yaml
127
117
  releasenotes/notes/remoteconfig-requests-1af7abb99c61c069.yaml
118
+ releasenotes/notes/remove-agent-state-header-from-info-87f920bf4ce5785c.yaml
119
+ releasenotes/notes/remove-nix-ec1c4aca7dc002c4.yaml
120
+ releasenotes/notes/remove-old-pythons-4667b182aacf0ce6.yaml
128
121
  releasenotes/notes/reuse-session-1670aa569907cf68.yaml
129
122
  releasenotes/notes/sample-rate-1e06ae4cdc933b14.yaml
130
123
  releasenotes/notes/session-requests-b8057811f976220e.yaml
@@ -157,7 +150,9 @@ releasenotes/notes/vcr-aws-bedrock-proxy-3bf018b1712d5105.yaml
157
150
  releasenotes/notes/vcr-cassette-name-middleware-fix-9e47c395892a9fe7.yaml
158
151
  releasenotes/notes/vcr-cassettes-for-openai-v5-6e9d78091de1f0c2.yaml
159
152
  releasenotes/notes/vcr-cassettes-for-vercel-ai-7a8275f9c2b48bc7.yaml
153
+ releasenotes/notes/vcr-ci-mode-99dbd2940fff8d7a.yaml
160
154
  releasenotes/notes/vcr-prefix-instead-of-suffix-4c56dcb5038d222e.yaml
155
+ releasenotes/notes/vcr-proxy-aws-recalculation-fix-2184c10270a7bca5.yaml
161
156
  releasenotes/notes/vcr-proxy-use-test-name-bugfix-be758294ba30ac78.yaml
162
157
  releasenotes/notes/vcr-proxy-use-test-name-e47891994c961c52.yaml
163
158
  releasenotes/notes/vcr-support-querystring-b06555fb9a7c90ae.yaml
@@ -0,0 +1,4 @@
1
+ ---
2
+ fixes:
3
+ - |
4
+ Remove `Datadog-Agent-State` header from `/info` endpoint response to match actual Datadog agent behavior.
@@ -0,0 +1,4 @@
1
+ ---
2
+ other:
3
+ - |
4
+ This change removes nix build support.
@@ -0,0 +1,4 @@
1
+ ---
2
+ other:
3
+ - |
4
+ Removes support for Python 3.8, 3.9, and 3.10.
@@ -0,0 +1,4 @@
1
+ ---
2
+ features:
3
+ - |
4
+ vcr: adds a new ``--vcr-ci-mode`` flag and accompanying ``VCR_CI_MODE`` environment variable that, when set to ``true`` (defaults to ``false``), will throw a 404 error if a cassette is not found in CI mode to ensure that all cassettes are generated locally and committed.
@@ -0,0 +1,4 @@
1
+ ---
2
+ fixes:
3
+ - |
4
+ vcr: fixes a bug where the aws signature recalculation would always happen, even if the cassette already existed.
@@ -12,7 +12,7 @@ venv = Venv(
12
12
  Venv(
13
13
  name="test",
14
14
  command="pytest {cmdargs}",
15
- pys=["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"],
15
+ pys=["3.11", "3.12", "3.13"],
16
16
  pkgs={pkg: latest for pkg in testing_deps},
17
17
  ),
18
18
  Venv(
@@ -21,6 +21,7 @@ venv = Venv(
21
21
  "isort": latest,
22
22
  "toml": latest,
23
23
  },
24
+ pys=["3.11"],
24
25
  venvs=[
25
26
  Venv(
26
27
  name="black",
@@ -39,6 +40,7 @@ venv = Venv(
39
40
  Venv(
40
41
  name="flake8",
41
42
  command="flake8 {cmdargs}",
43
+ pys=["3.11"],
42
44
  pkgs={
43
45
  "flake8": latest,
44
46
  "flake8-blind-except": latest,
@@ -54,6 +56,7 @@ venv = Venv(
54
56
  name="mypy",
55
57
  create=True,
56
58
  command="mypy {cmdargs}",
59
+ pys=["3.11"],
57
60
  pkgs={
58
61
  "mypy": "==1.7.1",
59
62
  "pytest": latest,
@@ -13,6 +13,7 @@ enable-extensions = G
13
13
  import-order-style = google
14
14
 
15
15
  [mypy]
16
+ python_version = 3.11
16
17
  ignore_missing_imports = true
17
18
  disallow_incomplete_defs = true
18
19
  disallow_untyped_decorators = true
@@ -16,9 +16,6 @@ setup(
16
16
  author_email="kyle@verhoog.ca",
17
17
  classifiers=[
18
18
  "Programming Language :: Python",
19
- "Programming Language :: Python :: 3.8",
20
- "Programming Language :: Python :: 3.9",
21
- "Programming Language :: Python :: 3.10",
22
19
  "Programming Language :: Python :: 3.11",
23
20
  "Programming Language :: Python :: 3.12",
24
21
  "Programming Language :: Python :: 3.13",
@@ -110,6 +110,11 @@ def snapshot_server_cassettes_directory() -> Generator[str, None, None]:
110
110
  yield "/snapshot-server-cassettes"
111
111
 
112
112
 
113
+ @pytest.fixture
114
+ def vcr_ci_mode() -> Generator[bool, None, None]:
115
+ yield False
116
+
117
+
113
118
  @pytest.fixture
114
119
  async def agent_app(
115
120
  aiohttp_server,
@@ -126,6 +131,7 @@ async def agent_app(
126
131
  snapshot_removed_attrs,
127
132
  snapshot_regex_placeholders,
128
133
  snapshot_server_cassettes_directory,
134
+ vcr_ci_mode,
129
135
  ):
130
136
  app = await aiohttp_server(
131
137
  make_app(
@@ -142,6 +148,7 @@ async def agent_app(
142
148
  snapshot_removed_attrs,
143
149
  snapshot_regex_placeholders,
144
150
  snapshot_server_cassettes_directory,
151
+ vcr_ci_mode,
145
152
  )
146
153
  )
147
154
  yield app
@@ -16,7 +16,7 @@
16
16
  "metrics": {
17
17
  "_dd.top_level": 1,
18
18
  "_dd.tracer_kr": 1.0,
19
- "_sampling_priority_v1": 2,
19
+ "_sampling_priority_v1": 1,
20
20
  "process_id": 94638
21
21
  },
22
22
  "duration": 162000,
@@ -1,4 +1,4 @@
1
- from ddtrace import Tracer
1
+ from ddtrace.trace import Tracer
2
2
  import pytest
3
3
 
4
4
  from ddapm_test_agent.client import TestAgentClient
@@ -11,7 +11,8 @@ async def client(testagent, testagent_url):
11
11
 
12
12
  @pytest.fixture
13
13
  async def tracer(testagent_url):
14
- t = Tracer(testagent_url)
14
+ t = Tracer()
15
+ t._agent_url = testagent_url
15
16
  yield t
16
17
  t.shutdown()
17
18
 
@@ -11,16 +11,18 @@ from typing import Dict
11
11
  from typing import Generator
12
12
 
13
13
  import aiohttp
14
- from ddtrace import Tracer
14
+ from ddtrace._trace.sampler import DatadogSampler
15
+ from ddtrace._trace.sampling_rule import SamplingRule
15
16
  from ddtrace.profiling import Profiler
16
17
  from ddtrace.propagation.http import HTTPPropagator
17
- from ddtrace.sampler import DatadogSampler
18
+ from ddtrace.trace import Tracer
18
19
  import pytest
19
20
 
20
21
 
21
22
  @pytest.fixture
22
23
  def tracer(testagent_port: str, testagent: aiohttp.ClientSession) -> Tracer:
23
- tracer = Tracer(url=f"http://localhost:{testagent_port}")
24
+ tracer = Tracer()
25
+ tracer._agent_url = f"http://localhost:{testagent_port}"
24
26
  return tracer
25
27
 
26
28
 
@@ -31,12 +33,11 @@ def trace_sample_rate() -> float:
31
33
 
32
34
  @pytest.fixture
33
35
  def stats_tracer(tracer: Tracer, trace_sample_rate: float) -> Generator[Tracer, None, None]:
34
- tracer.configure(
35
- compute_stats_enabled=True,
36
- sampler=DatadogSampler(
37
- default_sample_rate=trace_sample_rate,
38
- ),
39
- )
36
+ tracer.configure(compute_stats_enabled=True)
37
+ tracer._sampler = DatadogSampler(rules=[SamplingRule(sample_rate=trace_sample_rate)])
38
+ for processor in tracer._span_processors:
39
+ if processor.__class__.__name__ == "SpanStatsProcessorV06":
40
+ processor._agent_url = tracer._agent_url
40
41
  yield tracer
41
42
 
42
43
 
@@ -87,7 +88,8 @@ async def test_single_trace(
87
88
  response_code,
88
89
  ):
89
90
  await testagent.get(f"{testagent_url}/test/session/start?test_session_token=test_single_trace")
90
- tracer = Tracer(url=testagent_url)
91
+ tracer = Tracer()
92
+ tracer._agent_url = testagent_url
91
93
  with tracer.trace(operation_name, service=service, resource=resource, span_type=span_type) as span:
92
94
  if error is not None:
93
95
  span.error = error
@@ -280,8 +282,8 @@ async def test_cmd(testagent_url: str, testagent: aiohttp.ClientSession, tracer:
280
282
  assert p.returncode == 1
281
283
 
282
284
 
283
- async def test_profiling_endpoint(testagent_url: str, testagent: aiohttp.ClientSession) -> None:
284
- p = Profiler(url=testagent_url)
285
+ async def test_profiling_endpoint(testagent_url: str, testagent: aiohttp.ClientSession, tracer: Tracer) -> None:
286
+ p = Profiler(tracer=tracer)
285
287
  p.start()
286
288
  p.stop(flush=True)
287
289
  resp = await testagent.get(f"{testagent_url}/test/session/requests")
@@ -1,6 +0,0 @@
1
- # use https://github.com/nix-community/nix-direnv to load all tools needed to develop in the repository
2
- # $ cp .envrc.example .envrc
3
- # $ direnv allow .
4
- use flake --impure .
5
-
6
- # alternatively just use `nix develop` or `nix-shell`