Skip to content

chore(antithesis): Add two new Pyld properties#1960

Open
blt wants to merge 1 commit into
blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertionfrom
blt/chore_antithesis_add_two_new_pyld_properties
Open

chore(antithesis): Add two new Pyld properties#1960
blt wants to merge 1 commit into
blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertionfrom
blt/chore_antithesis_add_two_new_pyld_properties

Conversation

@blt

@blt blt commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

This commit adds two new properties to the intake model:

  • Pyld23 -- per-tag byte cap
  • Pyld24 -- per-series total tagset byte cap

Not terribly complicated code and I've set the constants to conform to
intake guidelines.

Change Type

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

How did you test this PR?

References

@dd-octo-sts dd-octo-sts Bot added the area/test All things testing: unit/integration, correctness, SMP regression, etc. label Jul 1, 2026
@datadog-datadog-prod-us1

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

Copy link
Copy Markdown

Pipelines

Fix all issues with BitsAI

⚠️ Warnings

🚦 1 Pipeline job failed

DataDog/saluki | test-integration-macos-arm64   View in Datadog   GitLab

Useful? React with 👍 / 👎

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

@pr-commenter

pr-commenter Bot commented Jul 1, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: 92cb9bd · Comparison: 490d1fa · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.68 MiB (baseline) vs 41.68 MiB (comparison)
Size Change: -1.34 KiB (-0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.bc27ec12f8abfd741d2cc888c8b01dc7.6.llvm.4158422603915796461 -1.87 KiB 1
anon.2c42b77b551de5ce0eb4683a5f3348ef.394.llvm.6471492298253374226 +1.87 KiB 1
anon.d851f2884fec383d59770b6e1053557d.496.llvm.14733898691217894837 -1.77 KiB 1
anon.d851f2884fec383d59770b6e1053557d.496.llvm.2729676012635161149 +1.77 KiB 1
anon.9af47ef3bc1f734053efc1a81f309c81.30.llvm.17299067839495397339 -1.69 KiB 1
anon.d851f2884fec383d59770b6e1053557d.181.llvm.2729676012635161149 +1.69 KiB 1
anon.1ae064f8f7c88592968577f5572fe6a1.81.llvm.10427259948598879219 -1.45 KiB 1
anon.84c2a157bbf679719fc5fed5de7b9895.104.llvm.17643131471645320202 +1.45 KiB 1
anon.1ae064f8f7c88592968577f5572fe6a1.76.llvm.10427259948598879219 -1.45 KiB 1
anon.b91e3af34c069ae48e7bbe7df595d981.128.llvm.10130343606843929883 +1.44 KiB 1
anon.1ae064f8f7c88592968577f5572fe6a1.78.llvm.10427259948598879219 -1.43 KiB 1
anon.105ca0d0b09b38782024af0b4190a881.82.llvm.10103066070350205741 +1.43 KiB 1
anon.168fdbdcbd293237ddac692d5d37499c.1219.llvm.13116985673205370977 -1.33 KiB 1
anon.1ae064f8f7c88592968577f5572fe6a1.597.llvm.12508115777240049810 +1.33 KiB 1
anon.d851f2884fec383d59770b6e1053557d.1940.llvm.14733898691217894837 -1.07 KiB 1
anon.19577c0eeee3802814ec8984397e7805.38.llvm.4244394631308212861 +1.07 KiB 1
anon.d851f2884fec383d59770b6e1053557d.1582.llvm.14733898691217894837 -1000 B 1
anon.56afeeebbb405e88722c851be8501b5f.28.llvm.9557380210322302320 +999 B 1
_RNvMs5_NtNtCsebJFismJkYh_3std2io5errorNtB5_5Error4kind.llvm.13116985673205370977 -971 B 1
_RNvMs5_NtNtCsebJFismJkYh_3std2io5errorNtB5_5Error4kind.llvm.3824531816487215769 +970 B 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW] +4.72Ki  [NEW]     +49    core::ptr::drop_in_place<tower::util::map_future::MapFuture<axum::util::MapIntoResponse<tower::util::map_request::MapRequest<otlp_protos::otlp_include::opentelemetry::proto::collector::metrics::v1::metrics_service_server::MetricsServiceServer<saluki_components::common::otlp::GrpcServiceImpl<saluki_components::relays::otlp::RelayHandler>>,tonic::service::router::Routes::add_service<otlp_protos::otlp_include::opentelemetry::proto::collector::metrics::v1::metrics_service_server::MetricsServiceServer<saluki_components::common::otlp::GrpcServiceImpl<saluki_components::relays::otlp::RelayHandler>>>::{{closure}}>>,tower::util::boxed_clone_sync::BoxCloneSyncService<http::request::Request<axum_core::body::Body>,http::response::Response<axum_core::body::Body>,core::convert::Infallible>::new<axum::util::MapIntoResponse<tower::util::map_request::MapRequest<otlp_protos::otlp_include::opentelemetry::proto::collector::metrics
  [NEW] +2.49Ki  [NEW]    +422    core::ptr::drop_in_place<tokio::sync::mpsc::bounded::Permit<saluki_components::common::datadog::validation::ValidationReadiness>>::hca0a8333f13b4a04
  [NEW] +1.87Ki  [NEW]     +97    anon.2c42b77b551de5ce0eb4683a5f3348ef.394.llvm.6471492298253374226
  [NEW] +1.77Ki  [NEW] +1.68Ki    anon.d851f2884fec383d59770b6e1053557d.496.llvm.2729676012635161149
  [NEW] +1.75Ki  [NEW]     +33    core::ptr::drop_in_place<http_body_util::combinators::map_err::MapErr<tonic::codec::encode::EncodeBody<tonic_prost::codec::ProstEncoder<otlp_protos::otlp_include::opentelemetry::proto::collector::metrics::v1::ExportMetricsServiceResponse>,tokio_stream::once::Once<core::result::Result<otlp_protos::otlp_include::opentelemetry::proto::collector::metrics::v1::ExportMetricsServiceResponse,tonic::status::Status>>>,tonic::status::Status::map_error<tonic::status::Status>>>::hc7bb46af7020a455
  [NEW] +1.69Ki  [NEW]     +90    anon.d851f2884fec383d59770b6e1053557d.181.llvm.2729676012635161149
  [NEW] +1.45Ki  [NEW]     +22    anon.84c2a157bbf679719fc5fed5de7b9895.104.llvm.17643131471645320202
  [NEW] +1.44Ki  [NEW]     +22    anon.b91e3af34c069ae48e7bbe7df595d981.128.llvm.10130343606843929883
  [NEW] +1.43Ki  [NEW]     +92    anon.105ca0d0b09b38782024af0b4190a881.82.llvm.10103066070350205741
  [NEW] +1.33Ki  [NEW]     +91    anon.1ae064f8f7c88592968577f5572fe6a1.597.llvm.12508115777240049810
  -0.1% -1.32Ki  [ = ]       0    [2750 Others]
  [DEL] -1.33Ki  [DEL]     -91    anon.168fdbdcbd293237ddac692d5d37499c.1219.llvm.13116985673205370977
  [DEL] -1.43Ki  [DEL]     -92    anon.1ae064f8f7c88592968577f5572fe6a1.78.llvm.10427259948598879219
  [DEL] -1.45Ki  [DEL]     -22    anon.1ae064f8f7c88592968577f5572fe6a1.76.llvm.10427259948598879219
  [DEL] -1.45Ki  [DEL]     -22    anon.1ae064f8f7c88592968577f5572fe6a1.81.llvm.10427259948598879219
  [DEL] -1.69Ki  [DEL]     -90    anon.9af47ef3bc1f734053efc1a81f309c81.30.llvm.17299067839495397339
  [DEL] -1.75Ki  [DEL]     -33    core::ptr::drop_in_place<http_body_util::combinators::map_err::MapErr<tonic::codec::encode::EncodeBody<tonic_prost::codec::ProstEncoder<otlp_protos::otlp_include::opentelemetry::proto::collector::logs::v1::ExportLogsServiceResponse>,tokio_stream::once::Once<core::result::Result<otlp_protos::otlp_include::opentelemetry::proto::collector::logs::v1::ExportLogsServiceResponse,tonic::status::Status>>>,tonic::status::Status::map_error<tonic::status::Status>>>::h1fa0da3cd6bc290b
  [DEL] -1.77Ki  [DEL] -1.68Ki    anon.d851f2884fec383d59770b6e1053557d.496.llvm.14733898691217894837
  [DEL] -1.87Ki  [DEL]     -97    anon.bc27ec12f8abfd741d2cc888c8b01dc7.6.llvm.4158422603915796461
  [DEL] -2.50Ki  [DEL]    -422    core::ptr::drop_in_place<tokio::sync::mpsc::bounded::Permit<saluki_components::common::datadog::transaction::Transaction<saluki_common::buf::chunked::FrozenChunkedBytesBuffer>>>::h352480850e3af1cc
  [DEL] -4.72Ki  [DEL]     -49    core::ptr::drop_in_place<tower::util::map_future::MapFuture<axum::util::MapIntoResponse<tower::util::map_request::MapRequest<otlp_protos::otlp_include::opentelemetry::proto::collector::trace::v1::trace_service_server::TraceServiceServer<saluki_components::common::otlp::GrpcServiceImpl<saluki_components::relays::otlp::RelayHandler>>,tonic::service::router::Routes::add_service<otlp_protos::otlp_include::opentelemetry::proto::collector::trace::v1::trace_service_server::TraceServiceServer<saluki_components::common::otlp::GrpcServiceImpl<saluki_components::relays::otlp::RelayHandler>>>::{{closure}}>>,tower::util::boxed_clone_sync::BoxCloneSyncService<http::request::Request<axum_core::body::Body>,http::response::Response<axum_core::body::Body>,core::convert::Infallible>::new<axum::util::MapIntoResponse<tower::util::map_request::MapRequest<otlp_protos::otlp_include::opentelemetry::proto::collector::trace::v1::trace_se
  -0.0% -1.34Ki  [ = ]       0    TOTAL

