diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateExecutionInstrumentation.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateExecutionInstrumentation.java
new file mode 100644
index 00000000000..8b88bf2476e
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateExecutionInstrumentation.java
@@ -0,0 +1,87 @@
+package datadog.trace.instrumentation.karate2;
+
+import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
+import static net.bytebuddy.matcher.ElementMatchers.isBridge;
+import static net.bytebuddy.matcher.ElementMatchers.not;
+import static net.bytebuddy.matcher.ElementMatchers.returns;
+import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
+import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
+import static net.bytebuddy.matcher.ElementMatchers.takesNoArguments;
+
+import com.google.auto.service.AutoService;
+import datadog.trace.agent.tooling.Instrumenter;
+import datadog.trace.agent.tooling.InstrumenterModule;
+import datadog.trace.api.Config;
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * Drives test-retry execution policies (ATR / EFD / attempt-to-fix) and failure suppression for
+ * Karate v2.
+ *
+ *
+ * - {@code ScenarioRuntime#call()} is advised to re-run the scenario while the execution policy
+ * is applicable, overriding the returned {@code ScenarioResult} with the final attempt.
+ *
- {@code ScenarioResult#addStepResult(StepResult)} is advised to replace a failing step with
+ * a skipped one when the policy requests failure suppression.
+ *
+ *
+ * Compiled for Java 8 (see {@link KarateInstrumentation}); the advice lives in the {@code java21}
+ * source set.
+ */
+@AutoService(InstrumenterModule.class)
+public class KarateExecutionInstrumentation extends InstrumenterModule.CiVisibility
+ implements Instrumenter.ForKnownTypes, Instrumenter.HasMethodAdvice {
+
+ public KarateExecutionInstrumentation() {
+ super("ci-visibility", "karate", "test-retry");
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return super.isEnabled() && Config.get().isCiVisibilityExecutionPoliciesEnabled();
+ }
+
+ @Override
+ public String[] knownMatchingTypes() {
+ return new String[] {"io.karatelabs.core.ScenarioRuntime", "io.karatelabs.core.ScenarioResult"};
+ }
+
+ @Override
+ public String[] helperClassNames() {
+ return new String[] {
+ packageName + ".KarateUtils",
+ packageName + ".TestEventsHandlerHolder",
+ packageName + ".ExecutionContext",
+ packageName + ".KarateTracingListener",
+ packageName + ".KarateScenarioAdvice",
+ packageName + ".KarateScenarioAdvice$RetryAdvice",
+ packageName + ".KarateScenarioAdvice$SuppressErrorAdvice"
+ };
+ }
+
+ @Override
+ public Map contextStore() {
+ return Collections.singletonMap(
+ "io.karatelabs.gherkin.Scenario", packageName + ".ExecutionContext");
+ }
+
+ @Override
+ public void methodAdvice(MethodTransformer transformer) {
+ // ScenarioRuntime#call() is the run()-equivalent; match the concrete ScenarioResult-returning
+ // method, not the synthetic Callable#call() bridge.
+ transformer.applyAdvice(
+ named("call")
+ .and(takesNoArguments())
+ .and(returns(named("io.karatelabs.core.ScenarioResult")))
+ .and(not(isBridge())),
+ packageName + ".KarateScenarioAdvice$RetryAdvice");
+
+ // ScenarioResult#addStepResult(StepResult)
+ transformer.applyAdvice(
+ named("addStepResult")
+ .and(takesArguments(1))
+ .and(takesArgument(0, named("io.karatelabs.core.StepResult"))),
+ packageName + ".KarateScenarioAdvice$SuppressErrorAdvice");
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateInstrumentation.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateInstrumentation.java
index 5b3b7ad8d54..522c8a464fc 100644
--- a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateInstrumentation.java
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java/datadog/trace/instrumentation/karate2/KarateInstrumentation.java
@@ -5,6 +5,8 @@
import com.google.auto.service.AutoService;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.agent.tooling.InstrumenterModule;
+import java.util.Collections;
+import java.util.Map;
/**
* Registers a {@code io.karatelabs.core.RunListener} on every {@code
@@ -32,11 +34,18 @@ public String[] helperClassNames() {
return new String[] {
packageName + ".KarateUtils",
packageName + ".TestEventsHandlerHolder",
+ packageName + ".ExecutionContext",
packageName + ".KarateTracingListener",
packageName + ".KarateBuilderAdvice"
};
}
+ @Override
+ public Map contextStore() {
+ return Collections.singletonMap(
+ "io.karatelabs.gherkin.Scenario", packageName + ".ExecutionContext");
+ }
+
@Override
public void methodAdvice(MethodTransformer transformer) {
transformer.applyAdvice(isConstructor(), packageName + ".KarateBuilderAdvice");
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/ExecutionContext.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/ExecutionContext.java
new file mode 100644
index 00000000000..91e24c197fe
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/ExecutionContext.java
@@ -0,0 +1,56 @@
+package datadog.trace.instrumentation.karate2;
+
+import datadog.trace.api.civisibility.config.TestIdentifier;
+import datadog.trace.api.civisibility.config.TestSourceData;
+import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
+import io.karatelabs.gherkin.Scenario;
+import java.util.Collection;
+
+public class ExecutionContext {
+
+ private final TestExecutionPolicy executionPolicy;
+ private boolean suppressFailures;
+ private Throwable suppressedError;
+
+ public ExecutionContext(TestExecutionPolicy executionPolicy) {
+ this.executionPolicy = executionPolicy;
+ }
+
+ public void setSuppressFailures(boolean suppressFailures) {
+ this.suppressFailures = suppressFailures;
+ }
+
+ public boolean shouldSuppressFailures() {
+ return suppressFailures;
+ }
+
+ public TestExecutionPolicy getExecutionPolicy() {
+ return executionPolicy;
+ }
+
+ /**
+ * Karate v2 {@code StepResult} is immutable (no {@code setFailedReason}/{@code setErrorIgnored}),
+ * so a failure that was suppressed for retry purposes cannot be carried on the replacement step.
+ * We stash it here instead, so the tracing listener can still report the failure to CI
+ * Visibility.
+ */
+ public void setSuppressedError(Throwable suppressedError) {
+ if (this.suppressedError == null) {
+ this.suppressedError = suppressedError;
+ }
+ }
+
+ public Throwable getAndClearSuppressedError() {
+ Throwable suppressedError = this.suppressedError;
+ this.suppressedError = null;
+ return suppressedError;
+ }
+
+ public static ExecutionContext create(Scenario scenario) {
+ TestIdentifier testIdentifier = KarateUtils.toTestIdentifier(scenario);
+ Collection testTags = KarateUtils.getCategories(scenario.getTagsEffective());
+ return new ExecutionContext(
+ TestEventsHandlerHolder.TEST_EVENTS_HANDLER.executionPolicy(
+ testIdentifier, TestSourceData.UNKNOWN, testTags));
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateBuilderAdvice.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateBuilderAdvice.java
index 3126c907eea..54bda255b9c 100644
--- a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateBuilderAdvice.java
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateBuilderAdvice.java
@@ -1,8 +1,11 @@
package datadog.trace.instrumentation.karate2;
+import datadog.trace.bootstrap.ContextStore;
+import datadog.trace.bootstrap.InstrumentationContext;
import io.karatelabs.core.RunEvent;
import io.karatelabs.core.RunListener;
import io.karatelabs.core.Runner;
+import io.karatelabs.gherkin.Scenario;
import net.bytebuddy.asm.Advice;
/** Advice for the {@code io.karatelabs.core.Runner.Builder} constructor. */
@@ -10,7 +13,9 @@ public class KarateBuilderAdvice {
@Advice.OnMethodExit
public static void onRunnerBuilderConstructorExit(@Advice.This Runner.Builder builder) {
- builder.listener(new KarateTracingListener());
+ ContextStore scenarioContext =
+ InstrumentationContext.get(Scenario.class, ExecutionContext.class);
+ builder.listener(new KarateTracingListener(scenarioContext));
}
// Karate 2.0.0 and above
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateScenarioAdvice.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateScenarioAdvice.java
new file mode 100644
index 00000000000..6b647b73c87
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateScenarioAdvice.java
@@ -0,0 +1,100 @@
+package datadog.trace.instrumentation.karate2;
+
+import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
+import datadog.trace.bootstrap.CallDepthThreadLocalMap;
+import datadog.trace.bootstrap.InstrumentationContext;
+import io.karatelabs.core.RunEvent;
+import io.karatelabs.core.RunListener;
+import io.karatelabs.core.ScenarioResult;
+import io.karatelabs.core.ScenarioRuntime;
+import io.karatelabs.core.StepResult;
+import io.karatelabs.gherkin.Scenario;
+import net.bytebuddy.asm.Advice;
+
+/** Advice classes for {@code io.karatelabs.core.ScenarioRuntime}/{@code ScenarioResult}. */
+public class KarateScenarioAdvice {
+
+ public static class RetryAdvice {
+ @Advice.OnMethodEnter
+ public static void beforeExecute(@Advice.This ScenarioRuntime scenarioRuntime) {
+ ExecutionContext executionContext =
+ InstrumentationContext.get(Scenario.class, ExecutionContext.class)
+ .computeIfAbsent(scenarioRuntime.getScenario(), ExecutionContext::create);
+
+ // Indicate beforehand whether failures should be suppressed. This aligns the ordering with
+ // the rest of the frameworks.
+ TestExecutionPolicy executionPolicy = executionContext.getExecutionPolicy();
+ executionContext.setSuppressFailures(executionPolicy.suppressFailures());
+ }
+
+ @Advice.OnMethodExit
+ public static void afterExecute(
+ @Advice.This ScenarioRuntime scenarioRuntime,
+ @Advice.Return(readOnly = false) ScenarioResult result) {
+ if (CallDepthThreadLocalMap.incrementCallDepth(ScenarioRuntime.class) > 0) {
+ // nested call (a retry invoked below, or a called scenario)
+ return;
+ }
+
+ try {
+ Scenario scenario = scenarioRuntime.getScenario();
+ ExecutionContext context =
+ InstrumentationContext.get(Scenario.class, ExecutionContext.class).get(scenario);
+ if (context == null) {
+ return;
+ }
+
+ ScenarioResult finalResult = result;
+ TestExecutionPolicy executionPolicy = context.getExecutionPolicy();
+ while (executionPolicy.applicable()) {
+ ScenarioRuntime retry =
+ new ScenarioRuntime(scenarioRuntime.getFeatureRuntime(), scenario);
+ finalResult = retry.call();
+ }
+
+ // override the return value so the final attempt is the one recorded.
+ result = finalResult;
+ } finally {
+ CallDepthThreadLocalMap.reset(ScenarioRuntime.class);
+ }
+ }
+
+ // Karate 2.0.0 and above
+ public static void muzzleCheck(RunListener runListener) {
+ runListener.onEvent((RunEvent) null);
+ }
+ }
+
+ public static class SuppressErrorAdvice {
+ @Advice.OnMethodEnter
+ public static void onAddingStepResult(
+ @Advice.Argument(value = 0, readOnly = false) StepResult stepResult,
+ @Advice.FieldValue("scenario") Scenario scenario) {
+
+ if (stepResult.isFailed()) {
+ ExecutionContext executionContext =
+ InstrumentationContext.get(Scenario.class, ExecutionContext.class).get(scenario);
+ if (executionContext == null) {
+ return;
+ }
+
+ // Suppress every failing step of a to-be-retried attempt (not just the first): with
+ // continueOnStepFailure a single attempt can add multiple failing steps, and any leak
+ // would mark the retry attempt's result failed.
+ if (executionContext.shouldSuppressFailures()) {
+ // v2 StepResult is immutable: preserve the error out-of-band, then replace the failing
+ // step with a skipped one so the scenario no longer counts as failed.
+ executionContext.setSuppressedError(stepResult.getError());
+ stepResult = StepResult.skipped(stepResult.getStep(), stepResult.getStartTime());
+ }
+ }
+ }
+
+ // Karate 2.0.0 and above
+ public static void muzzleCheck(RunListener runListener) {
+ runListener.onEvent((RunEvent) null);
+ }
+ }
+
+ private KarateScenarioAdvice() {}
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateTracingListener.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateTracingListener.java
index 2fa59009dd8..ce37bdc0ffa 100644
--- a/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateTracingListener.java
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/main/java21/datadog/trace/instrumentation/karate2/KarateTracingListener.java
@@ -6,8 +6,10 @@
import datadog.trace.api.civisibility.config.TestSourceData;
import datadog.trace.api.civisibility.events.TestDescriptor;
import datadog.trace.api.civisibility.events.TestSuiteDescriptor;
+import datadog.trace.api.civisibility.execution.TestExecutionTracker;
import datadog.trace.api.civisibility.telemetry.tag.SkipReason;
import datadog.trace.api.civisibility.telemetry.tag.TestFrameworkInstrumentation;
+import datadog.trace.bootstrap.ContextStore;
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
import datadog.trace.bootstrap.instrumentation.api.Tags;
@@ -34,6 +36,12 @@ public class KarateTracingListener implements RunListener {
public static final String FRAMEWORK_VERSION = KarateUtils.getKarateVersion();
public static final String KARATE_STEP_SPAN_NAME = "karate.step";
+ private final ContextStore scenarioContext;
+
+ public KarateTracingListener(ContextStore scenarioContext) {
+ this.scenarioContext = scenarioContext;
+ }
+
@Override
public boolean onEvent(RunEvent event) {
RunEventType type = event.getType();
@@ -101,6 +109,9 @@ private boolean beforeScenario(ScenarioRunEvent event) {
String parameters = KarateUtils.getParameters(scenario);
Collection categories = KarateUtils.getCategories(scenario.getTagsEffective());
+ ExecutionContext context = scenarioContext.get(scenario);
+ TestExecutionTracker executionTracker = context != null ? context.getExecutionPolicy() : null;
+
if (Config.get().isCiVisibilityTestSkippingEnabled()
|| Config.get().isCiVisibilityTestManagementEnabled()) {
TestIdentifier skippableTest = KarateUtils.toTestIdentifier(scenario);
@@ -119,7 +130,7 @@ private boolean beforeScenario(ScenarioRunEvent event) {
categories,
TestSourceData.UNKNOWN,
skipReason.getDescription(),
- null);
+ executionTracker);
return false;
}
}
@@ -134,7 +145,7 @@ private boolean beforeScenario(ScenarioRunEvent event) {
categories,
TestSourceData.UNKNOWN,
null,
- null);
+ executionTracker);
return true;
}
@@ -143,17 +154,23 @@ private void afterScenario(ScenarioRunEvent event) {
if (skipTracking(sr)) {
return;
}
+ Scenario scenario = sr.getScenario();
ScenarioResult result = event.result();
TestDescriptor testDescriptor = KarateUtils.toTestDescriptor(sr);
- Throwable failedReason = getFailedReason(result);
+ ExecutionContext context = scenarioContext.get(scenario);
+ Throwable suppressedError = context != null ? context.getAndClearSuppressedError() : null;
+ Throwable failedReason = getFailedReason(result, suppressedError);
+
if ((result != null && result.isFailed()) || failedReason != null) {
TestEventsHandlerHolder.TEST_EVENTS_HANDLER.onTestFailure(testDescriptor, failedReason);
} else if (result == null || result.getStepResults().isEmpty()) {
TestEventsHandlerHolder.TEST_EVENTS_HANDLER.onTestSkip(testDescriptor, null);
}
- TestEventsHandlerHolder.TEST_EVENTS_HANDLER.onTestFinish(testDescriptor, null, null);
+ TestExecutionTracker executionTracker = context != null ? context.getExecutionPolicy() : null;
+ TestEventsHandlerHolder.TEST_EVENTS_HANDLER.onTestFinish(
+ testDescriptor, null, executionTracker);
}
private void beforeStep(StepRunEvent event) {
@@ -187,20 +204,21 @@ private void afterStep(StepRunEvent event) {
span.finish();
}
- private static Throwable getFailedReason(ScenarioResult result) {
- if (result == null) {
- return null;
- }
- Throwable error = result.getError();
- if (error != null) {
- return error;
- }
- for (StepResult stepResult : result.getStepResults()) {
- if (stepResult.getError() != null) {
- return stepResult.getError();
+ private static Throwable getFailedReason(ScenarioResult result, Throwable suppressedError) {
+ if (result != null) {
+ Throwable error = result.getError();
+ if (error != null) {
+ return error;
+ }
+ for (StepResult stepResult : result.getStepResults()) {
+ if (stepResult.getError() != null) {
+ return stepResult.getError();
+ }
}
}
- return null;
+ // a failure that was suppressed by the retry logic (the failing step was replaced with a
+ // skipped one) is carried out-of-band on the ExecutionContext
+ return suppressedError;
}
private static Throwable suiteThrowable(FeatureResult result) {
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/groovy/KarateV2Test.groovy b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/groovy/KarateV2Test.groovy
index 0d7b3d7e53f..84d52bbf87f 100644
--- a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/groovy/KarateV2Test.groovy
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/groovy/KarateV2Test.groovy
@@ -1,11 +1,10 @@
import datadog.trace.api.DisableTestTrace
+import datadog.trace.api.civisibility.config.TestFQN
import datadog.trace.api.civisibility.config.TestIdentifier
import datadog.trace.civisibility.CiVisibilityInstrumentationTest
import datadog.trace.instrumentation.karate2.KarateUtils
import datadog.trace.instrumentation.karate2.TestEventsHandlerHolder
-import org.example.TestFailedKarate
-import org.example.TestParameterizedKarate
-import org.example.TestSucceedKarate
+import org.example.*
import org.junit.jupiter.engine.JupiterTestEngine
import org.junit.platform.engine.DiscoverySelector
import org.junit.platform.engine.TestExecutionResult
@@ -28,10 +27,13 @@ class KarateV2Test extends CiVisibilityInstrumentationTest {
assertSpansData(testcaseName)
where:
- testcaseName | success | tests
- "test-succeed" | true | [TestSucceedKarate]
- "test-parameterized" | true | [TestParameterizedKarate]
- "test-failed" | false | [TestFailedKarate]
+ testcaseName | success | tests
+ "test-succeed" | true | [TestSucceedKarate]
+ "test-succeed-parallel" | true | [TestSucceedParallelKarate]
+ "test-with-setup" | true | [TestWithSetupKarate]
+ "test-parameterized" | true | [TestParameterizedKarate]
+ "test-failed" | false | [TestFailedKarate]
+ "test-skipped-feature" | true | [TestSkippedFeatureKarate]
}
def "test ITR #testcaseName"() {
@@ -47,6 +49,124 @@ class KarateV2Test extends CiVisibilityInstrumentationTest {
"test-itr-skipping-parameterized" | [TestParameterizedKarate] | [
new TestIdentifier("[org/example/test_parameterized] test parameterized", "first scenario as an outline", '{"param":"\'a\'","value":"aa"}')
]
+ "test-itr-unskippable" | [TestUnskippableKarate] | [
+ new TestIdentifier("[org/example/test_unskippable] test unskippable", "first scenario", null)
+ ]
+ }
+
+ def "test flaky retries #testcaseName"() {
+ givenFlakyRetryEnabled(true)
+ givenFlakyTests(retriedTests)
+
+ runTests(tests, success)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | success | tests | retriedTests
+ "test-failed" | false | [TestFailedKarate] | []
+ "test-retry-failed" | false | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")]
+ "test-failed-then-succeed" | true | [TestFailedThenSucceedKarate] | [new TestFQN("[org/example/test_failed_then_succeed] test failed", "flaky scenario")]
+ "test-retry-parameterized" | false | [TestFailedParameterizedKarate] | [
+ new TestFQN("[org/example/test_failed_parameterized] test parameterized", "first scenario as an outline")
+ ]
+ }
+
+ def "test early flakiness detection #testcaseName"() {
+ givenEarlyFlakinessDetectionEnabled(true)
+ givenKnownTests(knownTestsList)
+
+ runTests(tests)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | tests | knownTestsList
+ "test-efd-known-test" | [TestSucceedOneCaseKarate] | [new TestFQN("[org/example/test_succeed_one_case] test succeed", "first scenario")]
+ "test-efd-known-parameterized-test" | [TestParameterizedKarate] | [
+ new TestFQN("[org/example/test_parameterized] test parameterized", "first scenario as an outline")
+ ]
+ "test-efd-new-test" | [TestSucceedOneCaseKarate] | []
+ "test-efd-new-parameterized-test" | [TestParameterizedKarate] | []
+ "test-efd-new-slow-test" | [TestSucceedKarateSlow] | [] // is executed only twice
+ "test-efd-faulty-session-threshold" | [TestParameterizedMoreCasesKarate] | []
+ "test-efd-skip-new-test" | [TestSucceedKarateSkipEfd] | []
+ }
+
+ def "test quarantined #testcaseName"() {
+ givenQuarantinedTests(quarantined)
+
+ runTests(tests, true)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | tests | quarantined
+ "test-quarantined-failed" | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")]
+ }
+
+ def "test quarantined auto-retries #testcaseName"() {
+ givenQuarantinedTests(quarantined)
+
+ givenFlakyRetryEnabled(true)
+ givenFlakyTests(retried)
+
+ // every test retry fails, but the build status is successful
+ runTests(tests, true)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | tests | quarantined | retried
+ "test-quarantined-failed-atr" | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")]
+ }
+
+ def "test quarantined early flakiness detection #testcaseName"() {
+ givenQuarantinedTests(quarantined)
+
+ givenEarlyFlakinessDetectionEnabled(true)
+ givenKnownTests(known)
+
+ // every test retry fails, but the build status is successful
+ runTests(tests, true)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | tests | quarantined | known
+ "test-quarantined-failed-known" | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")]
+ "test-quarantined-failed-efd" | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | []
+ }
+
+ def "test disabled #testcaseName"() {
+ givenDisabledTests(disabled)
+
+ runTests(tests, true)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | tests | disabled
+ "test-disabled-failed" | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")]
+ }
+
+ def "test attempt to fix #testcaseName"() {
+ givenQuarantinedTests(quarantined)
+ givenDisabledTests(disabled)
+ givenAttemptToFixTests(attemptToFix)
+
+ runTests(tests, success)
+
+ assertSpansData(testcaseName)
+
+ where:
+ testcaseName | success | tests | attemptToFix | quarantined | disabled
+ "test-attempt-to-fix-failed" | false | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | [] | []
+ "test-attempt-to-fix-succeeded" | true | [TestSucceedKarate] | [new TestFQN("[org/example/test_succeed] test succeed", "first scenario")] | [] | []
+ "test-attempt-to-fix-quarantined-failed" | false | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | []
+ "test-attempt-to-fix-quarantined-succeeded" | true | [TestSucceedKarate] | [new TestFQN("[org/example/test_succeed] test succeed", "first scenario")] | [new TestFQN("[org/example/test_succeed] test succeed", "first scenario")] | []
+ "test-attempt-to-fix-disabled-failed" | false | [TestFailedKarate] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")] | [] | [new TestFQN("[org/example/test_failed] test failed", "second scenario")]
+ "test-attempt-to-fix-disabled-succeeded" | true | [TestSucceedKarate] | [new TestFQN("[org/example/test_succeed] test succeed", "first scenario")] | [] | [new TestFQN("[org/example/test_succeed] test succeed", "first scenario")]
}
private void runTests(List> tests, boolean expectSuccess = true) {
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/Flaky.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/Flaky.java
new file mode 100644
index 00000000000..59b938aaf57
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/Flaky.java
@@ -0,0 +1,12 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class Flaky {
+
+ private static int counter = 0;
+
+ public static void flake() {
+ assertTrue(++counter >= 3);
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/Slow.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/Slow.java
new file mode 100644
index 00000000000..23a8bcd6d7e
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/Slow.java
@@ -0,0 +1,12 @@
+package org.example;
+
+public class Slow {
+
+ public static void stall() {
+ try {
+ Thread.sleep(1100);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestFailedParameterizedKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestFailedParameterizedKarate.java
new file mode 100644
index 00000000000..026f47875ed
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestFailedParameterizedKarate.java
@@ -0,0 +1,17 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestFailedParameterizedKarate {
+
+ @Test
+ public void test() {
+ Results results =
+ Runner.path("classpath:org/example/test_failed_parameterized.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestFailedThenSucceedKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestFailedThenSucceedKarate.java
new file mode 100644
index 00000000000..9ce500bd482
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestFailedThenSucceedKarate.java
@@ -0,0 +1,17 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestFailedThenSucceedKarate {
+
+ @Test
+ public void test() {
+ Results results =
+ Runner.path("classpath:org/example/test_failed_then_succeed.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestParameterizedMoreCasesKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestParameterizedMoreCasesKarate.java
new file mode 100644
index 00000000000..7a0a9af41a4
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestParameterizedMoreCasesKarate.java
@@ -0,0 +1,17 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestParameterizedMoreCasesKarate {
+
+ @Test
+ public void test() {
+ Results results =
+ Runner.path("classpath:org/example/test_parameterized_more_cases.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSkippedFeatureKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSkippedFeatureKarate.java
new file mode 100644
index 00000000000..74d246bd98f
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSkippedFeatureKarate.java
@@ -0,0 +1,19 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestSkippedFeatureKarate {
+
+ @Test
+ void testParallel() {
+ Results results =
+ Runner.path("classpath:org/example/test_succeed.feature")
+ .systemProperty("karate.options", "--tags ~@foo")
+ .parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedKarateSkipEfd.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedKarateSkipEfd.java
new file mode 100644
index 00000000000..c13e94725c9
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedKarateSkipEfd.java
@@ -0,0 +1,17 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestSucceedKarateSkipEfd {
+
+ @Test
+ public void test() {
+ Results results =
+ Runner.path("classpath:org/example/test_succeed_skip_efd.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedKarateSlow.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedKarateSlow.java
new file mode 100644
index 00000000000..b5b41c94657
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedKarateSlow.java
@@ -0,0 +1,16 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestSucceedKarateSlow {
+
+ @Test
+ public void test() {
+ Results results = Runner.path("classpath:org/example/test_succeed_slow.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedOneCaseKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedOneCaseKarate.java
new file mode 100644
index 00000000000..2158105d49e
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedOneCaseKarate.java
@@ -0,0 +1,17 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestSucceedOneCaseKarate {
+
+ @Test
+ public void test() {
+ Results results =
+ Runner.path("classpath:org/example/test_succeed_one_case.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedParallelKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedParallelKarate.java
new file mode 100644
index 00000000000..f180ca3ba02
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestSucceedParallelKarate.java
@@ -0,0 +1,16 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestSucceedParallelKarate {
+
+ @Test
+ public void testSucceed() {
+ Results results = Runner.path("classpath:org/example/test_succeed.feature").parallel(4);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestUnskippableKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestUnskippableKarate.java
new file mode 100644
index 00000000000..fd82915bc7b
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestUnskippableKarate.java
@@ -0,0 +1,16 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestUnskippableKarate {
+
+ @Test
+ public void test() {
+ Results results = Runner.path("classpath:org/example/test_unskippable.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestWithSetupKarate.java b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestWithSetupKarate.java
new file mode 100644
index 00000000000..86a5d703884
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/TestWithSetupKarate.java
@@ -0,0 +1,16 @@
+package org.example;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import com.intuit.karate.Results;
+import com.intuit.karate.Runner;
+import org.junit.jupiter.api.Test;
+
+public class TestWithSetupKarate {
+
+ @Test
+ public void test() {
+ Results results = Runner.path("classpath:org/example/test_with_setup.feature").parallel(1);
+ assertEquals(0, results.getFailCount(), results.getErrorMessages());
+ }
+}
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_failed_parameterized.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_failed_parameterized.feature
new file mode 100644
index 00000000000..5728f8d7df2
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_failed_parameterized.feature
@@ -0,0 +1,13 @@
+Feature: test parameterized
+
+ Scenario Outline: first scenario as an outline
+ (to prevent a particular bug from re-appearing)
+
+ Given def p =
+ When def response = p + p
+ Then match response == value
+
+ Examples:
+ | param | value |
+ | 'a' | aaa |
+ | 'b' | bb |
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_failed_then_succeed.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_failed_then_succeed.feature
new file mode 100644
index 00000000000..31fe2d52422
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_failed_then_succeed.feature
@@ -0,0 +1,4 @@
+Feature: test failed
+
+ Scenario: flaky scenario
+ * Java.type('org.example.Flaky').flake()
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_parameterized_more_cases.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_parameterized_more_cases.feature
new file mode 100644
index 00000000000..9ed0d225025
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_parameterized_more_cases.feature
@@ -0,0 +1,14 @@
+Feature: test parameterized
+
+ Scenario Outline: first scenario as an outline
+ (to prevent a particular bug from re-appearing)
+
+ Given def p =
+ When def response = p + p
+ Then match response == value
+
+ Examples:
+ | param | value |
+ | 'a' | aa |
+ | 'b' | bb |
+ | 'c' | cc |
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_one_case.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_one_case.feature
new file mode 100644
index 00000000000..162d2af3b42
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_one_case.feature
@@ -0,0 +1,6 @@
+@foo
+Feature: test succeed
+
+ @bar
+ Scenario: first scenario
+ * print 'first'
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_skip_efd.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_skip_efd.feature
new file mode 100644
index 00000000000..1b2325b1880
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_skip_efd.feature
@@ -0,0 +1,6 @@
+@foo
+Feature: test succeed
+
+ @datadog_efd_disable
+ Scenario: first scenario
+ * print 'first'
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_slow.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_slow.feature
new file mode 100644
index 00000000000..1e32a10962e
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_succeed_slow.feature
@@ -0,0 +1,6 @@
+@foo
+Feature: test succeed
+
+ @bar
+ Scenario: first scenario
+ * Java.type('org.example.Slow').stall()
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_unskippable.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_unskippable.feature
new file mode 100644
index 00000000000..25142d2a161
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_unskippable.feature
@@ -0,0 +1,10 @@
+@foo
+Feature: test unskippable
+
+ @bar
+ @datadog_itr_unskippable
+ Scenario: first scenario
+ * print 'first'
+
+ Scenario: second scenario
+ * print 'second'
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_with_setup.feature b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_with_setup.feature
new file mode 100644
index 00000000000..a2e7535b031
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/java/org/example/test_with_setup.feature
@@ -0,0 +1,20 @@
+Feature: test with setup
+
+ @setup
+ Scenario: setup scenario
+ * def data =
+ """
+ [
+ {foo: "bar"}
+ ]
+ """
+
+ Scenario Outline: first scenario
+ * print foo
+ Examples:
+ | karate.setup().data |
+
+ Scenario Outline: second scenario
+ * print foo
+ Examples:
+ | karate.setupOnce().data |
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-failed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-failed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-failed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-failed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-failed/events.ftl
new file mode 100644
index 00000000000..16339cefc58
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-failed/events.ftl
@@ -0,0 +1,244 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 1,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "fail",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.attempt_to_fix_passed" : "false",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_test_disabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "fail",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-succeeded/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-succeeded/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-succeeded/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-succeeded/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-succeeded/events.ftl
new file mode 100644
index 00000000000..92b7cb61f6a
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-disabled-succeeded/events.ftl
@@ -0,0 +1,525 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'second'"
+ },
+ "metrics" : {
+ "step.endLine" : 9,
+ "step.startLine" : 9
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "* 'second'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_test_disabled" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_test_disabled" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_test_disabled" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_10},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_test_disabled" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.attempt_to_fix_passed" : "true",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_test_disabled" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_12},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_13},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_14},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_15},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-failed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-failed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-failed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-failed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-failed/events.ftl
new file mode 100644
index 00000000000..8283cde93b2
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-failed/events.ftl
@@ -0,0 +1,243 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 1,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "fail",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.attempt_to_fix_passed" : "false",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "fail",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-failed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-failed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-failed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-failed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-failed/events.ftl
new file mode 100644
index 00000000000..a2e55ac59cc
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-failed/events.ftl
@@ -0,0 +1,244 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 1,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "fail",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.attempt_to_fix_passed" : "false",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "fail",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-succeeded/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-succeeded/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-succeeded/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-succeeded/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-succeeded/events.ftl
new file mode 100644
index 00000000000..6ae123bab0a
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-quarantined-succeeded/events.ftl
@@ -0,0 +1,525 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'second'"
+ },
+ "metrics" : {
+ "step.endLine" : 9,
+ "step.startLine" : 9
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "* 'second'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_quarantined" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_quarantined" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_quarantined" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_10},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_quarantined" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.attempt_to_fix_passed" : "true",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.test_management.is_quarantined" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_12},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_13},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_14},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_15},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-succeeded/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-succeeded/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-succeeded/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-succeeded/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-succeeded/events.ftl
new file mode 100644
index 00000000000..2854fab44a6
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-attempt-to-fix-succeeded/events.ftl
@@ -0,0 +1,520 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'second'"
+ },
+ "metrics" : {
+ "step.endLine" : 9,
+ "step.startLine" : 9
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "* 'second'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_10},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "attempt_to_fix",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.test_management.attempt_to_fix_passed" : "true",
+ "test.test_management.is_attempt_to_fix" : "true",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_12},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_succeed] test succeed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_13},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_14},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_15},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-disabled-failed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-disabled-failed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-disabled-failed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-disabled-failed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-disabled-failed/events.ftl
new file mode 100644
index 00000000000..8ec4e8fa639
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-disabled-failed/events.ftl
@@ -0,0 +1,213 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_2},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "skip",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.skip_reason" : "Flaky test is disabled by Datadog",
+ "test.status" : "skip",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_test_disabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_5},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-faulty-session-threshold/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-faulty-session-threshold/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-faulty-session-threshold/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-faulty-session-threshold/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-faulty-session-threshold/events.ftl
new file mode 100644
index 00000000000..831f14555c6
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-faulty-session-threshold/events.ftl
@@ -0,0 +1,926 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'c'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "Given p = 'c'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_7},
+ "start" : ${content_start_7},
+ "trace_id" : ${content_trace_id_7}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_8},
+ "start" : ${content_start_8},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_9},
+ "start" : ${content_start_9},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_10},
+ "start" : ${content_start_10},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_11},
+ "start" : ${content_start_11},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_12},
+ "start" : ${content_start_12},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_13},
+ "start" : ${content_start_13},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_14},
+ "start" : ${content_start_14},
+ "trace_id" : ${content_trace_id_7}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_15},
+ "start" : ${content_start_15},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_16},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_16},
+ "start" : ${content_start_16},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_17},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_17},
+ "start" : ${content_start_17},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_18},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_18},
+ "start" : ${content_start_18},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_19},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_19},
+ "start" : ${content_start_19},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_20},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_20},
+ "start" : ${content_start_20},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_21},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_21},
+ "start" : ${content_start_21},
+ "trace_id" : ${content_trace_id_7}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_22},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_22},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_23},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_23},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_24},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_24},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_25},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_25},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_26},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_26},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_27},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_27},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_28},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_28},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_29},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'c'\",\"value\":\"cc\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized_more_cases] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_8},
+ "resource" : "[org/example/test_parameterized_more_cases] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_7},
+ "start" : ${content_start_29},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_7}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_30},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.abort_reason" : "faulty",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_30},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_31},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.abort_reason" : "faulty",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_10}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_31},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-parameterized-test/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-parameterized-test/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-parameterized-test/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-parameterized-test/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-parameterized-test/events.ftl
new file mode 100644
index 00000000000..e932f698ef1
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-parameterized-test/events.ftl
@@ -0,0 +1,333 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_parameterized] test parameterized",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_10},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-test/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-test/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-test/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-test/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-test/events.ftl
new file mode 100644
index 00000000000..9a7f0fe3d8c
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-known-test/events.ftl
@@ -0,0 +1,170 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_one_case] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed_one_case] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_2},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_one_case] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "[org/example/test_succeed_one_case] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_4},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-parameterized-test/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-parameterized-test/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-parameterized-test/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-parameterized-test/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-parameterized-test/events.ftl
new file mode 100644
index 00000000000..d9413043788
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-parameterized-test/events.ftl
@@ -0,0 +1,809 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_7},
+ "start" : ${content_start_7},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_8},
+ "start" : ${content_start_8},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_9},
+ "start" : ${content_start_9},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_10},
+ "start" : ${content_start_10},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_11},
+ "start" : ${content_start_11},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_12},
+ "start" : ${content_start_12},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_13},
+ "start" : ${content_start_13},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_14},
+ "start" : ${content_start_14},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_15},
+ "start" : ${content_start_15},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_16},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_16},
+ "start" : ${content_start_16},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_17},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_17},
+ "start" : ${content_start_17},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_18},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_18},
+ "start" : ${content_start_18},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_19},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_parameterized] test parameterized",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_19},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_20},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_20},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_21},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_21},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_22},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_22},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_23},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_23},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_24},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_24},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_25},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_25},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_26},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.abort_reason" : "faulty",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_26},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_27},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.abort_reason" : "faulty",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_27},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-slow-test/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-slow-test/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-slow-test/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-slow-test/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-slow-test/events.ftl
new file mode 100644
index 00000000000..648c137f7f9
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-slow-test/events.ftl
@@ -0,0 +1,241 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* Java.type('org.example.Slow').stall()"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* Java.type('org.example.Slow').stall()",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* Java.type('org.example.Slow').stall()"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* Java.type('org.example.Slow').stall()",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_slow] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed_slow] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_slow] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_succeed_slow] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_slow] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_succeed_slow] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-test/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-test/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-test/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-test/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-test/events.ftl
new file mode 100644
index 00000000000..c6f9d72364e
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-new-test/events.ftl
@@ -0,0 +1,311 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_one_case] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed_one_case] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_one_case] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "[org/example/test_succeed_one_case] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_one_case] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "[org/example/test_succeed_one_case] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_6},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_one_case] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "[org/example/test_succeed_one_case] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_8},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-skip-new-test/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-skip-new-test/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-skip-new-test/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-skip-new-test/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-skip-new-test/events.ftl
new file mode 100644
index 00000000000..f80d4f4ad7d
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-efd-skip-new-test/events.ftl
@@ -0,0 +1,171 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_skip_efd] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed_skip_efd] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_2},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed_skip_efd] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"datadog_efd_disable\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "[org/example/test_succeed_skip_efd] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_4},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-failed-then-succeed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-failed-then-succeed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-failed-then-succeed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-failed-then-succeed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-failed-then-succeed/events.ftl
new file mode 100644
index 00000000000..250a3344bc2
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-failed-then-succeed/events.ftl
@@ -0,0 +1,310 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* Java.type('org.example.Flaky').flake()"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* Java.type('org.example.Flaky').flake()",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* Java.type('org.example.Flaky').flake()"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* Java.type('org.example.Flaky').flake()",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* Java.type('org.example.Flaky').flake()"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* Java.type('org.example.Flaky').flake()",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed_then_succeed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed_then_succeed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "io.karatelabs.js.EngineException",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "flaky scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_then_succeed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "[org/example/test_failed_then_succeed] test failed.flaky scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "io.karatelabs.js.EngineException",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "flaky scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_then_succeed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "[org/example/test_failed_then_succeed] test failed.flaky scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_6},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "flaky scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed_then_succeed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "[org/example/test_failed_then_succeed] test failed.flaky scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_8},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-itr-unskippable/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-itr-unskippable/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-itr-unskippable/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-itr-unskippable/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-itr-unskippable/events.ftl
new file mode 100644
index 00000000000..45bf59aa899
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-itr-unskippable/events.ftl
@@ -0,0 +1,249 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'second'"
+ },
+ "metrics" : {
+ "step.endLine" : 10,
+ "step.startLine" : 10
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'second'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.itr.tests_skipping.enabled" : "true",
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_unskippable] test unskippable",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_unskippable] test unskippable",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "itr_correlation_id" : "itrCorrelationId",
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.itr.forced_run" : "true",
+ "test.itr.tests_skipping.enabled" : "true",
+ "test.itr.unskippable" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_unskippable] test unskippable",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\",\"datadog_itr_unskippable\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_unskippable] test unskippable.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "itr_correlation_id" : "itrCorrelationId",
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.itr.tests_skipping.enabled" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_unskippable] test unskippable",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_unskippable] test unskippable.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.itr.tests_skipping.enabled" : "true",
+ "test.itr.tests_skipping.type" : "test",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id},
+ "test.itr.tests_skipping.count" : 0
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.itr.tests_skipping.enabled" : "true",
+ "test.itr.tests_skipping.type" : "test",
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "test.itr.tests_skipping.count" : 0
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-atr/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-atr/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-atr/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-atr/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-atr/events.ftl
new file mode 100644
index 00000000000..fbf1c1cb407
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-atr/events.ftl
@@ -0,0 +1,533 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_10},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_3},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_4},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_12},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_5},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.has_failed_all_retries" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_13},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_14},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_15},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-efd/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-efd/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-efd/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-efd/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-efd/events.ftl
new file mode 100644
index 00000000000..2fb2cddf5e0
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-efd/events.ftl
@@ -0,0 +1,533 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_10},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_12},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_3},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.has_failed_all_retries" : "true",
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_13},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.abort_reason" : "faulty",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_14},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.abort_reason" : "faulty",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_15},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-known/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-known/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-known/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-known/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-known/events.ftl
new file mode 100644
index 00000000000..86a10f1782f
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed-known/events.ftl
@@ -0,0 +1,381 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_6},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_new" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.retry_reason" : "early_flake_detection",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_10},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.early_flake.enabled" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed/events.ftl
new file mode 100644
index 00000000000..cf475efcab6
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-quarantined-failed/events.ftl
@@ -0,0 +1,240 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.test_management.is_quarantined" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.test_management.enabled" : "true",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-failed/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-failed/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-failed/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-failed/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-failed/events.ftl
new file mode 100644
index 00000000000..813d2d93780
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-failed/events.ftl
@@ -0,0 +1,528 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 4,
+ "step.startLine" : 4
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* false"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "* false",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 1,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed] test failed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_8},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_9},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_3},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_10},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_4},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_11},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_5},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_12},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_6},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "fail",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.has_failed_all_retries" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed] test failed",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed] test failed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_13},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "fail",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_14},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_15},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-parameterized/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-parameterized/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-parameterized/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-parameterized/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-parameterized/events.ftl
new file mode 100644
index 00000000000..ed370dbb34b
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-retry-parameterized/events.ftl
@@ -0,0 +1,822 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_3},
+ "start" : ${content_start_3},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_4},
+ "start" : ${content_start_4},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'a'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "Given p = 'a'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_5},
+ "start" : ${content_start_5},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Given p = 'b'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "Given p = 'b'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_6},
+ "start" : ${content_start_6},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_7},
+ "start" : ${content_start_7},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_8},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_8},
+ "start" : ${content_start_8},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_9},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_9},
+ "start" : ${content_start_9},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_10},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_10},
+ "start" : ${content_start_10},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_11},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_11},
+ "start" : ${content_start_11},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_12},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "Then response == value"
+ },
+ "metrics" : {
+ "step.endLine" : 8,
+ "step.startLine" : 8
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "Then response == value",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_12},
+ "start" : ${content_start_12},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_13},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_13},
+ "start" : ${content_start_13},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_14},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_14},
+ "start" : ${content_start_14},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_15},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_15},
+ "start" : ${content_start_15},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_16},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_4},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_16},
+ "start" : ${content_start_16},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_17},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_5},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_17},
+ "start" : ${content_start_17},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_18},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "When response = p + p"
+ },
+ "metrics" : {
+ "step.endLine" : 7,
+ "step.startLine" : 7
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_6},
+ "resource" : "When response = p + p",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_18},
+ "start" : ${content_start_18},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_19},
+ "error" : 1,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack},
+ "error.type" : "java.lang.AssertionError",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_failed_parameterized] test parameterized",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_19},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_20},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_2},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aaa\"}",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_20},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_21},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_3},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aaa\"}",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_21},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_22},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_4},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aaa\"}",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_3},
+ "start" : ${content_start_22},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_3}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_23},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_5},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.failure_suppressed" : "true",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aaa\"}",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_4},
+ "start" : ${content_start_23},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_4}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_24},
+ "error" : 1,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "error.message" : ${content_meta_error_message},
+ "error.stack" : ${content_meta_error_stack_6},
+ "error.type" : "java.lang.AssertionError",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "fail",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.has_failed_all_retries" : "true",
+ "test.is_retry" : "true",
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'a'\",\"value\":\"aaa\"}",
+ "test.retry_reason" : "auto_test_retry",
+ "test.status" : "fail",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_6},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_5},
+ "start" : ${content_start_24},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_5}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_25},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario as an outline",
+ "test.parameters" : "{\"param\":\"'b'\",\"value\":\"bb\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_failed_parameterized] test parameterized",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_7},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_7},
+ "resource" : "[org/example/test_failed_parameterized] test parameterized.first scenario as an outline",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_6},
+ "start" : ${content_start_25},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_6}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_26},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "fail",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_8},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_26},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_27},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "fail",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_9}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_27},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-skipped-feature/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-skipped-feature/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-skipped-feature/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-skipped-feature/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-skipped-feature/events.ftl
new file mode 100644
index 00000000000..c2acf214162
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-skipped-feature/events.ftl
@@ -0,0 +1,236 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'second'"
+ },
+ "metrics" : {
+ "step.endLine" : 9,
+ "step.startLine" : 9
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'second'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_succeed] test succeed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-succeed-parallel/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-succeed-parallel/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-succeed-parallel/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-succeed-parallel/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-succeed-parallel/events.ftl
new file mode 100644
index 00000000000..c2acf214162
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-succeed-parallel/events.ftl
@@ -0,0 +1,236 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'first'"
+ },
+ "metrics" : {
+ "step.endLine" : 6,
+ "step.startLine" : 6
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* 'first'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* 'second'"
+ },
+ "metrics" : {
+ "step.endLine" : 9,
+ "step.startLine" : 9
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* 'second'",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_succeed] test succeed",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\",\"bar\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_succeed] test succeed.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_succeed] test succeed",
+ "test.traits" : "{\"category\":[\"foo\"]}",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_succeed] test succeed.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-with-setup/coverages.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-with-setup/coverages.ftl
new file mode 100644
index 00000000000..8878e547a79
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-with-setup/coverages.ftl
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-with-setup/events.ftl b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-with-setup/events.ftl
new file mode 100644
index 00000000000..18854759d1c
--- /dev/null
+++ b/dd-java-agent/instrumentation/karate/karate-2.0/src/test/resources/test-with-setup/events.ftl
@@ -0,0 +1,235 @@
+[ {
+ "content" : {
+ "duration" : ${content_duration},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* foo"
+ },
+ "metrics" : {
+ "step.endLine" : 13,
+ "step.startLine" : 13
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id},
+ "resource" : "* foo",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id},
+ "start" : ${content_start},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_2},
+ "error" : 0,
+ "meta" : {
+ "component" : "karate",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "step.name" : "* foo"
+ },
+ "metrics" : {
+ "step.endLine" : 18,
+ "step.startLine" : 18
+ },
+ "name" : "karate.step",
+ "parent_id" : ${content_parent_id_2},
+ "resource" : "* foo",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_span_id_2},
+ "start" : ${content_start_2},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "span",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_3},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_suite_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_with_setup] test with setup",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count}
+ },
+ "name" : "karate.test_suite",
+ "resource" : "[org/example/test_with_setup] test with setup",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_3},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id}
+ },
+ "type" : "test_suite_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_4},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "first scenario",
+ "test.parameters" : "{\"foo\":\"bar\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_with_setup] test with setup",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_with_setup] test with setup.first scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id},
+ "start" : ${content_start_4},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_5},
+ "error" : 0,
+ "meta" : {
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test",
+ "test.final_status" : "pass",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.name" : "second scenario",
+ "test.parameters" : "{\"foo\":\"bar\"}",
+ "test.status" : "pass",
+ "test.suite" : "[org/example/test_with_setup] test with setup",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test",
+ "parent_id" : ${content_parent_id_3},
+ "resource" : "[org/example/test_with_setup] test with setup.second scenario",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "span_id" : ${content_parent_id_2},
+ "start" : ${content_start_5},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id},
+ "test_suite_id" : ${content_test_suite_id},
+ "trace_id" : ${content_trace_id_2}
+ },
+ "type" : "test",
+ "version" : 2
+}, {
+ "content" : {
+ "duration" : ${content_duration_6},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_2},
+ "_dd.profiling.ctx" : "test",
+ "_dd.tracer_host" : ${content_meta__dd_tracer_host},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "language" : "jvm",
+ "library_version" : ${content_meta_library_version},
+ "runtime-id" : ${content_meta_runtime_id},
+ "span.kind" : "test_session_end",
+ "test.command" : "karate-2.0",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4},
+ "_dd.profiling.enabled" : 0,
+ "_dd.trace_span_attribute_schema" : 0,
+ "process_id" : ${content_metrics_process_id}
+ },
+ "name" : "karate.test_session",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_6},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_session_end",
+ "version" : 1
+}, {
+ "content" : {
+ "duration" : ${content_duration_7},
+ "error" : 0,
+ "meta" : {
+ "_dd.p.tid" : ${content_meta__dd_p_tid_3},
+ "component" : "karate",
+ "dummy_ci_tag" : "dummy_ci_tag_value",
+ "env" : "none",
+ "library_version" : ${content_meta_library_version},
+ "span.kind" : "test_module_end",
+ "test.framework" : "karate",
+ "test.framework_version" : ${content_meta_test_framework_version},
+ "test.module" : "karate-2.0",
+ "test.status" : "pass",
+ "test.type" : "test",
+ "test_session.name" : "session-name"
+ },
+ "metrics" : {
+ "_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_5}
+ },
+ "name" : "karate.test_module",
+ "resource" : "karate-2.0",
+ "service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
+ "start" : ${content_start_7},
+ "test_module_id" : ${content_test_module_id},
+ "test_session_id" : ${content_test_session_id}
+ },
+ "type" : "test_module_end",
+ "version" : 1
+} ]
\ No newline at end of file