Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix tracing JUnit5 tests in Maven projects with multiple forks #8086

Merged

Conversation

nikita-tkachenko-datadog
Copy link
Contributor

@nikita-tkachenko-datadog nikita-tkachenko-datadog commented Dec 13, 2024

What Does This Do

Fixes a regression introduced in release v1.44.0 (#8055).
When tracing JUnit 5 tests in Maven projects with multiple forks the following exception was seen:

[2024-12-12T17:46:36.909Z] WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests 
[2024-12-12T17:46:36.909Z] java.lang.NullPointerException: Cannot invoke "datadog.trace.api.civisibility.events.TestEventsHandler$Factory.create(String, datadog.trace.bootstrap.ContextStore, datadog.trace.bootstrap.ContextStore)" because "datadog.trace.api.civisibility.InstrumentationBridge.TEST_EVENTS_HANDLER_FACTORY" is null 
[2024-12-12T17:46:36.909Z] 	at datadog.trace.api.civisibility.InstrumentationBridge.createTestEventsHandler(InstrumentationBridge.java:28) 
[2024-12-12T17:46:36.909Z] 	at datadog.trace.instrumentation.junit5.TestEventsHandlerHolder.start(TestEventsHandlerHolder.java:40) 
[2024-12-12T17:46:36.909Z] 	at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:66) 
[2024-12-12T17:46:36.909Z] 	at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:168) 
[2024-12-12T17:46:36.909Z] 	at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:155) 
[2024-12-12T17:46:36.909Z] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:120) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.junitplatform.TestPlanScannerFilter.accept(TestPlanScannerFilter.java:56) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:102) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.scanClasspath(JUnitPlatformProvider.java:129) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.getSuites(JUnitPlatformProvider.java:100) 
[2024-12-12T17:46:36.909Z] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[2024-12-12T17:46:36.909Z] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 
[2024-12-12T17:46:36.909Z] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
[2024-12-12T17:46:36.909Z] 	at java.base/java.lang.reflect.Method.invoke(Method.java:569) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.util.ReflectionUtils.invokeGetter(ReflectionUtils.java:76) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.util.ReflectionUtils.invokeGetter(ReflectionUtils.java:70) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.getSuites(ProviderFactory.java:145) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.plugin.surefire.booterclient.ForkStarter.getSuitesIterator(ForkStarter.java:697) 
[2024-12-12T17:46:36.909Z] 	at org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkOnceMultiple(ForkStarter.java:322) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:297) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:246) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1183) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1011) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:857) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.c.a(SourceFile:13) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.m.a(SourceFile:29) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.n.a(SourceFile:23) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.h.a(SourceFile:26) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.l.a(SourceFile:27) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.a.c(SourceFile:107) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.a.a(SourceFile:60) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.e.a(SourceFile:27) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.k.a(SourceFile:17) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.d.a(SourceFile:35) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.b.a(SourceFile:26) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.f$1.a(SourceFile:34) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r$1.a(SourceFile:29) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r$1.a(SourceFile:26) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r$2.a(SourceFile:75) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r$2.b(SourceFile:68) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r.a(SourceFile:153) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r.a(SourceFile:68) 
[2024-12-12T17:46:36.910Z] 	at org.a.c.e.r.a(SourceFile:56) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.f.a(SourceFile:30) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.e.j.a(SourceFile:65) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.a.a.i.b.a(SourceFile:52) 
[2024-12-12T17:46:36.910Z] 	at jdk.proxy11/jdk.proxy11.$Proxy65.execute(Unknown Source) 
[2024-12-12T17:46:36.910Z] 	at com.gradle.maven.scan.extension.internal.e.a.executeMojo(SourceFile:133) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:903) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:280) 
[2024-12-12T17:46:36.910Z] 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:203) 
[2024-12-12T17:46:36.910Z] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[2024-12-12T17:46:36.910Z] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 
[2024-12-12T17:46:36.910Z] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
[2024-12-12T17:46:36.910Z] 	at java.base/java.lang.reflect.Method.invoke(Method.java:569) 
[2024-12-12T17:46:36.910Z] 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255) 
[2024-12-12T17:46:36.910Z] 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201) 
[2024-12-12T17:46:36.910Z] 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361) 
[2024-12-12T17:46:36.910Z] 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)

