Skip to content

enhancement(antithesis): Introduce rig intake API - #1826

Merged
blt merged 1 commit into
mainfrom
blt/antithesis_intake_port
Jun 23, 2026
Merged

enhancement(antithesis): Introduce rig intake API#1826
blt merged 1 commit into
mainfrom
blt/antithesis_intake_port

Conversation

@blt

@blt blt commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

This commit introduces an intake API for antithesis tests. It's a new implementation compared to the pre-existing intake in the project as this intake has different concerns. It will rapidly diverge from the other intake, being focused on allowing driver and check claims when running under Antithesis.

Change Type

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

How did you test this PR?

References

@datadog-datadog-prod-us1-2

This comment has been minimized.

@pr-commenter

pr-commenter Bot commented Jun 5, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: 389eb6b · Comparison: e53275f · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 40.31 MiB (baseline) vs 40.31 MiB (comparison)
Size Change: +0 B (+0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.12144960244886950662 -130 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.1044839927222934204 +129 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.12144960244886950662 -115 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.1044839927222934204 +114 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.12144960244886950662 -109 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.1044839927222934204 +108 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.12144960244886950662 -97 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.1044839927222934204 +96 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.12144960244886950662 -95 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.1044839927222934204 +94 B 1
[Unmapped] +5 B 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW]    +129  [NEW]     +40    anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.1044839927222934204
  [NEW]    +114  [NEW]     +25    anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.1044839927222934204
  [NEW]    +108  [NEW]     +19    anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.1044839927222934204
  [NEW]     +96  [NEW]      +7    anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.1044839927222934204
  [NEW]     +94  [NEW]      +5    anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.1044839927222934204
  +0.1%      +5  [ = ]       0    [Unmapped]
  [DEL]     -95  [DEL]      -5    anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.12144960244886950662
  [DEL]     -97  [DEL]      -7    anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.12144960244886950662
  [DEL]    -109  [DEL]     -19    anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.12144960244886950662
  [DEL]    -115  [DEL]     -25    anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.12144960244886950662
  [DEL]    -130  [DEL]     -40    anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.12144960244886950662
  [ = ]       0  [ = ]       0    TOTAL

@pr-commenter

pr-commenter Bot commented Jun 5, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: a13d256b-5938-4cfc-8e59-076548ab88f9
Baseline: 389eb6bb · Comparison: e53275fa · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (35)

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
dsd_uds_512kb_3k_contexts_cpu (erratic) cpu ⚪ +10.33 metrics profiles logs
dsd_uds_10mb_3k_contexts_cpu (erratic) cpu ⚪ +3.40 metrics profiles logs
dsd_uds_100mb_3k_contexts_cpu (erratic) cpu ⚪ +2.90 metrics profiles logs
otlp_ingest_metrics_5mb_memory memory ⚪ +1.50 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_cpu (erratic) cpu ⚪ +0.79 metrics profiles logs
dsd_uds_512kb_3k_contexts_memory memory ⚪ +0.43 metrics profiles logs
quality_gates_rss_idle memory ⚪ +0.28 metrics profiles logs
dsd_uds_500mb_3k_contexts_memory memory ⚪ +0.26 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_memory memory ⚪ +0.15 metrics profiles logs
dsd_uds_500mb_3k_contexts_cpu (erratic) cpu ⚪ +0.09 metrics profiles logs
otlp_ingest_logs_5mb_cpu (ignored) cpu ⚪ +0.08 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ +0.00 metrics profiles logs
dsd_uds_10mb_3k_contexts_throughput throughput ⚪ -0.00 metrics profiles logs
otlp_ingest_logs_5mb_throughput (ignored) throughput ⚪ -0.00 metrics profiles logs
dsd_uds_512kb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_1mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_100mb_3k_contexts_throughput throughput ⚪ +0.02 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_memory memory ⚪ -0.03 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_throughput throughput ⚪ +0.03 metrics profiles logs
otlp_ingest_metrics_5mb_throughput throughput ⚪ +0.04 metrics profiles logs
otlp_ingest_traces_5mb_throughput throughput ⚪ +0.06 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.08 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_cpu (erratic) cpu ⚪ -0.13 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.15 metrics profiles logs
otlp_ingest_metrics_5mb_cpu (erratic) cpu ⚪ -0.20 metrics profiles logs
dsd_uds_1mb_3k_contexts_memory memory ⚪ -0.21 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_throughput throughput ⚪ +0.26 metrics profiles logs
dsd_uds_100mb_3k_contexts_memory memory ⚪ -0.29 metrics profiles logs
dsd_uds_10mb_3k_contexts_memory memory ⚪ -0.34 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.38 metrics profiles logs
otlp_ingest_traces_5mb_memory memory ⚪ -0.46 metrics profiles logs
dsd_uds_500mb_3k_contexts_throughput throughput ⚪ +0.48 metrics profiles logs
otlp_ingest_traces_5mb_cpu (erratic) cpu ⚪ -2.74 metrics profiles logs
dsd_uds_1mb_3k_contexts_cpu (erratic) cpu 🟢 -5.84 metrics profiles logs
otlp_ingest_logs_5mb_memory (ignored) memory ⚪ -16.31 metrics profiles logs
Bounds Checks: ❌ Failed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 9/10 ❌ 141 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 42.3 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 65.5 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 191 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 28.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.

