enhancement(antithesis): DogStatsD load generation#1782
Conversation
This comment has been minimized.
This comment has been minimized.
Binary Size Analysis (Agent Data Plane)Baseline: dc62bbd · Comparison: bc9e3b9 · diff ✅ Binary size difference within thresholdChanges by Module
Detailed Symbol Changes |
Regression Detector (Agent Data Plane)Run ID: Optimization Goals: ✅ No significant changes detectedFine details of change detection per experiment (35)Experiments configured
Bounds Checks: ✅ Passed (5)
ExplanationA 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 ( |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a31a487f1b
ℹ️ 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".
There was a problem hiding this comment.
Pull request overview
This PR adds an Antithesis-oriented DogStatsD workload generator to the test harness, shifting the Antithesis setup away from the prior millstone-based load driver and toward generating a mix of “clean” (compliant) and “feral” (mechanically allowable but nonsensical) DogStatsD lines (metrics/events/service-checks). It also updates the Antithesis scratchbook documentation to reflect the new workload and its current bug-reproduction reach.
Changes:
- Add a new
harness::payload::dogstatsdmodule that generates metric, event, and service-check lines with clean/feral “vibes”. - Rework
parallel_driver_send_dogstatsdto send randomly sized batches of generated DogStatsD messages and update associated SDK assertions. - Update Antithesis deployment and scratchbook docs for the new workload driver and topology.
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| test/antithesis/scratchbook/property-catalog.md | Updates catalog notes/status to reflect new driver behavior and workload reach. |
| test/antithesis/scratchbook/existing-assertions.md | Updates assertion inventory and explains the new driver; needs minor wording alignment. |
| test/antithesis/scratchbook/deployment-topology.md | Updates topology narrative for the new driver; contains an outdated UDS note vs actual deployment. |
| test/antithesis/scratchbook/bug-ledger.md | Adds “workload reach” note and updates bug-hunt entry details. |
| test/antithesis/harness/src/rand.rs | Extends randomness helpers with Probe for multiple numeric types and Boundary<T> samplers. |
| test/antithesis/harness/src/payload/dogstatsd/common.rs | Adds shared “segment/number/tag” construction utilities and clean/feral vibe handling. |
| test/antithesis/harness/src/payload/dogstatsd/metrics.rs | Adds feral metric line generator with randomized extensions/tags/value encodings. |
| test/antithesis/harness/src/payload/dogstatsd/events.rs | Adds feral event generator (including skewed header lengths in feral mode). |
| test/antithesis/harness/src/payload/dogstatsd/service_checks.rs | Adds feral service-check generator. |
| test/antithesis/harness/src/payload/dogstatsd.rs | Adds top-level DogStatsD message selection and in-file format reference notes. |
| test/antithesis/harness/src/payload.rs | Adds payload module root. |
| test/antithesis/harness/src/lib.rs | Exposes the new payload module from the harness crate. |
| test/antithesis/harness/src/bin/parallel_driver_send_dogstatsd.rs | Replaces old regime-based metric sender with batch-based clean/feral/mixed driver. |
| test/antithesis/harness/src/bin/first_sample_config/config.rs | Changes sampled log_level values; currently introduces an unsupported level for ADP. |
| test/antithesis/harness/Cargo.toml | Adds itoa/ryu dependencies for fast numeric formatting. |
| test/antithesis/deploy/Dockerfile | Removes millstone from workload image build; builds/copies new test-command binaries. |
| test/antithesis/deploy/docker-compose.yaml | Removes RUST_BACKTRACE env var; configures shared UDS volume for DogStatsD socket. |
| Cargo.lock | Records new dependency edges for harness additions (itoa, ryu). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a152801 to
4fc1007
Compare
a31a487 to
abbf74a
Compare
abbf74a to
bb12c83
Compare
4fc1007 to
0f6c10e
Compare
0f6c10e to
5aaad6f
Compare
bb12c83 to
51aa65b
Compare
0239db1 to
29d780c
Compare
51aa65b to
e4dc275
Compare
29d780c to
f4d5a5a
Compare
e4dc275 to
b9e6aa3
Compare
f4d5a5a to
90f327d
Compare
b9e6aa3 to
4903cee
Compare
90f327d to
6577832
Compare
4903cee to
6426b97
Compare
6426b97 to
ae74073
Compare
7e7e574 to
c19a793
Compare
This commit introduces DogStatD load generation. If you're familiar with my work in lading you might notice this is very different. The implementation here is responsible for giving Antithesis choices between 'compliant' dogstatsd lines and 'feral' lines which are _mechanically_ allowable lines but are in practice not sensible. Also of interest control of contexts and send rates are jettisoned entirely, that's an antithesis scheduling concern. Metrics, events and service-checks are all present. Depending on the antithesis shots I may need to adjust the ratios of compliant to feral outcomes.
c19a793 to
bc9e3b9
Compare
## Summary <!-- Please provide a brief summary about what this PR does. This should help the reviewers give feedback faster and with higher quality. --> This PR introduces DogStatD load generation. If you're familiar with my work in lading you might notice this is very different. The implementation here is responsible for giving Antithesis choices between 'compliant' dogstatsd lines and 'feral' lines which are _mechanically_ allowable lines but are in practice not sensible. Also of interest control of contexts and send rates are jettisoned entirely, that's an antithesis scheduling concern. Metrics, events and service-checks are all present. Depending on the antithesis shots I may need to adjust the ratios of compliant to feral outcomes. ## Change Type - [ ] Bug fix - [ ] New feature - [x] Non-functional (chore, refactoring, docs) - [ ] Performance ## How did you test this PR? <!-- Please how you tested these changes here --> Antithesis shots confirmed load generation behaves like a feral animal. ## References <!-- Please list any issues closed by this PR. --> <!-- - Closes: <issue link> --> <!-- Any other issues or PRs relevant to this PR? Feel free to list them here. --> efe110d

Summary
This PR introduces DogStatD load generation. If you're familiar with
my work in lading you might notice this is very different. The
implementation here is responsible for giving Antithesis choices between
'compliant' dogstatsd lines and 'feral' lines which are mechanically
allowable lines but are in practice not sensible. Also of interest
control of contexts and send rates are jettisoned entirely, that's an
antithesis scheduling concern.
Metrics, events and service-checks are all present. Depending on the
antithesis shots I may need to adjust the ratios of compliant to feral
outcomes.
Change Type
How did you test this PR?
Antithesis shots confirmed load generation behaves like a feral animal.
References