Maven Surefire plugin can be configured to fork multiple JVMs per test task in order to parallelise tests execution in multiple processes:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.22.1</version>
  <configuration>
    <forkCount>2</forkCount>
  </configuration>
</plugin>

When configure like this, Maven Surefire will invoke AbstractPlatformProvider.getSuites() in order to list available test cases and divide them between the forks.
If the tests are in JUnit 5, the platform provide will in turn invoke JupiterTestEngine.discover() to get the list of tests.

Release v1.44.0 introduced some changes in the way JUnit 5 is instrumented.
Among them was early initialisation of TestEventHandler (needed to have the handler available by the time class and method orderers were requested from JUnit).
Early initialisation happens at JupiterTestEngine.discover() - the assumption was that this method was only executed in child JVMs.
Since in the parent JVM (Maven build process) TestEventHandler factory is not configured, early initialisation caused NPEs.

The fix is to create a no-op TestEventHandler implementation in the parent process as a stub, so that the instrumentation does not fail.

Contributor Checklist

Jira ticket: SDTEST-1336

@nikita-tkachenko-datadog nikita-tkachenko-datadog added type: bug comp: ci visibility Continuous Integration Visibility labels Dec 13, 2024
@nikita-tkachenko-datadog nikita-tkachenko-datadog marked this pull request as ready for review December 13, 2024 13:57
@nikita-tkachenko-datadog nikita-tkachenko-datadog requested a review from a team as a code owner December 13, 2024 13:57
@pr-commenter
Copy link

pr-commenter bot commented Dec 13, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master nikita-tkachenko/fix-maven-multiple-forks
git_commit_date 1734085947 1734098269
git_commit_sha baedf8d 56d64ad
release_version 1.45.0-SNAPSHOT~baedf8dd57 1.45.0-SNAPSHOT~56d64adbf0
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1734100676 1734100676
ci_job_id 738380439 738380439
ci_pipeline_id 51074178 51074178
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 52 metrics, 11 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.093 s) : 0, 1093141
Total [baseline] (8.707 s) : 0, 8706796
Agent [candidate] (1.105 s) : 0, 1104933
Total [candidate] (8.683 s) : 0, 8683163
section iast
Agent [baseline] (1.222 s) : 0, 1221501
Total [baseline] (9.217 s) : 0, 9216591
Agent [candidate] (1.22 s) : 0, 1220245
Total [candidate] (9.214 s) : 0, 9214421
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.22 s) : 0, 1220421
Total [baseline] (9.173 s) : 0, 9172708
Agent [candidate] (1.237 s) : 0, 1236759
Total [candidate] (9.248 s) : 0, 9247854
section iast_TELEMETRY_OFF
Agent [baseline] (1.226 s) : 0, 1225819
Total [baseline] (9.262 s) : 0, 9262163
Agent [candidate] (1.216 s) : 0, 1215588
Total [candidate] (9.193 s) : 0, 9192630
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.093 s -
Agent iast 1.222 s 128.36 ms (11.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.22 s 127.28 ms (11.6%)
Agent iast_TELEMETRY_OFF 1.226 s 132.678 ms (12.1%)
Total tracing 8.707 s -
Total iast 9.217 s 509.795 ms (5.9%)
Total iast_HARDCODED_SECRET_DISABLED 9.173 s 465.912 ms (5.4%)
Total iast_TELEMETRY_OFF 9.262 s 555.367 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.105 s -
Agent iast 1.22 s 115.312 ms (10.4%)
Agent iast_HARDCODED_SECRET_DISABLED 1.237 s 131.825 ms (11.9%)
Agent iast_TELEMETRY_OFF 1.216 s 110.654 ms (10.0%)
Total tracing 8.683 s -
Total iast 9.214 s 531.259 ms (6.1%)
Total iast_HARDCODED_SECRET_DISABLED 9.248 s 564.692 ms (6.5%)
Total iast_TELEMETRY_OFF 9.193 s 509.467 ms (5.9%)
gantt
    title insecure-bank - break down per module: candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (696.032 ms) : 0, 696032
BytebuddyAgent [candidate] (705.466 ms) : 0, 705466
GlobalTracer [baseline] (316.748 ms) : 0, 316748
GlobalTracer [candidate] (319.03 ms) : 0, 319030
AppSec [baseline] (54.6 ms) : 0, 54600
AppSec [candidate] (55.202 ms) : 0, 55202
Remote Config [baseline] (677.28 µs) : 0, 677
Remote Config [candidate] (693.757 µs) : 0, 694
Telemetry [baseline] (11.37 ms) : 0, 11370
Telemetry [candidate] (10.62 ms) : 0, 10620
section iast
BytebuddyAgent [baseline] (814.173 ms) : 0, 814173
BytebuddyAgent [candidate] (813.284 ms) : 0, 813284
GlobalTracer [baseline] (305.684 ms) : 0, 305684
GlobalTracer [candidate] (306.127 ms) : 0, 306127
AppSec [baseline] (56.775 ms) : 0, 56775
AppSec [candidate] (57.858 ms) : 0, 57858
IAST [baseline] (22.896 ms) : 0, 22896
IAST [candidate] (21.101 ms) : 0, 21101
Remote Config [baseline] (627.548 µs) : 0, 628
Remote Config [candidate] (632.274 µs) : 0, 632
Telemetry [baseline] (7.618 ms) : 0, 7618
Telemetry [candidate] (7.494 ms) : 0, 7494
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (813.875 ms) : 0, 813875
BytebuddyAgent [candidate] (823.295 ms) : 0, 823295
GlobalTracer [baseline] (305.571 ms) : 0, 305571
GlobalTracer [candidate] (310.301 ms) : 0, 310301
AppSec [baseline] (57.168 ms) : 0, 57168
AppSec [candidate] (58.364 ms) : 0, 58364
IAST [baseline] (21.946 ms) : 0, 21946
IAST [candidate] (22.656 ms) : 0, 22656
Remote Config [baseline] (624.897 µs) : 0, 625
Remote Config [candidate] (642.654 µs) : 0, 643
Telemetry [baseline] (7.474 ms) : 0, 7474
Telemetry [candidate] (7.62 ms) : 0, 7620
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (816.579 ms) : 0, 816579
BytebuddyAgent [candidate] (809.945 ms) : 0, 809945
GlobalTracer [baseline] (307.422 ms) : 0, 307422
GlobalTracer [candidate] (305.362 ms) : 0, 305362
AppSec [baseline] (58.061 ms) : 0, 58061
AppSec [candidate] (57.134 ms) : 0, 57134
IAST [baseline] (21.815 ms) : 0, 21815
IAST [candidate] (21.382 ms) : 0, 21382
Remote Config [baseline] (637.322 µs) : 0, 637
Remote Config [candidate] (635.745 µs) : 0, 636
Telemetry [baseline] (7.473 ms) : 0, 7473
Telemetry [candidate] (7.309 ms) : 0, 7309
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.089 s) : 0, 1089312
Total [baseline] (10.418 s) : 0, 10418143
Agent [candidate] (1.09 s) : 0, 1089514
Total [candidate] (10.47 s) : 0, 10469598
section appsec
Agent [baseline] (1.227 s) : 0, 1227306
Total [baseline] (10.709 s) : 0, 10708629
Agent [candidate] (1.227 s) : 0, 1226906
Total [candidate] (10.725 s) : 0, 10725049
section iast
Agent [baseline] (1.231 s) : 0, 1231114
Total [baseline] (10.994 s) : 0, 10993550
Agent [candidate] (1.224 s) : 0, 1223617
Total [candidate] (10.989 s) : 0, 10989231
section profiling
Agent [baseline] (1.316 s) : 0, 1316329
Total [baseline] (10.778 s) : 0, 10777897
Agent [candidate] (1.322 s) : 0, 1322479
Total [candidate] (10.812 s) : 0, 10812460
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.089 s -
Agent appsec 1.227 s 137.995 ms (12.7%)
Agent iast 1.231 s 141.802 ms (13.0%)
Agent profiling 1.316 s 227.018 ms (20.8%)
Total tracing 10.418 s -
Total appsec 10.709 s 290.486 ms (2.8%)
Total iast 10.994 s 575.407 ms (5.5%)
Total profiling 10.778 s 359.754 ms (3.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.09 s -
Agent appsec 1.227 s 137.392 ms (12.6%)
Agent iast 1.224 s 134.103 ms (12.3%)
Agent profiling 1.322 s 232.965 ms (21.4%)
Total tracing 10.47 s -
Total appsec 10.725 s 255.451 ms (2.4%)
Total iast 10.989 s 519.632 ms (5.0%)
Total profiling 10.812 s 342.861 ms (3.3%)
gantt
    title petclinic - break down per module: candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (693.635 ms) : 0, 693635
BytebuddyAgent [candidate] (695.143 ms) : 0, 695143
GlobalTracer [baseline] (316.26 ms) : 0, 316260
GlobalTracer [candidate] (316.458 ms) : 0, 316458
AppSec [baseline] (54.499 ms) : 0, 54499
AppSec [candidate] (54.887 ms) : 0, 54887
Remote Config [baseline] (694.094 µs) : 0, 694
Remote Config [candidate] (706.451 µs) : 0, 706
Telemetry [baseline] (10.548 ms) : 0, 10548
Telemetry [candidate] (8.592 ms) : 0, 8592
section appsec
BytebuddyAgent [baseline] (713.463 ms) : 0, 713463
BytebuddyAgent [candidate] (712.957 ms) : 0, 712957
GlobalTracer [baseline] (314.271 ms) : 0, 314271
GlobalTracer [candidate] (314.47 ms) : 0, 314470
AppSec [baseline] (167.642 ms) : 0, 167642
AppSec [candidate] (167.331 ms) : 0, 167331
IAST [baseline] (19.719 ms) : 0, 19719
IAST [candidate] (19.918 ms) : 0, 19918
Remote Config [baseline] (644.224 µs) : 0, 644
Remote Config [candidate] (645.875 µs) : 0, 646
Telemetry [baseline] (7.722 ms) : 0, 7722
Telemetry [candidate] (7.837 ms) : 0, 7837
section iast
BytebuddyAgent [baseline] (820.588 ms) : 0, 820588
BytebuddyAgent [candidate] (815.652 ms) : 0, 815652
GlobalTracer [baseline] (308.931 ms) : 0, 308931
GlobalTracer [candidate] (306.785 ms) : 0, 306785
AppSec [baseline] (57.601 ms) : 0, 57601
AppSec [candidate] (57.272 ms) : 0, 57272
IAST [baseline] (22.016 ms) : 0, 22016
IAST [candidate] (22.036 ms) : 0, 22036
Remote Config [baseline] (633.273 µs) : 0, 633
Remote Config [candidate] (626.542 µs) : 0, 627
Telemetry [baseline] (7.527 ms) : 0, 7527
Telemetry [candidate] (7.5 ms) : 0, 7500
section profiling
BytebuddyAgent [baseline] (688.571 ms) : 0, 688571
BytebuddyAgent [candidate] (693.251 ms) : 0, 693251
GlobalTracer [baseline] (432.849 ms) : 0, 432849
GlobalTracer [candidate] (434.191 ms) : 0, 434191
AppSec [baseline] (53.472 ms) : 0, 53472
AppSec [candidate] (53.811 ms) : 0, 53811
Remote Config [baseline] (668.258 µs) : 0, 668
Remote Config [candidate] (703.491 µs) : 0, 703
Telemetry [baseline] (7.623 ms) : 0, 7623
Telemetry [candidate] (7.668 ms) : 0, 7668
ProfilingAgent [baseline] (93.846 ms) : 0, 93846
ProfilingAgent [candidate] (93.455 ms) : 0, 93455
Profiling [baseline] (93.869 ms) : 0, 93869
Profiling [candidate] (93.479 ms) : 0, 93479
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-12-13T14:08:03 2024-12-13T14:15:02
git_branch master nikita-tkachenko/fix-maven-multiple-forks
git_commit_date 1734085947 1734098269
git_commit_sha baedf8d 56d64ad
release_version 1.45.0-SNAPSHOT~baedf8dd57 1.45.0-SNAPSHOT~56d64adbf0
start_time 2024-12-13T14:07:50 2024-12-13T14:14:49
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1734099657 1734099657
ci_job_id 738380440 738380440
ci_pipeline_id 51074178 51074178
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 15 unstable metrics.

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57
    dateFormat X
    axisFormat %s
section baseline
no_agent (374.545 µs) : 354, 395
.   : milestone, 375,
iast (488.724 µs) : 467, 510
.   : milestone, 489,
iast_FULL (651.365 µs) : 630, 673
.   : milestone, 651,
iast_GLOBAL (519.641 µs) : 498, 541
.   : milestone, 520,
iast_HARDCODED_SECRET_DISABLED (493.397 µs) : 472, 515
.   : milestone, 493,
iast_INACTIVE (455.184 µs) : 434, 476
.   : milestone, 455,
iast_TELEMETRY_OFF (480.479 µs) : 459, 502
.   : milestone, 480,
tracing (454.371 µs) : 433, 475
.   : milestone, 454,
section candidate
no_agent (376.948 µs) : 357, 397
.   : milestone, 377,
iast (496.18 µs) : 475, 518
.   : milestone, 496,
iast_FULL (653.959 µs) : 632, 676
.   : milestone, 654,
iast_GLOBAL (529.558 µs) : 507, 552
.   : milestone, 530,
iast_HARDCODED_SECRET_DISABLED (488.618 µs) : 467, 510
.   : milestone, 489,
iast_INACTIVE (450.317 µs) : 429, 471
.   : milestone, 450,
iast_TELEMETRY_OFF (481.742 µs) : 460, 503
.   : milestone, 482,
tracing (455.848 µs) : 435, 477
.   : milestone, 456,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 374.545 µs [354.18 µs, 394.909 µs] -
iast 488.724 µs [467.494 µs, 509.955 µs] 114.18 µs (30.5%)
iast_FULL 651.365 µs [629.811 µs, 672.918 µs] 276.82 µs (73.9%)
iast_GLOBAL 519.641 µs [497.934 µs, 541.347 µs] 145.096 µs (38.7%)
iast_HARDCODED_SECRET_DISABLED 493.397 µs [471.528 µs, 515.266 µs] 118.852 µs (31.7%)
iast_INACTIVE 455.184 µs [434.012 µs, 476.356 µs] 80.64 µs (21.5%)
iast_TELEMETRY_OFF 480.479 µs [458.836 µs, 502.123 µs] 105.935 µs (28.3%)
tracing 454.371 µs [433.368 µs, 475.374 µs] 79.827 µs (21.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 376.948 µs [357.186 µs, 396.709 µs] -
iast 496.18 µs [474.64 µs, 517.721 µs] 119.232 µs (31.6%)
iast_FULL 653.959 µs [632.415 µs, 675.502 µs] 277.011 µs (73.5%)
iast_GLOBAL 529.558 µs [507.154 µs, 551.961 µs] 152.61 µs (40.5%)
iast_HARDCODED_SECRET_DISABLED 488.618 µs [467.189 µs, 510.047 µs] 111.67 µs (29.6%)
iast_INACTIVE 450.317 µs [429.439 µs, 471.196 µs] 73.369 µs (19.5%)
iast_TELEMETRY_OFF 481.742 µs [460.269 µs, 503.215 µs] 104.794 µs (27.8%)
tracing 455.848 µs [434.748 µs, 476.948 µs] 78.9 µs (20.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.35 ms) : 1331, 1368
.   : milestone, 1350,
appsec (1.753 ms) : 1730, 1776
.   : milestone, 1753,
appsec_no_iast (1.776 ms) : 1751, 1800
.   : milestone, 1776,
iast (1.493 ms) : 1471, 1515
.   : milestone, 1493,
profiling (1.535 ms) : 1510, 1559
.   : milestone, 1535,
tracing (1.494 ms) : 1469, 1519
.   : milestone, 1494,
section candidate
no_agent (1.355 ms) : 1336, 1374
.   : milestone, 1355,
appsec (1.759 ms) : 1735, 1783
.   : milestone, 1759,
appsec_no_iast (1.766 ms) : 1739, 1793
.   : milestone, 1766,
iast (1.511 ms) : 1488, 1533
.   : milestone, 1511,
profiling (1.561 ms) : 1536, 1586
.   : milestone, 1561,
tracing (1.505 ms) : 1480, 1529
.   : milestone, 1505,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.35 ms [1.331 ms, 1.368 ms] -
appsec 1.753 ms [1.73 ms, 1.776 ms] 403.757 µs (29.9%)
appsec_no_iast 1.776 ms [1.751 ms, 1.8 ms] 425.925 µs (31.6%)
iast 1.493 ms [1.471 ms, 1.515 ms] 143.461 µs (10.6%)
profiling 1.535 ms [1.51 ms, 1.559 ms] 184.98 µs (13.7%)
tracing 1.494 ms [1.469 ms, 1.519 ms] 144.624 µs (10.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.355 ms [1.336 ms, 1.374 ms] -
appsec 1.759 ms [1.735 ms, 1.783 ms] 403.982 µs (29.8%)
appsec_no_iast 1.766 ms [1.739 ms, 1.793 ms] 411.164 µs (30.3%)
iast 1.511 ms [1.488 ms, 1.533 ms] 155.569 µs (11.5%)
profiling 1.561 ms [1.536 ms, 1.586 ms] 205.936 µs (15.2%)
tracing 1.505 ms [1.48 ms, 1.529 ms] 149.423 µs (11.0%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master nikita-tkachenko/fix-maven-multiple-forks
git_commit_date 1734085947 1734098269
git_commit_sha baedf8d 56d64ad
release_version 1.45.0-SNAPSHOT~baedf8dd57 1.45.0-SNAPSHOT~56d64adbf0
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1734100196 1734100196
ci_job_id 738380441 738380441
ci_pipeline_id 51074178 51074178
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.477 ms) : 1466, 1489
.   : milestone, 1477,
appsec (2.365 ms) : 2323, 2407
.   : milestone, 2365,
iast (2.096 ms) : 2043, 2149
.   : milestone, 2096,
iast_GLOBAL (2.148 ms) : 2094, 2202
.   : milestone, 2148,
profiling (1.965 ms) : 1922, 2007
.   : milestone, 1965,
tracing (1.943 ms) : 1903, 1984
.   : milestone, 1943,
section candidate
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (2.358 ms) : 2316, 2400
.   : milestone, 2358,
iast (2.086 ms) : 2033, 2138
.   : milestone, 2086,
iast_GLOBAL (2.145 ms) : 2092, 2198
.   : milestone, 2145,
profiling (1.963 ms) : 1921, 2006
.   : milestone, 1963,
tracing (1.935 ms) : 1894, 1975
.   : milestone, 1935,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.466 ms, 1.489 ms] -
appsec 2.365 ms [2.323 ms, 2.407 ms] 887.422 µs (60.1%)
iast 2.096 ms [2.043 ms, 2.149 ms] 618.718 µs (41.9%)
iast_GLOBAL 2.148 ms [2.094 ms, 2.202 ms] 670.707 µs (45.4%)
profiling 1.965 ms [1.922 ms, 2.007 ms] 487.612 µs (33.0%)
tracing 1.943 ms [1.903 ms, 1.984 ms] 466.049 µs (31.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 2.358 ms [2.316 ms, 2.4 ms] 885.968 µs (60.2%)
iast 2.086 ms [2.033 ms, 2.138 ms] 613.784 µs (41.7%)
iast_GLOBAL 2.145 ms [2.092 ms, 2.198 ms] 673.135 µs (45.7%)
profiling 1.963 ms [1.921 ms, 2.006 ms] 491.575 µs (33.4%)
tracing 1.935 ms [1.894 ms, 1.975 ms] 462.827 µs (31.4%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.45.0-SNAPSHOT~56d64adbf0, baseline=1.45.0-SNAPSHOT~baedf8dd57
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.488 s) : 15488000, 15488000
.   : milestone, 15488000,
appsec (15.034 s) : 15034000, 15034000
.   : milestone, 15034000,
iast (18.684 s) : 18684000, 18684000
.   : milestone, 18684000,
iast_GLOBAL (18.066 s) : 18066000, 18066000
.   : milestone, 18066000,
profiling (15.316 s) : 15316000, 15316000
.   : milestone, 15316000,
tracing (14.861 s) : 14861000, 14861000
.   : milestone, 14861000,
section candidate
no_agent (15.59 s) : 15590000, 15590000
.   : milestone, 15590000,
appsec (14.911 s) : 14911000, 14911000
.   : milestone, 14911000,
iast (19.173 s) : 19173000, 19173000
.   : milestone, 19173000,
iast_GLOBAL (18.321 s) : 18321000, 18321000
.   : milestone, 18321000,
profiling (15.038 s) : 15038000, 15038000
.   : milestone, 15038000,
tracing (14.837 s) : 14837000, 14837000
.   : milestone, 14837000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.488 s [15.488 s, 15.488 s] -
appsec 15.034 s [15.034 s, 15.034 s] -454.0 ms (-2.9%)
iast 18.684 s [18.684 s, 18.684 s] 3.196 s (20.6%)
iast_GLOBAL 18.066 s [18.066 s, 18.066 s] 2.578 s (16.6%)
profiling 15.316 s [15.316 s, 15.316 s] -172.0 ms (-1.1%)
tracing 14.861 s [14.861 s, 14.861 s] -627.0 ms (-4.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.59 s [15.59 s, 15.59 s] -
appsec 14.911 s [14.911 s, 14.911 s] -679.0 ms (-4.4%)
iast 19.173 s [19.173 s, 19.173 s] 3.583 s (23.0%)
iast_GLOBAL 18.321 s [18.321 s, 18.321 s] 2.731 s (17.5%)
profiling 15.038 s [15.038 s, 15.038 s] -552.0 ms (-3.5%)
tracing 14.837 s [14.837 s, 14.837 s] -753.0 ms (-4.8%)

@nikita-tkachenko-datadog nikita-tkachenko-datadog merged commit bdc9eae into master Dec 13, 2024
149 checks passed
@nikita-tkachenko-datadog nikita-tkachenko-datadog deleted the nikita-tkachenko/fix-maven-multiple-forks branch December 13, 2024 15:00
@github-actions github-actions bot added this to the 1.45.0 milestone Dec 13, 2024
@nikita-tkachenko-datadog nikita-tkachenko-datadog added the tag: no release notes Changes to exclude from release notes label Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: ci visibility Continuous Integration Visibility tag: no release notes Changes to exclude from release notes type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants