Add AGP usage visibility for Gradle projects#11869
Conversation
Test Environment - sbt-scalatestJob Status: 🟢 success
Baseline: median of |
This comment has been minimized.
This comment has been minimized.
Test Environment - pass4sJob Status: 🟢 success
Baseline: median of |
Test Environment - nebula-release-pluginJob Status: 🟢 success
Baseline: median of |
Test Environment - reactive-streams-jvmJob Status: 🟢 success
Baseline: median of |
Test Environment - netflix-zuulJob Status: 🟢 success
Baseline: median of |
bec0bb1 to
2d4c049
Compare
Test Environment - sonar-kotlinJob Status: 🟢 success
Baseline: median of |
Test Environment - jolokiaJob Status: 🟢 success
Baseline: median of |
🟢 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. |
Test Environment - okhttpJob Status: 🟢 success
Baseline: median of |
Test Environment - spring_bootJob Status: 🟢 success
Baseline: median of |
Test Environment - sonar-javaJob Status: 🟢 success
Baseline: median of |
Test Environment - heliboardJob Status: 🟢 success
Baseline: median of |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6b9bc56129
ℹ️ 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".
30cee80 to
729666d
Compare
Detect Android Gradle Plugin projects at the build-system level and surface an is_android signal independent of the test runner: - test.is_android span tag on the build-system module, rolled up to the session via the tag propagator - IsAndroid dimension on the EVENT_FINISHED telemetry metric - detection via com.android.base and com.android.kotlin.multiplatform.library (the KMP library plugin, AGP 8.8+, does not apply com.android.base) Exercised by the Robolectric Gradle smoke test through a com.android.base stand-in plugin.
6b9bc56 to
1692771
Compare
There was a problem hiding this comment.
More details
The tag-read-after-span-finish pattern in AbstractTestModule.end() is safe: DDSpan.getTag() delegates to DDSpanContext.unsafeTags which is not cleared during finish, so span.getTag(TEST_IS_ANDROID) at line 122 reliably returns the Boolean.TRUE set during onTestModuleStart(). The Boolean::logicalOr merge spec, IsAndroid enum structure, and EVENT_FINISHED metric index expansion (1920→3840 entries, zero collisions) were all validated by synthetic execution against the production code logic.
📊 Validated against 8 scenarios · Open Bits AI session
🤖 Datadog Autotest · Commit 1692771 · What is Autotest? · Any feedback? Reach out in #autotest
What Does This Do
com.android.baseplugin in their used plugins.test.is_androidtag is added to module spans and propagated to session spans with anORoperation.is_androidboolean field on theevent_finishedtelemetry metric.Motivation
Together with #11852, the changes aim to provide better visibility for Android users using Test Optimization. In this case, it provides visibility on the overall Android user base, even if they don't use Robolectric emulation for unit tests.
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: SDTEST-3887