Agent integrations checks#11692
Conversation
* Maintains the size check. * Verify some required entries * Ensure there's a minimum number of classes in the whole jar * Ensure products are correctly included and have at least one class * Light size check on the indexes * Fixed list of packages that should not appear in the jar * Run checks as part of the build job, to catch issues earlier
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d06121966
ℹ️ 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".
f708603 to
2b6fe35
Compare
Run `--list-integrations` on the assembled jar as part of check. This exercises dd-java-agent.index, inst/instrumenter.index, and integration class loading end-to-end. The today's 208 integration names are stored in `expected-integrations.txt` and compared against the runtime output. Diff is shown on mismatch. Run `updateAgentJarIntegrationsGolden` after intentional changes and commit the result.
2b6fe35 to
5e6dfee
Compare
Multi-version integrations issues could be misreported as valid. InstrumenterIndex.buildModule() logs ERROR and returns null when a module fails to load, while the process exits 0. For integrations with multiple versioned modules sharing one name (akka-http, vertx, servlet...), if any of a versionned integration fails it's invisible. This commit changes that. In a clean run stderr is empty; any output indicates a module load failure and fails the task immediately.
5e6dfee to
0fb73ae
Compare
AlexeyKuznetsov-DD
left a comment
There was a problem hiding this comment.
LGTM, but just curious if we want to track for new entries more aggressively?
What Does This Do
--list-integrations, comparing output against a committed golden file (expected-integrations.txt)Motivation
Improve the safety of publishing a bad agent jar. This is a followup to #11684
The runtime integration check goes further as it exercises
dd-java-agent.index,inst/instrumenter.index, and instrumentation class loading end-to-end.Additional Notes
Added a
updateAgentJarIntegrationsGoldento regenerate theexpected-integrations.txtafter intentional integration addition or removal.The choice of having a separate file, is twofold:
Github did not remove my earlier commit from #11684
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue/merge. You can also:/merge --commit-message "..."/merge -c/merge -f --reason "reason"; please use this judiciously, as some checks do not run at the PR-level (note: the PR still needs to be mergeable, this will only skip the pre-merge build)Jira ticket: APMLP-1376