Skip to content

feat: Split summary counters by overrideAffected and suppress individual events for marked evaluations - #365

Draft
kinyoklion wants to merge 1 commit into
rlamb/overrides-dotnet-override-layerfrom
rlamb/overrides-dotnet-events-internal
Draft

kinyoklion wants to merge 1 commit into
rlamb/overrides-dotnet-override-layerfrom
rlamb/overrides-dotnet-events-internal

Conversation

@kinyoklion

@kinyoklion kinyoklion commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Summary

Extends the analytics event processing in LaunchDarkly.InternalSdk for override-affected evaluations, as defined by the OVERRIDE specification.

EventTypes.EvaluationEvent gains an OverrideAffected field. When it is set, the event processor produces no individual feature event and no debug event for the evaluation, whatever the flag's TrackEvents and DebugEventsUntilDate request. The evaluation is still counted in summary events, and the marker becomes part of the summary counter key, so override-affected and other evaluations of the same flag key, variation, and version accumulate into separate counters instead of being collapsed together. The summary event output writes "overrideAffected": true on a marked counter and omits the property otherwise, following the existing unknown marker. The summarizer interface carries the marker through both the aggregated and the per-context summarizers.

Nothing sets the field yet; the server SDK does so in the next change. Every existing event path is unchanged when the field is false, which the existing event processor and output tests confirm. New tests cover the suppression of feature and debug events, the suppression of a marked prerequisite record, the separate counters, and the counter serialization.

This PR is based on the branch of the override layer change so that the whole flag overrides series applies as one linear sequence; it uses nothing from that branch.

SDK-3248


Note

Overview
Adds OverrideAffected on EvaluationEvent so override-driven evaluations follow OVERRIDE analytics rules: they still roll into summary counters but never emit feature or debug events, even when tracking or debug mode is on.

Summary aggregation now keys counters by version, variation, and overrideAffected, so marked and unmarked evaluations of the same flag do not merge. Serialized summary counters include overrideAffected: true when set (omitted otherwise). IEventSummarizer.SummarizeEvent and the aggregated/per-context summarizers pass the flag through; EventProcessorInternal applies the suppression logic. No production code sets the field in this PR (defaults false); tests cover suppression, separate counters, and JSON output.

Reviewed by Cursor Bugbot for commit a750428. Bugbot is set up for automated code reviews on this repo. Configure here.

@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-override-layer branch from 49ba8e2 to d9e0211 Compare September 28, 2026 20:39
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-events-internal branch from 9387b50 to 3aacd97 Compare September 28, 2026 20:39
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-override-layer branch from d9e0211 to 092ed5c Compare October 1, 2026 23:43
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-events-internal branch from 3aacd97 to 471a60c Compare October 1, 2026 23:43
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-override-layer branch from 092ed5c to 716b005 Compare October 3, 2026 01:34
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-events-internal branch from 471a60c to a750428 Compare October 3, 2026 01:34
@kinyoklion

Copy link
Copy Markdown
Member Author

bugbot review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit a750428. Configure here.

…ual events for marked evaluations

EventTypes.EvaluationEvent gains an OverrideAffected field. A marked
evaluation produces no individual feature event and no debug event,
whatever the flag requests, and is counted under a separate summary
counter whose key includes the marker. The summary output writes
"overrideAffected": true on such a counter and omits the property
otherwise, as defined by the OVERRIDE specification.
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-override-layer branch from 716b005 to 041e7a5 Compare October 3, 2026 01:52
@kinyoklion
kinyoklion force-pushed the rlamb/overrides-dotnet-events-internal branch from a750428 to c9ce308 Compare October 3, 2026 01:52

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant