Skip to content

chore(antithesis): Alter dogstatsd generation to is_malformed regime - #2215

Open
blt wants to merge 1 commit into
blt/chore_antithesis_intro_intake_v3from
blt/chore_antithesis_alter_dogstatsd_generation_to_is_malformed_regime
Open

chore(antithesis): Alter dogstatsd generation to is_malformed regime#2215
blt wants to merge 1 commit into
blt/chore_antithesis_intro_intake_v3from
blt/chore_antithesis_alter_dogstatsd_generation_to_is_malformed_regime

Conversation

@blt

@blt blt commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Our previous approach to generating dogstatsd load for use in the
Antithesis rig was very Datadog/lading inspired: generate something
that is correct-by-construction and then bias the result to be
'interesting'. This works well but the biasing systematically avoids
conditions that are not-malformed -- that is, accepted by the SUT --
but are demonstrative of goofy behavior. This commit changes the
generator to be a hybrid of that approach with a state search approach.
We define a predicate is_malformed that confirms whether or not
a payload will be accepted by the SUT and then payloads which are not
malformed, however strange, are transmitted.

Change Type

  • Bug fix
  • New feature
  • Non-functional (chore, refactoring, docs)
  • Performance

How did you test this PR?

References

Our previous approach to generating dogstatsd load for use in the
Antithesis rig was very Datadog/lading inspired: generate something
that is correct-by-construction and then bias the result to be
'interesting'. This works well but the biasing systematically avoids
conditions that are not-malformed -- that is, accepted by the SUT --
but are demonstrative of goofy behavior. This commit changes the
generator to be a hybrid of that approach with a state search approach.
We define a predicate `is_malformed` that confirms whether or not
a payload will be accepted by the SUT and then payloads which are not
malformed, however strange, are transmitted.

blt commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Jul 27, 2026

Copy link
Copy Markdown

Pipelines

Unblock PR with BitsAI

⚠️ Warnings

🚦 2 Pipeline jobs failed

DataDog/saluki | check-fmt   View in Datadog   GitLab

DataDog/saluki | check-unused-deps   View in Datadog   GitLab

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: e4ff7fa | Docs | Datadog PR Page | Give us feedback!

@pr-commenter

pr-commenter Bot commented Jul 27, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: e34c659 · Comparison: e4ff7fa · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.09 MiB (baseline) vs 41.09 MiB (comparison)
Size Change: -8 B (-0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.44a0faa3240fa409baa379409d152aec.1.llvm.4920541009509882327 -129 B 1
anon.44a0faa3240fa409baa379409d152aec.1.llvm.804407083919707807 +128 B 1
anon.44a0faa3240fa409baa379409d152aec.4.llvm.4920541009509882327 -113 B 1
anon.44a0faa3240fa409baa379409d152aec.4.llvm.804407083919707807 +112 B 1
anon.44a0faa3240fa409baa379409d152aec.3.llvm.4920541009509882327 -108 B 1
anon.44a0faa3240fa409baa379409d152aec.3.llvm.804407083919707807 +107 B 1
anon.44a0faa3240fa409baa379409d152aec.0.llvm.4920541009509882327 -96 B 1
anon.44a0faa3240fa409baa379409d152aec.0.llvm.804407083919707807 +95 B 1
anon.44a0faa3240fa409baa379409d152aec.2.llvm.4920541009509882327 -94 B 1
anon.44a0faa3240fa409baa379409d152aec.2.llvm.804407083919707807 +93 B 1
[Unmapped] -3 B 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW]    +128  [NEW]     +40    anon.44a0faa3240fa409baa379409d152aec.1.llvm.804407083919707807
  [NEW]    +112  [NEW]     +24    anon.44a0faa3240fa409baa379409d152aec.4.llvm.804407083919707807
  [NEW]    +107  [NEW]     +19    anon.44a0faa3240fa409baa379409d152aec.3.llvm.804407083919707807
  [NEW]     +95  [NEW]      +7    anon.44a0faa3240fa409baa379409d152aec.0.llvm.804407083919707807
  [NEW]     +93  [NEW]      +5    anon.44a0faa3240fa409baa379409d152aec.2.llvm.804407083919707807
  -7.1%      -3  [ = ]       0    [Unmapped]
  [DEL]     -94  [DEL]      -5    anon.44a0faa3240fa409baa379409d152aec.2.llvm.4920541009509882327
  [DEL]     -96  [DEL]      -7    anon.44a0faa3240fa409baa379409d152aec.0.llvm.4920541009509882327
  [DEL]    -108  [DEL]     -19    anon.44a0faa3240fa409baa379409d152aec.3.llvm.4920541009509882327
  [DEL]    -113  [DEL]     -24    anon.44a0faa3240fa409baa379409d152aec.4.llvm.4920541009509882327
  [DEL]    -129  [DEL]     -40    anon.44a0faa3240fa409baa379409d152aec.1.llvm.4920541009509882327
  -0.0%      -8  [ = ]       0    TOTAL

@blt
blt marked this pull request as ready for review July 27, 2026 23:19
@blt
blt requested review from a team as code owners July 27, 2026 23:19

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 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.

Datadog Autotest: PASS

More details

The generator redesign did not reveal a clear diff-only behavioral regression. Adversarial cases covered delimiter-bearing fields, packed values, optional fields, framing, fallback sizing, and malformed-input repair; harness execution was blocked by the sandbox's unavailable hyper-http-proxy Git dependency.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Datadog Autotest · Commit e4ff7fa · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

@pr-commenter

pr-commenter Bot commented Jul 27, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: 6ed69d32-89c3-4b57-9806-8998779a71b4
Baseline: e34c659f · Comparison: e4ff7fa8 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (3)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
quality_gates_rss_dsd_low memory ⚪ +0.60 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ +0.36 metrics profiles logs
quality_gates_rss_idle memory ⚪ +0.03 metrics profiles logs
Bounds Checks: ✅ Passed (3)
experiment check replicates observed links
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 45.3 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 67.2 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 31.3 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e4ff7fa8ae

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

/// forwards. A packed datagram must be entirely well-formed.
#[test]
fn write_line_stays_within_its_limit(seed: u64, limit_bytes: u16, vibe in any_vibe()) {
fn every_payload_is_well_formed(seed: u64) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Prefix the new proptests with property_test_

Rename this proptest and the newly added never_panics proptest to include the literal property_test_ prefix. The filters in Makefile:573-579 exclude these names from the release-mode test-property target and instead run them only in the debug-mode test target, so the new randomized coverage is assigned to the wrong CI job.

AGENTS.md reference: AGENTS.md:L39-L41

Useful? React with 👍 / 👎.

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

Labels

area/test All things testing: unit/integration, correctness, SMP regression, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant