Repository navigation
fix(ffe): fall back to direct EVP intake in agentless mode - #4489
Conversation
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 30 Pipeline jobs failed
|
Benchmarks [ tracer ]Benchmark execution time: 2026-11-15 00:05:24 Comparing candidate commit a98560d in PR branch Found 0 performance improvements and 2 performance regressions! Performance is the same for 216 metrics, 0 unstable metrics.
|
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
The authenticated fallback remains separate from custom CDN URLs, and static review raised no reportable concerns about routing or test-token propagation. Native delivery could not be independently validated because required runtime dependencies were unavailable.
🤖 Bits Code Review · Commit ec428b1
vjfridge
left a comment
There was a problem hiding this comment.
Approach looks good. I posted some p2 comments for you to consider and looks like CI needs iteration, but I trust you'll take care of those!
…ndows Valgrind: the sidecar builds its rustls root store lazily inside the first timed /info probe. Under valgrind that alone takes several seconds, so the 5s DD_TRACE_AGENT_TIMEOUT expired, no EVP route was found and the flagevaluation batch was dropped. Raise the child's agent timeout when running under valgrind. Windows: every subprocess sidecar is spawned from the fixed trampoline %TEMP%\datadog-ipc-helper-<session>, with a single ".old" slot for a still-running predecessor. The test's own shared sidecar plus the previous child's lingering per-process sidecar occupy both slots, so the second child failed with ERROR_FILE_EXISTS (os error 80). Give each child a private TMP/TEMP directory. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Description
Agentless flag evaluation currently configures event delivery as Agent-only. Exposures and evaluation-count events therefore have no direct delivery path.
Use libdatadog's shared local-proxy discovery and HTTPS fallback for both streams in agentless mode. Direct delivery uses
DD_API_KEYand the intake derived fromDD_SITE. A custom CDN URL never becomes the authenticated event destination. Missing credentials or an invalid site retain local-proxy discovery. Remote Config keeps its existing Agent-only route. Runtime test-session changes preserve the destination of batches already handed to the sidecar. PHP-buffered exposures and deferred userland observations use the session active at handoff, not necessarily the session active during evaluation.The native transport fixture now reads concurrent HTTP requests without blocking on idle sockets. It retains the route, identity, credential, payload, and duplicate checks.
Validation
DataDog/dd-trace-php@a122cbc2ee47551e911de695ea2d45d0e1f4dc99system-tests@7f153aa229a1ce67559bb47acf1fb3986c1be6afDataDog/dd-trace-php@a122cbc2ee47551e911de695ea2d45d0e1f4dc99Reviewer checklist