@pr-commenter

pr-commenter Bot commented Jul 1, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: 087a7495-218a-46e6-9471-b434cd33003e
Baseline: 92cb9bda · Comparison: 490d1faa · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (5)

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_heavy memory ⚪ +0.16 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -0.09 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.11 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.19 metrics profiles logs
quality_gates_rss_idle memory ⚪ -0.28 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 132 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 43.1 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 65 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 ✅ 29 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/chore_antithesis_add_two_new_pyld_properties branch from 80c02ec to 2f2246a Compare July 2, 2026 13:44
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch 2 times, most recently from 0a357bc to deb7e08 Compare July 2, 2026 16:56
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch 2 times, most recently from d82dd16 to 8696828 Compare July 2, 2026 21:11
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from deb7e08 to 1f8a3ea Compare July 2, 2026 21:11
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch from 8696828 to 7f923d5 Compare July 2, 2026 21:40
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from 1f8a3ea to 2a839ad Compare July 2, 2026 21:40
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch from 7f923d5 to ba11f8a Compare July 2, 2026 22:08
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from 2a839ad to 69323dd Compare July 2, 2026 22:08
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch from ba11f8a to 7830217 Compare July 2, 2026 22:17
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from 69323dd to 26b381d Compare July 2, 2026 22:17
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch from 7830217 to 3ddec3a Compare July 2, 2026 22:41
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from 26b381d to 2e26224 Compare July 2, 2026 22:41
@blt blt marked this pull request as ready for review July 2, 2026 22:49
@blt blt requested a review from a team as a code owner July 2, 2026 22:49
Copilot AI review requested due to automatic review settings July 2, 2026 22:49
@blt blt requested a review from a team as a code owner July 2, 2026 22:49

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