@blt
blt force-pushed the blt/antithesis_intake_port branch from a6287d2 to 2c2f617 Compare June 15, 2026 22:33
@blt
blt force-pushed the blt/antithesis-workload-sampling branch 2 times, most recently from 323267a to 8c7b55d Compare June 15, 2026 22:44
@blt
blt force-pushed the blt/antithesis_intake_port branch 2 times, most recently from fd1387d to 825a824 Compare June 16, 2026 22:37
@blt
blt force-pushed the blt/antithesis_intake_port branch from 825a824 to 9cb8d2d Compare June 18, 2026 21:34
@blt
blt force-pushed the blt/antithesis-workload-sampling branch from 8c7b55d to 084d401 Compare June 18, 2026 21:34
@blt blt changed the title Antithesis intake port enhancement(antithesis): Introduce rig intake API Jun 18, 2026
@blt
blt marked this pull request as ready for review June 18, 2026 21:40
@blt
blt requested review from a team as code owners June 18, 2026 21:41
Copilot AI review requested due to automatic review settings June 18, 2026 21:41

Copilot AI 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.

Pull request overview

This PR adds a dedicated antithesis-intake crate for Antithesis harness runs, implementing an /api/v2/series HTTP intake that asserts Pyld01–Pyld22 payload properties via the Antithesis SDK, and wires it into the Antithesis deploy images (replacing the shared correctness datadog-intake in that context).

Changes:

  • Introduces the new test/antithesis/intake crate and binary (antithesis-intake) with an Axum router and a property-assertion pipeline for /api/v2/series.
  • Updates Antithesis deploy Dockerfile/compose to build and run antithesis-intake (and removes finally_verify_delivery from the image build/copy path).
  • Adds/updates documentation describing the new intake and its asserted properties.

Reviewed changes

Copilot reviewed 20 out of 21 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
test/antithesis/scratchbook/w-property-intake.md New scratchbook doc describing the W/Pyld property intake behavior.
test/antithesis/intake/src/properties/payload/series.rs Implements MetricSeries-level Pyld checks (name, type, tags, origin, point-count).
test/antithesis/intake/src/properties/payload/resource.rs Implements resource-level Pyld checks (host resource resolution, resource count, hostname length).
test/antithesis/intake/src/properties/payload/point.rs Implements MetricPoint-level Pyld checks (NaN values, future timestamp bound).
test/antithesis/intake/src/properties/payload/metric_payload.rs Implements payload-level Pyld checks (decode success, total point count).
test/antithesis/intake/src/properties/payload/envelope.rs Implements envelope/header Pyld checks (content-type, content-encoding, API key presence).
test/antithesis/intake/src/properties/payload/constants.rs Defines shared spec-derived constants for payload checks.
test/antithesis/intake/src/properties/payload/bytes.rs Implements size/Content-Length Pyld checks.
test/antithesis/intake/src/properties/payload.rs Defines payload property modules.
test/antithesis/intake/src/properties.rs Top-level properties module wiring for the intake.
test/antithesis/intake/src/lib.rs Crate root for antithesis-intake, including lint policy and module exports.
test/antithesis/intake/src/intake.rs /api/v2/series handler and evaluation pipeline.
test/antithesis/intake/src/http.rs Axum router construction and measurement middleware for wire/decompressed sizes.
test/antithesis/intake/src/bin/intake.rs Binary entrypoint (CLI/env config, logging, graceful shutdown).
test/antithesis/intake/README.md Spec-style documentation for Pyld01–Pyld22 properties.
test/antithesis/intake/Cargo.toml New crate manifest and dependencies for antithesis-intake.
test/antithesis/harness/src/bin/finally_verify_delivery.rs Removed (previous /metrics/dump polling liveness check).
test/antithesis/deploy/Dockerfile Builds/runs antithesis-intake in the Antithesis intake image; removes finally_verify_delivery.
test/antithesis/deploy/docker-compose.yaml Updates comments to reflect antithesis-intake.
Cargo.toml Adds test/antithesis/intake to the workspace members.
Cargo.lock Adds the antithesis-intake package entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/antithesis/intake/src/intake.rs Outdated
Comment thread test/antithesis/intake/src/intake.rs Outdated
Comment thread test/antithesis/scratchbook/w-property-intake.md
Comment thread test/antithesis/intake/README.md Outdated

