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.
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/main.yml +4 -3
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/PKG-INFO +5 -9
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/README.md +4 -5
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/__init__.py +1 -1
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/agent.py +14 -8
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/trace_snapshot.py +48 -13
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/vcr_proxy.py +15 -7
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/PKG-INFO +5 -9
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/SOURCES.txt +5 -10
- ddapm_test_agent-1.34.0/releasenotes/notes/remove-agent-state-header-from-info-87f920bf4ce5785c.yaml +4 -0
- ddapm_test_agent-1.34.0/releasenotes/notes/remove-nix-ec1c4aca7dc002c4.yaml +4 -0
- ddapm_test_agent-1.34.0/releasenotes/notes/remove-old-pythons-4667b182aacf0ce6.yaml +4 -0
- ddapm_test_agent-1.34.0/releasenotes/notes/vcr-ci-mode-99dbd2940fff8d7a.yaml +4 -0
- ddapm_test_agent-1.34.0/releasenotes/notes/vcr-proxy-aws-recalculation-fix-2184c10270a7bca5.yaml +4 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/riotfile.py +4 -1
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/setup.cfg +1 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/setup.py +0 -3
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/conftest.py +7 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_distributed_propagated.json +1 -1
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_client.py +3 -2
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_snapshot_integration.py +14 -12
- ddapm_test_agent-1.33.0/.envrc.example +0 -6
- ddapm_test_agent-1.33.0/.github/workflows/nix-auto.yml +0 -33
- ddapm_test_agent-1.33.0/build-on-darwin.Dockerfile +0 -28
- ddapm_test_agent-1.33.0/ddsketch.nix +0 -32
- ddapm_test_agent-1.33.0/ddtrace.nix +0 -72
- ddapm_test_agent-1.33.0/flake.lock +0 -117
- ddapm_test_agent-1.33.0/flake.nix +0 -150
- ddapm_test_agent-1.33.0/shell.nix +0 -1
- ddapm_test_agent-1.33.0/treefmt.nix +0 -13
- ddapm_test_agent-1.33.0/use-example.Dockerfile +0 -3
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.dockerignore +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/docker.yml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/publish_pypi.yml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.github/workflows/releasenote.yml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/.gitignore +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/Dockerfile +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/Dockerfile.windows +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/LICENSE.BSD3 +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/LICENSE.apache2 +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/apmtelemetry.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/checks.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/client.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/cmd.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/context.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/fmt.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/integration.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/logs.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/metrics.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/remoteconfig.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/trace.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/trace_checks.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/tracerflare.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/tracestats.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent/tracestats_snapshot.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/dependency_links.txt +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/entry_points.txt +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/not-zip-safe +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/requires.txt +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/ddapm_test_agent.egg-info/top_level.txt +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/pyproject.toml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/check-releasenotes +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/config.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/1.0-e192f5064e917083.yaml +0 -0
- {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
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Checks-changed-to-opt-in-8716cac4ecdbb1c2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/SNAPSHOT_REGEX_PLACEHOLDERS-1d2c5e2711d1953b.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/SNAPSHOT_REGEX_PLACEHOLDERS-compare-c829e7a4df4fa1f4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Settings-endpoint-928ae5b6e8ddc625.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/Telemetry-requests-delay-2586180b286ce393.yaml +0 -0
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/acceptV1TracePayloads-5435cff37cfb6a85.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-datadog-proxy-7e2e608c101a564b.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-distributed-trace-c35a314698a3b966.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-fmt-command-cc31769942a5fec3.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-nix-build-support-29dc8a347e3bd7c1.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-optional-json-parser-10aac54bd1cbe322.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-otel-metrics-support-a2ebeb28cae2f0ba.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-python-3.13-support-ae7b96f4a10f20f4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-rcm-endpoints-7e1f949e83e21039.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-request-forwarding-middleware-d3f325166b0f8e9e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-service-naming-checks-2b68ff51d1b5496d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-session-to-rcm-endpoints-d97e925a04a99a65.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-span-events-306e697168373899.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-support-for-plain-text-responses-00d20bf7b335e75b.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-support-telemetry-requests-10737cd3da802ca6.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/add-tracer_flare-endpoint-b2c81510920974d7.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/addAgentStateToInfo-f9a179ce88f2ab9e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/addPeerTagsToInfo-4ccc2539d22c2993.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/allow-attribute-removal-snapshots-314b744b043b97c5.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/args-88f664c83a96075d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/change-trace-proxy-headers-f9fcbb4efc4fcb95.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/check-http-header-sensitivity-daaa9d9595ae86d6.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/clearing-sessions-now-only-removes-6b0311673d8b37aa.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/client-173dbc6655e42337.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/content_length-e1bab75580aa1dcb.yaml +0 -0
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/docker-arm64-images-a4b6b2cc527327d6.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/evp-proxy-on-info-d65cd077575306ca.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/exception-messages-21ee64461020edd1.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-docker-image-tags-785d40f5bfdb8003.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-fmt-logging-6a323fd8d5d4eb28.yaml +0 -0
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-matching-319744b82d2514c1.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-missing-slim-deps-fa3b0fc0292a09b3.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-partial-chunks-0db14ce3017e6173.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-racecondition-9bd0ef15b7da60fa.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/fix-tracerflare-request-parsing-fae18ff9997c216d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/genai-vcr-support-b499ec54df84eaa3.yaml +0 -0
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/image-optimization-d614eccb59441217.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/improve-test-agent-debugging-5759413f1fc5f7fa.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/improve-test-agent-proxying-a207f0fc81b3ab2d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/improve-trace-check-results-endpoints-6ab4132628520793.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/info-34dcd9cbcc382487.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/info-drop-p0s-c207889f590340fb.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/llmobs-eval-metric-endpoint-8b5222491969ab4f.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/llmobs-evp-proxy-1383f4b4962ac7c9.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/meta-struct-2cce08475cb05470.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/more-oai-cass-908eb5ea46bd2985.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/new-process-id-tag-f0ab0daf652e05cc.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/oai-incomplete-cass-795ad19b6a226c1f.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/otlp-logs-grpc-45365879c22969aa.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/otlp-logs-support-d5a150d9f5304d7c.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/pipeline_stats_endpoint-e8ad6da735dc2647.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/profiling-endpoint-0cd209e4e5b6cfc0.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/provider-snapshot-server-f6a307acbf11d214.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/proxy-37c94e2fb428c6fc.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python-3.12-952e06c6158af67d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python-support-1c447acc4607abc7.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python310-025fbc190363de98.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/python310-docker-image-d4e329cfecf6510e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/rc-encoding-length-fix-cc011edea7f8f5b2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/rc-get-endpoint-e502f55b7df544e2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/remoteconfig-requests-1af7abb99c61c069.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/reuse-session-1670aa569907cf68.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/sample-rate-1e06ae4cdc933b14.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/session-requests-b8057811f976220e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/session-tracerflares-400ce9b3d3838b40.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-cmds-de4a561911afee11.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-empty-maps-2cbe8cea3e7112fa.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-error-messages-de41d9e3207fa30a.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-filename-c068de1bc3e50c04.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-order-type-2d6424e380b2c88f.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/snapshot-parent-id-7abb860008702e70.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/span-links-1ec76bd2b47a3880.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/span-ordering-1a7b383aa015bddc.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/span-parent-id-a4d7d63fa623361c.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/support-ant-vcr-1eff9a40caa0aba0.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/support-tracking-of-tested-integrations-ac19ccd1f8333c00.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/throttling-590bf58ecb3cc4a5.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/trace-stats-97da3a478dabfa99.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/trace-stats-snapshot-718ca37385c93e1e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/traces-endpoint-f4f9c1d94d6ceda2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/tracestats-fixes-07152c708e73ef96.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/tracestats-post-65ce788f81862532.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/tracestats-service-2a0a178cbd21b07d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-64b11960931d8b77.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-c99ea5d099e67156.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-container-8138f8b1438b1a0a.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/uds-permissions-903266ac6445b873.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/v0.5-traces-cf469b0b71398d97.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/v0.7-traces-7ea3ebbed7502d01.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-aws-bedrock-proxy-3bf018b1712d5105.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-cassette-name-middleware-fix-9e47c395892a9fe7.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-cassettes-for-openai-v5-6e9d78091de1f0c2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-cassettes-for-vercel-ai-7a8275f9c2b48bc7.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-prefix-instead-of-suffix-4c56dcb5038d222e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-proxy-use-test-name-bugfix-be758294ba30ac78.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-proxy-use-test-name-e47891994c961c52.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/vcr-support-querystring-b06555fb9a7c90ae.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/version-0c32d2752f154eb9.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/wheels-68a7dc2f4b00e0c4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/releasenotes/notes/windows-docker-image-1f5d5e894558bb4b.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/test_deps.txt +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/__init__.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_multi_trace.json +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_single_trace.json +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_distributed_same_payload.json +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_missing_received.json +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/integration_snapshots/test_trace_stats_tracestats.json +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_agent.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_apmtelemetry.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_checks.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_container.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_logs.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_metrics.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_remoteconfig.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_session.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_snapshot.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_trace.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_tracerflare.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/test_tracestats.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/tests/trace_utils.py +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_26d618ee.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_595f439c.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_717ba0b4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_a1af2c12.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/deepseek/deepseek_chat_completions_post_afb6ccab.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_transcriptions_post_173af3e5.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_transcriptions_post_71305a25.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_translations_post_d5b5b8d6.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_audio_translations_post_dd92a18a.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_0f1514e1.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_172294b4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_193ae44a.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_23558eed.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_2edb59ae.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_3517e44e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_36bdc0cb.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_3c045664.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_432a8e46.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_4749eff9.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_4dce8db6.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_57612363.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_649d8162.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_655a8ef2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_66dfc80e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_67e8e833.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_6df851cc.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_7c2d1ac5.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_82a4bb3c.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_9122b1ae.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_917478d0.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_a73ecd7a.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_a925b737.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_ae4728c2.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_b29f1a87.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_ce69ed91.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_d8fb132a.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_d94d5844.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_d98ce00d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_chat_completions_post_ebff79da.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_33681ea4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_5d2418d4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_619dee1c.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_6224acff.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_87f617af.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_98c30019.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_9bb49464.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_completions_post_b24dbf7d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_embeddings_post_0381abe4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_embeddings_post_48694087.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_embeddings_post_541bd4d0.yaml +0 -0
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_delete_3ee48409.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_get_1afefb93.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_get_68efa25d.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_post_2fcf9545.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_files_post_957d63ba.yaml +0 -0
- {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
- {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
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_get_ebc57c6f.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_post_c3b6e4a9.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_075386c4.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_57b4f4da.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_660e9dd7.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_993e0192.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_a2f1eb43.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_ae72c45f.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_cf5af376.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_edits_post_dbefb624.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_generations_post_48272841.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_generations_post_736070ea.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_variations_post_5971e285.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_images_variations_post_f2f62f6c.yaml +0 -0
- {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
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_models_get_e04cf04b.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_models_gpt-4_get_b13c5b23.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_moderations_post_532b3315.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_33fb1f66.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_5ca556ec.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_c05c936e.yaml +0 -0
- {ddapm_test_agent-1.33.0 → ddapm_test_agent-1.34.0}/vcr-cassettes/openai/openai_responses_post_c61e3067.yaml +0 -0
- {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
|
-
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
@@ -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:
|
|
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
|
-
) ->
|
|
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
|
-
|
|
933
|
-
|
|
934
|
-
|
|
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
|
-
|
|
193
|
-
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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[
|
|
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
|
-
|
|
338
|
-
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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(
|
|
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
|
|
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(
|
|
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.
|
|
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
|
+
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.
|
|
@@ -12,7 +12,7 @@ venv = Venv(
|
|
|
12
12
|
Venv(
|
|
13
13
|
name="test",
|
|
14
14
|
command="pytest {cmdargs}",
|
|
15
|
-
pys=["3.
|
|
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,
|
|
@@ -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
|
|
@@ -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(
|
|
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
|
|
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.
|
|
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(
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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(
|
|
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(
|
|
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")
|