Adds two new /api/v2/series intake model properties to the Antithesis intake validator to enforce tag-size limits consistent with intake guidelines.

Changes:

  • Introduce constants for per-tag length and per-series total tagset size caps (Pyld23/Pyld24).
  • Add two new MetricSeries property assertions (tag_length, tag_set_size) and execute them during series evaluation.
  • Document the new properties in the intake README property table.

Reviewed changes

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

File Description
test/antithesis/intake/src/series_observation.rs Wires the new per-series property checks into the series evaluation pipeline.
test/antithesis/intake/src/properties/payload/series.rs Implements Pyld23 (per-tag byte cap) and Pyld24 (per-series total tag bytes cap).
test/antithesis/intake/src/properties/payload/constants.rs Adds spec-derived constants for the new caps.
test/antithesis/intake/README.md Updates the documented property list to include Pyld23 and Pyld24.

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

@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from 2e26224 to 6af5693 Compare July 6, 2026 14:18
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch from 3ddec3a to e676f37 Compare July 6, 2026 14:19
This commit adds two new properties to the intake model:

* Pyld23 -- per-tag byte cap
* Pyld24 -- per-series total tagset byte cap

Not terribly complicated code and I've set the constants to conform to
intake guidelines.
Copilot AI review requested due to automatic review settings July 6, 2026 17:50
@blt blt force-pushed the blt/chore_antithesis_track_dropped_transactions_in_as_sometimes_assertion branch from 6af5693 to 5943dc3 Compare July 6, 2026 17:50
@blt blt force-pushed the blt/chore_antithesis_add_two_new_pyld_properties branch from e676f37 to 490d1fa Compare July 6, 2026 17:50

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 4 out of 4 changed files in this pull request and generated no new comments.

@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: 490d1faa4b

ℹ️ 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 on lines +54 to +55
| Pyld23 | MetricSeries | Tag Length | each tag `<= 200` bytes (`MaxTagLength`) |
| Pyld24 | MetricSeries | Tag Set Size | total tag bytes per series `<= 100 KiB` (`MaxTagSetSize`) |

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 Keep the scratchbook catalog in sync

Adding Pyld23/Pyld24 changes the Antithesis property catalog, but test/antithesis/scratchbook/w-property-intake.md still says the intake covers W1-W22 and calls that the full set; test/antithesis/AGENTS.md says the scratchbook must be kept up to date as Antithesis-related decisions change. This leaves run triage/catalog documentation inconsistent with the assertions now firing.

Useful? React with 👍 / 👎.

@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: 490d1faa4b

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

let over = ms
.tags
.iter()
.map(String::len)

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 Count tag length in characters

When a metric tag contains multi-byte Unicode, this measures UTF-8 bytes rather than the tag length Datadog documents as a 200-character limit while allowing Unicode tags (docs). The DogStatsD parser accepts valid UTF-8 tags, so a 200-character Japanese tag can be emitted in-domain but will have observed > 200 here and incorrectly fail Pyld23.tag_length; count characters instead, or make the property explicitly byte-based only if that is the intended invariant.

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.

4 participants