Skip to content

Flag work done for optional products that are turned off in perf review (AI perf review) - #13094

Open
dougqh wants to merge 3 commits into
masterfrom
dougqh/perf-review-disabled-product-args
Open

dougqh wants to merge 3 commits into
masterfrom
dougqh/perf-review-disabled-product-args

Conversation

@dougqh

@dougqh dougqh commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

What Does This Do

Adds J14 — Work done for an optional product that's off to the /perf-review rubric: on a per-request / per-message path, flag work done only for an optional product (DSM, DBM, DJM, AppSec, …) that isn't behind that product's enabled check. It names each product's existing check (and whether it's static or dynamic), and notes that a no-op receiver doesn't make the arguments free, and that the no-op has to be verified in the running implementation.

It also fixes two statements that pointed reviews the other way:

  • "Every reachable sink is no-op-when-disabled → stay silent" now clears only the call, not arguments built for it.
  • DSM was listed as a large-denominator domain; the example given (Spark jobs) is DJM. DSM runs on per-message paths, so it gets no relief.

Motivation

The same miss shipped in five messaging paths (#13075, #13079–#13082). For the Kafka consumer, guarding it saved 548 B per record (−13.7% allocation) and gained 6.6% throughput.

Additional Notes

Back-tested by hand on the pre-fix code: it flags all five fixed sites and stays silent on the code that was already correct (gRPC client, SNS 2.0, Mongo DBM, JDBC's DBM checks, DJM's checks in core, the gRPC server's single precomputed-tags context).

Numbered J14 because #13005 claims J13. Merges cleanly with the open perf-review PRs.

Jira ticket: APMLP-2124

🤖 Generated with Claude Code

Add J14: on per-request / per-message paths, flag work whose only
consumer is an optional product (DSM, DBM, DJM, AppSec, ...) that isn't
behind that product's enabled check. Arguments built for a no-op
receiver are still paid for, and "no-op" must be verified in the
implementation that actually runs (DSM's trackBacklog still allocates
and queues when DSM is off). Name each product's existing gate and
whether it is static or dynamic.

Also correct two statements that steered reviews away from this: the
"no-op sink, stay silent" rule now clears only the call, not its
arguments; and DSM is removed from the large-denominator domains
(the Spark example there is DJM; DSM runs on per-message paths).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dougqh dougqh added comp: core Tracer core type: documentation tag: performance Performance related changes tag: no release notes Changes to exclude from release notes tag: ai generated Largely based on code generated by an AI or LLM labels Oct 27, 2026
Keep the trigger, the no-op-receiver and verify-the-running-impl points,
the per-product gates and the don't-flag cases; drop the long
measurement narrative and code snippets. Add the shared-call case:
gate only the product's part of a propagation inject.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dougqh
dougqh marked this pull request as ready for review October 27, 2026 20:04
@dougqh
dougqh requested a review from a team as a code owner October 27, 2026 20:04
@dougqh
dougqh requested review from jbachorik and removed request for a team October 27, 2026 20:04
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T20:07:05.142646Z 4a4ca07 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: 4a4ca07040

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@datadog-official datadog-official Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Bits Code Review: PASS

More details

The added guidance matches existing product enablement checks and correctly distinguishes no-op calls from the cost of eagerly building their arguments. The completed static review produced no reportable findings.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 4a4ca07

@dd-octo-sts

dd-octo-sts Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.74 s 14.60 s [+0.2%; +1.8%] (maybe worse)
startup:insecure-bank:tracing:Agent 13.61 s 13.61 s [-0.8%; +0.8%] (no difference)
startup:petclinic:appsec:Agent 17.14 s 17.01 s [-0.3%; +1.8%] (no difference)
startup:petclinic:iast:Agent 16.89 s 17.10 s [-2.2%; -0.4%] (maybe better)
startup:petclinic:profiling:Agent 16.68 s 16.80 s [-1.6%; +0.2%] (no difference)
startup:petclinic:sca:Agent 17.08 s 16.98 s [-0.4%; +1.5%] (no difference)
startup:petclinic:tracing:Agent 16.23 s 16.27 s [-1.2%; +0.8%] (no difference)

Commit: 294a7116 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@dougqh
dougqh requested a review from bric3 October 27, 2026 22:55
…check

The blanket exemption for a product's own components covered entry
points such as DefaultDataStreamsMonitoring.trackBacklog, which app
threads call even when DSM is off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@datadog-official

This comment has been minimized.

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

comp: core Tracer core tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes tag: performance Performance related changes type: documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant