Repository navigation
Conversation
Contributor
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
A UFC split feature can list the EXPOSURE and EVALUATION destinations. The evaluator now writes each feature once for each destination it lists, under that destination's metadata prefix. The exposure hook puts EXPOSURE features on the exposure event, and the flag-evaluation hook puts EVALUATION features on the flag-evaluation event, whatever the consent, because they come from the flag configuration. Flag-evaluation buckets now include the features in both tiers, so rows with different features never merge, and each row serializes them. Both events gain a features field with new constructors; with an older agent the provider sends them without features.
danyal002
force-pushed
the
danyal.khan/EX-3815-exposure-hook
branch
from
October 8, 2026 19:03
296c989 to
272a12d
Compare
danyal002
force-pushed
the
danyal.khan/EX-3828
branch
from
October 8, 2026 19:03
112f76f to
5fc2740
Compare
The FFE_FLAGS schema documents that keys are unique within a split and that SDKs keep the first feature with a repeated key. Flag metadata is a map, so the provider used to keep the last one. It now ignores a later feature with a key it has already seen, for every destination.
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Warning
NOT READY FOR REVIEW YET
Stacked on #12775.
What Does This Do
HOOK:__dd_feature.<key>in the flag metadata, as before.EXPOSURE:__dd_exposure_feature.<key>, whichExposureLoggingHookputs on the exposure event asfeatures.EVALUATION:__dd_evaluation_feature.<key>, whichFlagEvalLoggingHookputs on the flag-evaluation event.featuresfield, with new constructors, toExposureEventandFlagEvalEvent. The existing constructors still work.Motivation
Flag configurations can attach features to a split, for example a bandit policy ID, and send them with exposures and flag evaluations. This lets new features reach Datadog without an SDK release.
Additional Notes
observeFullEvaluationDataconsent, because they come from the flag configuration, not the evaluation context.dd-java-agent, the provider checks for the new constructors and sends events without features.featuresbefore any flag configuration uses these destinations: ddoghq/dd-source#124673.Jira ticket: EX-3828