-
Notifications
You must be signed in to change notification settings - Fork 179
Add FFE exposure emission #3910
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 26 commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
16d7817
Add FFE evaluation completion hook
leoromanovsky eba4c86
Add FFE exposure writer
leoromanovsky fc69e9f
Load evaluation-completed hook classes in canonical FFE PHPT
leoromanovsky 92ef9a3
Load evaluation-completed hook classes in canonical FFE PHPT
leoromanovsky 49d53ef
docs(ffe): add PR-stack and system diagrams for PR #3909
leoromanovsky 81c01a7
Migrate FFE exposure transport to libdatadog sidecar
leoromanovsky 0c4b4b3
Update libdatadog submodule to pick up FFE dispatch fix
leoromanovsky 64c4267
tooling: place mktemp dirs under OUTPUT_DIR to avoid silent no-op on …
leoromanovsky ea04875
docs(ffe): quote diagram titles, switch system to TD, re-render at hi…
leoromanovsky f319d47
docs(ffe): quote diagram titles, switch system to TD, re-render at hi…
leoromanovsky 13aca28
docs(ffe): drop 'Hook seam' wording, use 'Hook layer'
leoromanovsky 28782fb
ExposureWriter: surface first drop with a one-time warning + TODO
leoromanovsky f775277
ExposureWriter: flush-on-full so long-running runtimes don't silently…
leoromanovsky 8eedb0e
chore(ffe): remove generated stack diagrams
leoromanovsky 04adf69
chore(ffe): remove generated stack diagrams
leoromanovsky e9b713c
Merge branch 'leo.romanovsky/milestone-1-runtime-evaluation' into leo…
leoromanovsky f4a1546
Merge branch 'leo.romanovsky/m2-m3-evaluation-completed-base' into le…
leoromanovsky ec49560
Merge branch 'leo.romanovsky/milestone-1-runtime-evaluation' into leo…
leoromanovsky 61f6cc1
Merge branch 'leo.romanovsky/m2-m3-evaluation-completed-base' into le…
leoromanovsky 76118cb
fix(ffe): tidy native exposure branch base
leoromanovsky b28e705
Merge milestone 1 runtime evaluation base
leoromanovsky c4bceb1
chore(ffe): update libdatadog sidecar dependency
leoromanovsky e82793e
chore(ffe): update libdatadog sidecar dependency
leoromanovsky 5e38adc
chore(ffe): update libdatadog sidecar dependency
leoromanovsky c8cb8f5
chore(ffe): update libdatadog sidecar dependency
leoromanovsky a30c3ef
chore(ffe): update libdatadog sidecar dependency
leoromanovsky 59d0ea1
Fix FFE exposure sidecar activation
leoromanovsky 59be76d
Update FFE exposure dependency and result ABI
leoromanovsky 416749d
Bump libdatadog exposure runtime
leoromanovsky 94de19a
Merge remote-tracking branch 'origin/master' into leo.romanovsky/m2-f…
leoromanovsky 11cc8fa
Remove unreachable FFE exposure cleanup branch
leoromanovsky 643272b
Drop redundant FFE exposure release guards
leoromanovsky e4d254e
Pass FFE exposures as zend strings
leoromanovsky 31ccc9f
Document FFE exposure CLI flush timing
leoromanovsky 436f80e
Move FFE exposure flush helper to testing namespace
leoromanovsky 4557494
Merge remote-tracking branch 'origin/master' into leo.romanovsky/m2-f…
leoromanovsky 1cb2a0b
Merge remote-tracking branch 'origin/master' into leo.romanovsky/m2-f…
leoromanovsky 203281e
Move FFE exposure buffering into tracer
leoromanovsky bcf1342
Fully move FFE to tracer/
bwoebi bdaca4f
Fix compile error
bwoebi 00564ae
Remove FFE evaluation RC polling
leoromanovsky a802e10
Proper empty string
bwoebi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is known and intended that for long-running CLI scripts, exposures will only be flushed at the request end, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that is intentional for this PR. The exposure buffer is request-local native memory and is flushed at RSHUTDOWN. For PHP-FPM, it flushes once per request; for CLI, the script lifetime is the request lifetime.
The tradeoff is intentional: evaluation stays I/O-free, and the sidecar receives/deduplicates exposures only at flush time. The caveat is long-running CLI scripts: exposures are delayed until shutdown, and the current in-process buffer is capped at 1000 entries. If we decide long-running CLI needs better behavior, I would handle that as a follow-up with an explicit periodic/threshold flush path rather than adding sidecar I/O to evaluation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My intuitive approach would be a (fixed size) ring buffer via shared memory (a few pages of shm , which the sidecar polls (e.g. 1x/sec). This would also naturally limit the amount of exposures per second, which the sidecar has to process (hard limit on overhead esssentially).