@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: 9cb8d2dd37

ℹ️ 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".

Comment thread test/antithesis/deploy/Dockerfile
Comment thread test/antithesis/intake/src/intake.rs Outdated
@blt
blt force-pushed the blt/antithesis-workload-sampling branch from 07d1980 to ecdc5df Compare June 22, 2026 19:05
Copilot AI review requested due to automatic review settings June 22, 2026 20:58
@blt
blt force-pushed the blt/antithesis-workload-sampling branch from ecdc5df to eb2197b Compare June 22, 2026 20:58
@blt
blt force-pushed the blt/antithesis_intake_port branch from aa4004f to 2fcdd8d Compare June 22, 2026 20:58

Copilot AI 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.

Pull request overview

Copilot reviewed 21 out of 22 changed files in this pull request and generated 7 comments.

Comment thread test/antithesis/intake/src/intake.rs Outdated
Comment thread test/antithesis/intake/src/intake.rs Outdated
Comment thread test/antithesis/intake/src/intake.rs Outdated
Comment thread test/antithesis/scratchbook/w-property-intake.md
Comment thread test/antithesis/scratchbook/w-property-intake.md
Comment thread test/antithesis/scratchbook/w-property-intake.md
Comment thread test/antithesis/intake/src/intake.rs Outdated
@blt
blt force-pushed the blt/antithesis-workload-sampling branch 4 times, most recently from 02c9828 to e2f4b11 Compare June 22, 2026 23:27
@blt
blt force-pushed the blt/antithesis_intake_port branch from 2fcdd8d to 9cd0107 Compare June 22, 2026 23:27
Base automatically changed from blt/antithesis-workload-sampling to main June 23, 2026 12:33
An error occurred while trying to automatically change base from blt/antithesis-workload-sampling to main June 23, 2026 12:33

@tobz tobz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Most of this looks reasonable to me, but I leave it to you to address the clanker feedback and merge conflicts before merging. 👍🏻

This commit introduces an intake API for antithesis tests. It's a new
implementation compared to the pre-existing intake in the project as
this intake has different concerns. However, my hope is to eventually
merge the two together once this one is done baking, or supplant the
other depending on where we get to.
@blt
blt force-pushed the blt/antithesis_intake_port branch from a7e5cda to e53275f Compare June 23, 2026 18:53
@blt
blt merged commit 9c1abde into main Jun 23, 2026
82 checks passed
@blt
blt deleted the blt/antithesis_intake_port branch June 23, 2026 20:12
dd-octo-sts Bot pushed a commit that referenced this pull request Jun 23, 2026
## Summary

This commit introduces an intake API for antithesis tests. It's a new
implementation compared to the pre-existing intake in the project as
this intake has different concerns. It will rapidly diverge from the
other intake, being focused on allowing driver and check claims when
running under Antithesis.

## Change Type
- [ ] Bug fix
- [ ] New feature
- [x] Non-functional (chore, refactoring, docs)
- [ ] Performance 9c1abde
tobz pushed a commit that referenced this pull request Jun 30, 2026
This commit introduces an intake API for antithesis tests. It's a new
implementation compared to the pre-existing intake in the project as
this intake has different concerns. It will rapidly diverge from the
other intake, being focused on allowing driver and check claims when
running under Antithesis.

- [ ] Bug fix
- [ ] New feature
- [x] Non-functional (chore, refactoring, docs)
- [ ] Performance
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. mergequeue-status: rejected

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants