ddapm-test-agent 1.35.0__tar.gz → 1.37.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.35.0 → ddapm_test_agent-1.37.0}/PKG-INFO +14 -4
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/README.md +11 -2
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/agent.py +106 -13
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/remoteconfig.py +2 -2
- ddapm_test_agent-1.37.0/ddapm_test_agent/static/style.css +1679 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/base.html +31 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/config.html +440 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/dashboard.html +90 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/macros.html +40 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/requests.html +1925 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/session_detail.html +37 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/sessions.html +23 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/snapshot_detail.html +410 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/snapshots.html +86 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/trace_detail.html +37 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/tracer_flares.html +640 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/templates/traces.html +24 -0
- ddapm_test_agent-1.37.0/ddapm_test_agent/web.py +1523 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/PKG-INFO +14 -4
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/SOURCES.txt +19 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/requires.txt +2 -1
- ddapm_test_agent-1.37.0/releasenotes/notes/add-errors-intake-proxy-endpoint-7e0f31d72a130f1a.yaml +4 -0
- ddapm_test_agent-1.37.0/releasenotes/notes/add-feature-flags-evp-endpoint-da7786735ac02f50.yaml +4 -0
- ddapm_test_agent-1.37.0/releasenotes/notes/add-web-ui-304c84316f2b4818.yaml +6 -0
- ddapm_test_agent-1.37.0/releasenotes/notes/fix-otlp-endpoint-response-type-18822a3ac85e1cb7.yaml +4 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/setup.py +2 -1
- ddapm_test_agent-1.37.0/test_deps.txt +4 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/conftest.py +4 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/integration_snapshots/test_multi_trace.json +14 -14
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/integration_snapshots/test_single_trace.json +5 -5
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/integration_snapshots/test_trace_distributed_propagated.json +7 -7
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/integration_snapshots/test_trace_distributed_same_payload.json +14 -14
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/integration_snapshots/test_trace_missing_received.json +7 -7
- ddapm_test_agent-1.37.0/tests/integration_snapshots/test_trace_stats.json +135 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_agent.py +21 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_checks.py +2 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_logs.py +4 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_metrics.py +4 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_snapshot_integration.py +2 -0
- ddapm_test_agent-1.35.0/test_deps.txt +0 -4
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/.dockerignore +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/.github/workflows/docker.yml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/.github/workflows/main.yml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/.github/workflows/publish_pypi.yml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/.github/workflows/releasenote.yml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/.gitignore +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/Dockerfile +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/Dockerfile.windows +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/LICENSE.BSD3 +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/LICENSE.apache2 +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/__init__.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/apmtelemetry.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/checks.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/client.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/cmd.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/context.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/fmt.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/integration.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/logs.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/metrics.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/trace.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/trace_checks.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/trace_snapshot.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/tracerflare.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/tracestats.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/tracestats_snapshot.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent/vcr_proxy.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/dependency_links.txt +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/entry_points.txt +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/not-zip-safe +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/ddapm_test_agent.egg-info/top_level.txt +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/pyproject.toml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/check-releasenotes +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/config.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/1.0-e192f5064e917083.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/Add-metrics.process_id-to-ignored-attributes-62b264f0ea591326.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/Add-values-handling-to-span_event-array_value-to-mirror-agent-ee7483c90c263ff4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/Checks-changed-to-opt-in-8716cac4ecdbb1c2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/SNAPSHOT_REGEX_PLACEHOLDERS-1d2c5e2711d1953b.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/SNAPSHOT_REGEX_PLACEHOLDERS-compare-c829e7a4df4fa1f4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/Settings-endpoint-928ae5b6e8ddc625.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/Telemetry-requests-delay-2586180b286ce393.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/Use-default-value-for-null-fields-in-tracestats-55d465f489efb2ba.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/acceptV1TracePayloads-5435cff37cfb6a85.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-datadog-proxy-7e2e608c101a564b.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-distributed-trace-c35a314698a3b966.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-fmt-command-cc31769942a5fec3.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-nix-build-support-29dc8a347e3bd7c1.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-optional-json-parser-10aac54bd1cbe322.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-otel-metrics-support-a2ebeb28cae2f0ba.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-python-3.13-support-ae7b96f4a10f20f4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-rcm-endpoints-7e1f949e83e21039.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-request-forwarding-middleware-d3f325166b0f8e9e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-service-naming-checks-2b68ff51d1b5496d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-session-to-rcm-endpoints-d97e925a04a99a65.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-span-events-306e697168373899.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-support-for-plain-text-responses-00d20bf7b335e75b.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-support-telemetry-requests-10737cd3da802ca6.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/add-tracer_flare-endpoint-b2c81510920974d7.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/addAgentStateToInfo-f9a179ce88f2ab9e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/addPeerTagsToInfo-4ccc2539d22c2993.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/allow-attribute-removal-snapshots-314b744b043b97c5.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/args-88f664c83a96075d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/change-trace-proxy-headers-f9fcbb4efc4fcb95.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/check-http-header-sensitivity-daaa9d9595ae86d6.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/clearing-sessions-now-only-removes-6b0311673d8b37aa.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/client-173dbc6655e42337.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/content_length-e1bab75580aa1dcb.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/disable-error-responses-and-collect-trace-failures-in-memory-4a199bc7be416709.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/docker-arm64-images-a4b6b2cc527327d6.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/evp-proxy-on-info-d65cd077575306ca.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/exception-messages-21ee64461020edd1.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-docker-image-tags-785d40f5bfdb8003.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-fmt-logging-6a323fd8d5d4eb28.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-getting-tested-integrations-multiple-session-tokens-4ee41d545754f87f.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-matching-319744b82d2514c1.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-missing-slim-deps-fa3b0fc0292a09b3.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-partial-chunks-0db14ce3017e6173.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-racecondition-9bd0ef15b7da60fa.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/fix-tracerflare-request-parsing-fae18ff9997c216d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/genai-vcr-support-b499ec54df84eaa3.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/ignore-dsm-pathway-hash-during-trace-snapshots-f0b99ea267fbad48.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/image-optimization-d614eccb59441217.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/improve-test-agent-debugging-5759413f1fc5f7fa.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/improve-test-agent-proxying-a207f0fc81b3ab2d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/improve-trace-check-results-endpoints-6ab4132628520793.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/info-34dcd9cbcc382487.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/info-drop-p0s-c207889f590340fb.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/llmobs-eval-metric-endpoint-8b5222491969ab4f.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/llmobs-evp-proxy-1383f4b4962ac7c9.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/meta-struct-2cce08475cb05470.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/more-oai-cass-908eb5ea46bd2985.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/named-pipe-ded0ebbbeee2e7fa.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/new-process-id-tag-f0ab0daf652e05cc.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/oai-incomplete-cass-795ad19b6a226c1f.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/otlp-logs-grpc-45365879c22969aa.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/otlp-logs-support-d5a150d9f5304d7c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/pipeline_stats_endpoint-e8ad6da735dc2647.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/profiling-endpoint-0cd209e4e5b6cfc0.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/provider-snapshot-server-f6a307acbf11d214.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/proxy-37c94e2fb428c6fc.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/python-3.12-952e06c6158af67d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/python-support-1c447acc4607abc7.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/python310-025fbc190363de98.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/python310-docker-image-d4e329cfecf6510e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/rc-encoding-length-fix-cc011edea7f8f5b2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/rc-get-endpoint-e502f55b7df544e2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/remoteconfig-requests-1af7abb99c61c069.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/remove-agent-state-header-from-info-87f920bf4ce5785c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/remove-nix-ec1c4aca7dc002c4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/remove-old-pythons-4667b182aacf0ce6.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/reuse-session-1670aa569907cf68.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/sample-rate-1e06ae4cdc933b14.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/session-requests-b8057811f976220e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/session-tracerflares-400ce9b3d3838b40.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/snapshot-cmds-de4a561911afee11.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/snapshot-empty-maps-2cbe8cea3e7112fa.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/snapshot-error-messages-de41d9e3207fa30a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/snapshot-filename-c068de1bc3e50c04.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/snapshot-order-type-2d6424e380b2c88f.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/snapshot-parent-id-7abb860008702e70.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/span-links-1ec76bd2b47a3880.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/span-ordering-1a7b383aa015bddc.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/span-parent-id-a4d7d63fa623361c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/support-ant-vcr-1eff9a40caa0aba0.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/support-tracking-of-tested-integrations-ac19ccd1f8333c00.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/throttling-590bf58ecb3cc4a5.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/trace-stats-97da3a478dabfa99.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/trace-stats-snapshot-718ca37385c93e1e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/traces-endpoint-f4f9c1d94d6ceda2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/tracestats-fixes-07152c708e73ef96.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/tracestats-post-65ce788f81862532.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/tracestats-service-2a0a178cbd21b07d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/uds-64b11960931d8b77.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/uds-c99ea5d099e67156.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/uds-container-8138f8b1438b1a0a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/uds-permissions-903266ac6445b873.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/v0.5-traces-cf469b0b71398d97.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/v0.7-traces-7ea3ebbed7502d01.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-aws-bedrock-proxy-3bf018b1712d5105.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-cassette-name-middleware-fix-9e47c395892a9fe7.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-cassettes-for-openai-v5-6e9d78091de1f0c2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-cassettes-for-vercel-ai-7a8275f9c2b48bc7.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-ci-mode-99dbd2940fff8d7a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-custom-providers-map-a43b7e2d62d02015.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-prefix-instead-of-suffix-4c56dcb5038d222e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-proxy-aws-recalculation-fix-2184c10270a7bca5.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-proxy-use-test-name-bugfix-be758294ba30ac78.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-proxy-use-test-name-e47891994c961c52.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/vcr-support-querystring-b06555fb9a7c90ae.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/version-0c32d2752f154eb9.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/wheels-68a7dc2f4b00e0c4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/releasenotes/notes/windows-docker-image-1f5d5e894558bb4b.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/riotfile.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/setup.cfg +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/__init__.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/integration_snapshots/test_trace_stats_tracestats.json +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_apmtelemetry.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_client.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_container.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_remoteconfig.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_session.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_snapshot.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_trace.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_tracerflare.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_tracestats.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/test_vcr_proxy.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/tests/trace_utils.py +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_26d618ee.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_595f439c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_717ba0b4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/anthropic/anthropic_v1_messages_post_a1af2c12.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/deepseek/deepseek_chat_completions_post_afb6ccab.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_audio_transcriptions_post_173af3e5.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_audio_transcriptions_post_71305a25.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_audio_translations_post_d5b5b8d6.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_audio_translations_post_dd92a18a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_0f1514e1.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_172294b4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_193ae44a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_23558eed.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_2edb59ae.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_3517e44e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_36bdc0cb.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_3c045664.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_432a8e46.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_4749eff9.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_4dce8db6.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_57612363.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_649d8162.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_655a8ef2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_66dfc80e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_67e8e833.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_6df851cc.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_7c2d1ac5.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_82a4bb3c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_9122b1ae.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_917478d0.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_a73ecd7a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_a925b737.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_ae4728c2.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_b29f1a87.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_ce69ed91.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_d8fb132a.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_d94d5844.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_d98ce00d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_chat_completions_post_ebff79da.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_33681ea4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_5d2418d4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_619dee1c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_6224acff.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_87f617af.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_98c30019.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_9bb49464.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_completions_post_b24dbf7d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_embeddings_post_0381abe4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_embeddings_post_48694087.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_embeddings_post_541bd4d0.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_content_get_60bd10ef.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_delete_3ee48409.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_files_file-RpTpuvRVtnKpdKZb7DDGto_get_1afefb93.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_files_get_68efa25d.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_files_post_2fcf9545.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_files_post_957d63ba.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_ftjob-q9CUUUsHJemGUVQ1Ecc01zcf_cancel_post_d7c16b38.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_ftjob-q9CUUUsHJemGUVQ1Ecc01zcf_events_get_557d820e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_ftjob-q9CUUUsHJemGUVQ1Ecc01zcf_get_265489e7.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_get_ebc57c6f.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_fine_tuning_jobs_post_c3b6e4a9.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_075386c4.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_57b4f4da.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_660e9dd7.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_993e0192.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_a2f1eb43.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_ae72c45f.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_cf5af376.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_edits_post_dbefb624.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_generations_post_48272841.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_generations_post_736070ea.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_variations_post_5971e285.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_images_variations_post_f2f62f6c.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.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.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_models_get_e04cf04b.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_models_gpt-4_get_b13c5b23.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_moderations_post_532b3315.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_responses_post_33fb1f66.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_responses_post_5ca556ec.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_responses_post_c05c936e.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_responses_post_c61e3067.yaml +0 -0
- {ddapm_test_agent-1.35.0 → ddapm_test_agent-1.37.0}/vcr-cassettes/openai/openai_responses_post_ee2423e6.yaml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ddapm-test-agent
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.37.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
|
|
@@ -22,12 +22,13 @@ Requires-Dist: typing_extensions
|
|
|
22
22
|
Requires-Dist: yarl
|
|
23
23
|
Requires-Dist: vcrpy
|
|
24
24
|
Requires-Dist: requests-aws4auth
|
|
25
|
+
Requires-Dist: jinja2>=3.0.0
|
|
25
26
|
Requires-Dist: opentelemetry-proto<1.37.0,>1.33.0
|
|
26
27
|
Requires-Dist: protobuf>=3.19.0
|
|
27
28
|
Requires-Dist: grpcio<2.0,>=1.66.2
|
|
28
29
|
Requires-Dist: pywin32; sys_platform == "win32"
|
|
29
30
|
Provides-Extra: testing
|
|
30
|
-
Requires-Dist: ddtrace==3.
|
|
31
|
+
Requires-Dist: ddtrace==3.15.0; extra == "testing"
|
|
31
32
|
Requires-Dist: pytest; extra == "testing"
|
|
32
33
|
Requires-Dist: riot==0.20.1; extra == "testing"
|
|
33
34
|
Requires-Dist: PyYAML==6.0.3; extra == "testing"
|
|
@@ -67,8 +68,8 @@ The test agent can be installed from PyPI:
|
|
|
67
68
|
|
|
68
69
|
pip install ddapm-test-agent
|
|
69
70
|
|
|
70
|
-
# HTTP on port 8126, OTLP HTTP on port 4318, OTLP GRPC on port 4317
|
|
71
|
-
ddapm-test-agent --port=8126 --otlp-http-port=4318 --otlp-grpc-port=4317
|
|
71
|
+
# HTTP on port 8126, OTLP HTTP on port 4318, OTLP GRPC on port 4317, with the web-ui enabled
|
|
72
|
+
ddapm-test-agent --port=8126 --otlp-http-port=4318 --otlp-grpc-port=4317 --web-ui-port=8080
|
|
72
73
|
|
|
73
74
|
or from Docker:
|
|
74
75
|
|
|
@@ -171,6 +172,15 @@ The traces are normalized and output in JSON to a file. The following transforma
|
|
|
171
172
|
- The span meta and metrics maps if empty are excluded.
|
|
172
173
|
|
|
173
174
|
|
|
175
|
+
#### Web UI
|
|
176
|
+
|
|
177
|
+
The test agent includes an optional and **experimental** Web UI that provides a dashboard for inspecting agent configuration, viewing received requests, exploring traces and snapshots, and managing tracer-flare and remote configuration.
|
|
178
|
+
|
|
179
|
+
The UI can be enabled with the `--web-ui-port PORT` command-line argument or by setting the `WEB_UI_PORT` environment variable.
|
|
180
|
+
Once enabled, the Web UI can be accessed at `http://localhost:PORT` (default port is `8080`).
|
|
181
|
+
|
|
182
|
+
There is also a maximum number of requests to store in memory to display in the UI, which can be configured with the `--max-requests` command-line argument or by setting the `MAX_REQUESTS` environment variable (default is `200` requests).
|
|
183
|
+
|
|
174
184
|
### Recording 3rd party API requests
|
|
175
185
|
|
|
176
186
|
The test agent can be configured to proxy requests to select provider API endpoints, capturing real requests to
|
|
@@ -21,8 +21,8 @@ The test agent can be installed from PyPI:
|
|
|
21
21
|
|
|
22
22
|
pip install ddapm-test-agent
|
|
23
23
|
|
|
24
|
-
# HTTP on port 8126, OTLP HTTP on port 4318, OTLP GRPC on port 4317
|
|
25
|
-
ddapm-test-agent --port=8126 --otlp-http-port=4318 --otlp-grpc-port=4317
|
|
24
|
+
# HTTP on port 8126, OTLP HTTP on port 4318, OTLP GRPC on port 4317, with the web-ui enabled
|
|
25
|
+
ddapm-test-agent --port=8126 --otlp-http-port=4318 --otlp-grpc-port=4317 --web-ui-port=8080
|
|
26
26
|
|
|
27
27
|
or from Docker:
|
|
28
28
|
|
|
@@ -125,6 +125,15 @@ The traces are normalized and output in JSON to a file. The following transforma
|
|
|
125
125
|
- The span meta and metrics maps if empty are excluded.
|
|
126
126
|
|
|
127
127
|
|
|
128
|
+
#### Web UI
|
|
129
|
+
|
|
130
|
+
The test agent includes an optional and **experimental** Web UI that provides a dashboard for inspecting agent configuration, viewing received requests, exploring traces and snapshots, and managing tracer-flare and remote configuration.
|
|
131
|
+
|
|
132
|
+
The UI can be enabled with the `--web-ui-port PORT` command-line argument or by setting the `WEB_UI_PORT` environment variable.
|
|
133
|
+
Once enabled, the Web UI can be accessed at `http://localhost:PORT` (default port is `8080`).
|
|
134
|
+
|
|
135
|
+
There is also a maximum number of requests to store in memory to display in the UI, which can be configured with the `--max-requests` command-line argument or by setting the `MAX_REQUESTS` environment variable (default is `200` requests).
|
|
136
|
+
|
|
128
137
|
### Recording 3rd party API requests
|
|
129
138
|
|
|
130
139
|
The test agent can be configured to proxy requests to select provider API endpoints, capturing real requests to
|
|
@@ -39,7 +39,9 @@ from aiohttp.web import middleware
|
|
|
39
39
|
from grpc import aio as grpc_aio
|
|
40
40
|
from msgpack.exceptions import ExtraData as MsgPackExtraDataException
|
|
41
41
|
from multidict import CIMultiDict
|
|
42
|
+
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import ExportLogsServiceResponse
|
|
42
43
|
from opentelemetry.proto.collector.logs.v1.logs_service_pb2_grpc import add_LogsServiceServicer_to_server
|
|
44
|
+
from opentelemetry.proto.collector.metrics.v1.metrics_service_pb2 import ExportMetricsServiceResponse
|
|
43
45
|
from opentelemetry.proto.collector.metrics.v1.metrics_service_pb2_grpc import add_MetricsServiceServicer_to_server
|
|
44
46
|
|
|
45
47
|
from . import _get_version
|
|
@@ -323,12 +325,15 @@ class Agent:
|
|
|
323
325
|
"/v1.0/traces",
|
|
324
326
|
"/v0.6/stats",
|
|
325
327
|
"/v0.7/config",
|
|
328
|
+
"/info",
|
|
326
329
|
"/telemetry/proxy/api/v2/apmtelemetry",
|
|
327
330
|
"/v0.1/pipeline_stats",
|
|
328
331
|
"/tracer_flare/v1",
|
|
329
332
|
"/evp_proxy/v2/api/v2/llmobs",
|
|
330
333
|
"/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric",
|
|
331
334
|
"/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric",
|
|
335
|
+
"/evp_proxy/v2/api/v2/exposures",
|
|
336
|
+
"/evp_proxy/v4/api/v2/errorsintake",
|
|
332
337
|
]
|
|
333
338
|
|
|
334
339
|
# Note that sessions are not cleared at any point since we don't know
|
|
@@ -721,7 +726,9 @@ class Agent:
|
|
|
721
726
|
num_resource_logs,
|
|
722
727
|
total_log_records,
|
|
723
728
|
)
|
|
724
|
-
return web.
|
|
729
|
+
return web.Response(
|
|
730
|
+
body=ExportLogsServiceResponse().SerializeToString(), status=200, content_type="application/x-protobuf"
|
|
731
|
+
)
|
|
725
732
|
|
|
726
733
|
async def handle_v1_metrics(self, request: Request) -> web.Response:
|
|
727
734
|
metrics_data = self._decode_v1_metrics(request)
|
|
@@ -736,7 +743,9 @@ class Agent:
|
|
|
736
743
|
num_resource_metrics,
|
|
737
744
|
total_metrics,
|
|
738
745
|
)
|
|
739
|
-
return web.
|
|
746
|
+
return web.Response(
|
|
747
|
+
body=ExportMetricsServiceResponse().SerializeToString(), status=200, content_type="application/x-protobuf"
|
|
748
|
+
)
|
|
740
749
|
|
|
741
750
|
async def handle_v07_remoteconfig(self, request: Request) -> web.Response:
|
|
742
751
|
"""Emulates Remote Config endpoint: /v0.7/config"""
|
|
@@ -801,6 +810,12 @@ class Agent:
|
|
|
801
810
|
async def handle_evp_proxy_v2_llmobs_eval_metric(self, request: Request) -> web.Response:
|
|
802
811
|
return web.HTTPOk()
|
|
803
812
|
|
|
813
|
+
async def handle_evp_proxy_v2_api_v2_exposures(self, request: Request) -> web.Response:
|
|
814
|
+
return web.HTTPOk()
|
|
815
|
+
|
|
816
|
+
async def handle_evp_proxy_v4_api_v2_errorsintake(self, request: Request) -> web.Response:
|
|
817
|
+
return web.HTTPOk()
|
|
818
|
+
|
|
804
819
|
async def handle_put_tested_integrations(self, request: Request) -> web.Response:
|
|
805
820
|
# we need to store the request manually since this is not a real DD agent endpoint
|
|
806
821
|
await self._store_request(request)
|
|
@@ -878,6 +893,7 @@ class Agent:
|
|
|
878
893
|
"/v0.7/config",
|
|
879
894
|
"/tracer_flare/v1",
|
|
880
895
|
"/evp_proxy/v2/",
|
|
896
|
+
"/evp_proxy/v4/",
|
|
881
897
|
],
|
|
882
898
|
"feature_flags": [],
|
|
883
899
|
"config": {},
|
|
@@ -1124,6 +1140,8 @@ class Agent:
|
|
|
1124
1140
|
self.handle_v1_tracer_flare,
|
|
1125
1141
|
self.handle_evp_proxy_v2_api_v2_llmobs,
|
|
1126
1142
|
self.handle_evp_proxy_v2_llmobs_eval_metric,
|
|
1143
|
+
self.handle_evp_proxy_v2_api_v2_exposures,
|
|
1144
|
+
self.handle_evp_proxy_v4_api_v2_errorsintake,
|
|
1127
1145
|
self.handle_v1_logs,
|
|
1128
1146
|
self.handle_v1_metrics,
|
|
1129
1147
|
):
|
|
@@ -1417,6 +1435,8 @@ class Agent:
|
|
|
1417
1435
|
"/evp_proxy/v2/api/v2/llmobs": self.handle_evp_proxy_v2_api_v2_llmobs,
|
|
1418
1436
|
"/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric": self.handle_evp_proxy_v2_llmobs_eval_metric,
|
|
1419
1437
|
"/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric": self.handle_evp_proxy_v2_llmobs_eval_metric,
|
|
1438
|
+
"/evp_proxy/v2/api/v2/exposures": self.handle_evp_proxy_v2_api_v2_exposures,
|
|
1439
|
+
"/evp_proxy/v4/api/v2/errorsintake": self.handle_evp_proxy_v4_api_v2_errorsintake,
|
|
1420
1440
|
"/info": self.handle_info,
|
|
1421
1441
|
# Test endpoints
|
|
1422
1442
|
"/test/session/start": self.handle_session_start,
|
|
@@ -1581,18 +1601,30 @@ def make_app(
|
|
|
1581
1601
|
vcr_ci_mode: bool,
|
|
1582
1602
|
vcr_provider_map: str,
|
|
1583
1603
|
vcr_ignore_headers: str,
|
|
1604
|
+
enable_web_ui: bool = False,
|
|
1584
1605
|
) -> web.Application:
|
|
1585
1606
|
agent = Agent()
|
|
1607
|
+
|
|
1608
|
+
# Build middleware list conditionally
|
|
1609
|
+
middlewares = []
|
|
1610
|
+
if enable_web_ui:
|
|
1611
|
+
from .web import request_response_capture_middleware
|
|
1612
|
+
|
|
1613
|
+
middlewares.append(request_response_capture_middleware)
|
|
1614
|
+
middlewares.extend(
|
|
1615
|
+
[
|
|
1616
|
+
handle_exception_middleware,
|
|
1617
|
+
agent.check_failure_middleware,
|
|
1618
|
+
agent.store_request_middleware,
|
|
1619
|
+
agent.request_forwarder_middleware,
|
|
1620
|
+
session_token_middleware,
|
|
1621
|
+
agent.vcr_proxy_suffix_middleware,
|
|
1622
|
+
]
|
|
1623
|
+
)
|
|
1624
|
+
|
|
1586
1625
|
app = web.Application(
|
|
1587
1626
|
client_max_size=int(100e6), # 100MB - arbitrary
|
|
1588
|
-
middlewares=
|
|
1589
|
-
handle_exception_middleware, # type: ignore
|
|
1590
|
-
agent.check_failure_middleware, # type: ignore
|
|
1591
|
-
agent.store_request_middleware, # type: ignore
|
|
1592
|
-
agent.request_forwarder_middleware, # type: ignore
|
|
1593
|
-
session_token_middleware, # type: ignore
|
|
1594
|
-
agent.vcr_proxy_suffix_middleware, # type: ignore
|
|
1595
|
-
],
|
|
1627
|
+
middlewares=middlewares,
|
|
1596
1628
|
)
|
|
1597
1629
|
app.add_routes(
|
|
1598
1630
|
[
|
|
@@ -1615,6 +1647,8 @@ def make_app(
|
|
|
1615
1647
|
web.post("/evp_proxy/v2/api/v2/llmobs", agent.handle_evp_proxy_v2_api_v2_llmobs),
|
|
1616
1648
|
web.post("/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric", agent.handle_evp_proxy_v2_llmobs_eval_metric),
|
|
1617
1649
|
web.post("/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric", agent.handle_evp_proxy_v2_llmobs_eval_metric),
|
|
1650
|
+
web.post("/evp_proxy/v2/api/v2/exposures", agent.handle_evp_proxy_v2_api_v2_exposures),
|
|
1651
|
+
web.post("/evp_proxy/v4/api/v2/errorsintake", agent.handle_evp_proxy_v4_api_v2_errorsintake),
|
|
1618
1652
|
web.get("/info", agent.handle_info),
|
|
1619
1653
|
web.get("/test/session/start", agent.handle_session_start),
|
|
1620
1654
|
web.get("/test/session/clear", agent.handle_session_clear),
|
|
@@ -1964,6 +1998,18 @@ def main(args: Optional[List[str]] = None) -> None:
|
|
|
1964
1998
|
default=os.environ.get("VCR_IGNORE_HEADERS", ""),
|
|
1965
1999
|
help="Comma-separated list of headers to ignore when recording VCR cassettes.",
|
|
1966
2000
|
)
|
|
2001
|
+
parser.add_argument(
|
|
2002
|
+
"--web-ui-port",
|
|
2003
|
+
type=int,
|
|
2004
|
+
default=int(os.environ.get("WEB_UI_PORT", 0)),
|
|
2005
|
+
help="Port to serve the optional web UI (default: disabled). Example: --web-ui-port=8080",
|
|
2006
|
+
)
|
|
2007
|
+
parser.add_argument(
|
|
2008
|
+
"--max-requests",
|
|
2009
|
+
type=int,
|
|
2010
|
+
default=int(os.environ.get("MAX_REQUESTS", 200)),
|
|
2011
|
+
help="Maximum number of requests to keep in memory for the UI (default: 200). Older requests are discarded when limit is reached.",
|
|
2012
|
+
)
|
|
1967
2013
|
parsed_args = parser.parse_args(args=args)
|
|
1968
2014
|
logging.basicConfig(level=parsed_args.log_level)
|
|
1969
2015
|
|
|
@@ -2010,6 +2056,7 @@ def main(args: Optional[List[str]] = None) -> None:
|
|
|
2010
2056
|
vcr_ci_mode=parsed_args.vcr_ci_mode,
|
|
2011
2057
|
vcr_provider_map=parsed_args.vcr_provider_map,
|
|
2012
2058
|
vcr_ignore_headers=parsed_args.vcr_ignore_headers,
|
|
2059
|
+
enable_web_ui=parsed_args.web_ui_port > 0,
|
|
2013
2060
|
)
|
|
2014
2061
|
|
|
2015
2062
|
# Validate port configuration
|
|
@@ -2019,6 +2066,13 @@ def main(args: Optional[List[str]] = None) -> None:
|
|
|
2019
2066
|
raise ValueError("APM and OTLP GRPC ports cannot be the same")
|
|
2020
2067
|
if parsed_args.otlp_http_port == parsed_args.otlp_grpc_port:
|
|
2021
2068
|
raise ValueError("OTLP HTTP and GRPC ports cannot be the same")
|
|
2069
|
+
if parsed_args.web_ui_port > 0:
|
|
2070
|
+
if parsed_args.web_ui_port == parsed_args.port:
|
|
2071
|
+
raise ValueError("Web UI and APM ports cannot be the same")
|
|
2072
|
+
if parsed_args.web_ui_port == parsed_args.otlp_http_port:
|
|
2073
|
+
raise ValueError("Web UI and OTLP HTTP ports cannot be the same")
|
|
2074
|
+
if parsed_args.web_ui_port == parsed_args.otlp_grpc_port:
|
|
2075
|
+
raise ValueError("Web UI and OTLP GRPC ports cannot be the same")
|
|
2022
2076
|
|
|
2023
2077
|
# Get the shared agent instance from the main app
|
|
2024
2078
|
agent = app["agent"]
|
|
@@ -2036,15 +2090,41 @@ def main(args: Optional[List[str]] = None) -> None:
|
|
|
2036
2090
|
|
|
2037
2091
|
otlp_http_app = make_otlp_http_app(agent)
|
|
2038
2092
|
|
|
2093
|
+
# Create Web UI app if enabled
|
|
2094
|
+
web_ui_app = None
|
|
2095
|
+
if parsed_args.web_ui_port > 0:
|
|
2096
|
+
from .web import WebUI
|
|
2097
|
+
|
|
2098
|
+
# Pass configuration directly to WebUI
|
|
2099
|
+
web_ui_config = {
|
|
2100
|
+
"snapshot_dir": parsed_args.snapshot_dir,
|
|
2101
|
+
"vcr_cassettes_directory": parsed_args.vcr_cassettes_directory,
|
|
2102
|
+
"disable_error_responses": parsed_args.disable_error_responses,
|
|
2103
|
+
"web_ui_port": parsed_args.web_ui_port,
|
|
2104
|
+
"max_requests": parsed_args.max_requests,
|
|
2105
|
+
}
|
|
2106
|
+
web_ui = WebUI(agent, config=web_ui_config)
|
|
2107
|
+
web_ui_app = web_ui.make_app()
|
|
2108
|
+
# Store WebUI instance reference for middleware access
|
|
2109
|
+
web_ui_app._webui_instance = web_ui
|
|
2110
|
+
# Also store on main app for middleware access
|
|
2111
|
+
app._webui_instance = web_ui
|
|
2112
|
+
|
|
2039
2113
|
async def run_servers():
|
|
2040
2114
|
"""Run APM and OTLP HTTP servers concurrently."""
|
|
2041
|
-
# Create runners for
|
|
2115
|
+
# Create runners for apps
|
|
2042
2116
|
apm_runner = web.AppRunner(app)
|
|
2043
2117
|
await apm_runner.setup()
|
|
2044
2118
|
|
|
2045
2119
|
otlp_http_runner = web.AppRunner(otlp_http_app)
|
|
2046
2120
|
await otlp_http_runner.setup()
|
|
2047
2121
|
|
|
2122
|
+
# Create Web UI runner if enabled
|
|
2123
|
+
web_ui_runner = None
|
|
2124
|
+
if web_ui_app is not None:
|
|
2125
|
+
web_ui_runner = web.AppRunner(web_ui_app)
|
|
2126
|
+
await web_ui_runner.setup()
|
|
2127
|
+
|
|
2048
2128
|
# Start GRPC server if available (async creation)
|
|
2049
2129
|
otlp_grpc_server = await make_otlp_grpc_server_async(
|
|
2050
2130
|
agent, parsed_args.otlp_http_port, parsed_args.otlp_grpc_port
|
|
@@ -2058,12 +2138,23 @@ def main(args: Optional[List[str]] = None) -> None:
|
|
|
2058
2138
|
|
|
2059
2139
|
otlp_http_site = web.TCPSite(otlp_http_runner, port=parsed_args.otlp_http_port)
|
|
2060
2140
|
|
|
2061
|
-
#
|
|
2062
|
-
|
|
2141
|
+
# Create Web UI site if enabled
|
|
2142
|
+
web_ui_site = None
|
|
2143
|
+
if web_ui_runner is not None:
|
|
2144
|
+
web_ui_site = web.TCPSite(web_ui_runner, port=parsed_args.web_ui_port)
|
|
2145
|
+
|
|
2146
|
+
# Start servers concurrently
|
|
2147
|
+
sites_to_start = [apm_site.start(), otlp_http_site.start()]
|
|
2148
|
+
if web_ui_site is not None:
|
|
2149
|
+
sites_to_start.append(web_ui_site.start())
|
|
2150
|
+
|
|
2151
|
+
await asyncio.gather(*sites_to_start)
|
|
2063
2152
|
|
|
2064
2153
|
print(f"======== Running APM server on port {parsed_args.port} ========")
|
|
2065
2154
|
print(f"======== Running OTLP HTTP server on port {parsed_args.otlp_http_port} ========")
|
|
2066
2155
|
print(f"======== Running OTLP GRPC server on port {parsed_args.otlp_grpc_port} ========")
|
|
2156
|
+
if web_ui_site is not None:
|
|
2157
|
+
print(f"======== Running Web UI on port {parsed_args.web_ui_port} ========")
|
|
2067
2158
|
print("(Press CTRL+C to quit)")
|
|
2068
2159
|
|
|
2069
2160
|
try:
|
|
@@ -2074,6 +2165,8 @@ def main(args: Optional[List[str]] = None) -> None:
|
|
|
2074
2165
|
finally:
|
|
2075
2166
|
await apm_runner.cleanup()
|
|
2076
2167
|
await otlp_http_runner.cleanup()
|
|
2168
|
+
if web_ui_runner is not None:
|
|
2169
|
+
await web_ui_runner.cleanup()
|
|
2077
2170
|
await otlp_grpc_server.stop(grace=5.0)
|
|
2078
2171
|
|
|
2079
2172
|
# Run the servers
|
|
@@ -26,7 +26,7 @@ class RemoteConfigServer:
|
|
|
26
26
|
self._update_response(token, data)
|
|
27
27
|
|
|
28
28
|
@staticmethod
|
|
29
|
-
def _build_config_path_response(path: str, msg:
|
|
29
|
+
def _build_config_path_response(path: str, msg: Any) -> Dict[str, Any]:
|
|
30
30
|
expires_date = datetime.datetime.strftime(
|
|
31
31
|
datetime.datetime.now() + datetime.timedelta(days=1), "%Y-%m-%dT%H:%M:%SZ"
|
|
32
32
|
)
|
|
@@ -84,7 +84,7 @@ class RemoteConfigServer:
|
|
|
84
84
|
}
|
|
85
85
|
return remote_config_payload
|
|
86
86
|
|
|
87
|
-
def create_config_path_response(self, token: Optional[str], path: str, msg:
|
|
87
|
+
def create_config_path_response(self, token: Optional[str], path: str, msg: Any) -> None:
|
|
88
88
|
remote_config_payload = self._build_config_path_response(path, msg)
|
|
89
89
|
self.create_config_response(token, remote_config_payload)
|
|
90
90
|
|