From 7fda6a3f6d581666b9d64e2e6c274361a11b51e1 Mon Sep 17 00:00:00 2001 From: Gyuheon Oh Date: Thu, 6 Aug 2026 09:53:37 -0400 Subject: [PATCH 1/2] Add is_crash tag to crash report --- .../src/main/java/datadog/crashtracking/CrashUploader.java | 3 ++- .../test/java/datadog/crashtracking/CrashUploaderTest.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java index 7a838523993..87fc4592751 100644 --- a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java +++ b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java @@ -153,6 +153,7 @@ public CrashUploader(@Nonnull final ConfigManager.StoredConfig storedConfig) { if (!tagsBuilder.toString().isEmpty()) { tagsBuilder.append(","); } + tagsBuilder.append("is_crash:true").append(','); tagsBuilder.append(VersionInfo.LIBRARY_VERSION_TAG).append('=').append(VersionInfo.VERSION); // PID can be empty if we cannot find it out from the system if (!PidHelper.getPid().isEmpty()) { @@ -446,7 +447,7 @@ private RequestBody makeTelemetryRequestBody(@Nonnull String payload, boolean is writer.name("tags").value(tagsForPing(storedConfig.reportUUID)); } else { writer.name("level").value("ERROR"); - writer.name("tags").value("severity:crash"); + writer.name("tags").value("severity:crash,is_crash:true"); writer.name("is_sensitive").value(true); writer.name("is_crash").value(true); } diff --git a/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java b/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java index 5f5226ea824..1ecec69a34e 100644 --- a/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java +++ b/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java @@ -103,6 +103,7 @@ public void testLogsHappyPath() throws Exception { assertEquals(SERVICE, event.get("service").asText()); assertEquals(CRASH, event.get("message").asText()); assertEquals("ERROR", event.get("level").asText()); + assertTrue(event.get("ddtags").asText().contains("is_crash:true")); } @Test @@ -124,6 +125,7 @@ public void testExtractStackTraceFromRealCrashFile() throws IOException { assertEquals( readFileAsString("sample-stacktrace.txt"), event.get("error").get("stack").asText()); assertEquals("ERROR", event.get("level").asText()); + assertTrue(event.get("ddtags").asText().contains("is_crash:true")); } private String readFileAsString(String resource) throws IOException { @@ -297,7 +299,7 @@ public void testTelemetryHappyPath(String log) throws Exception { assertThatJson(extracted.toJson()) .whenIgnoringPaths("os_info", "metadata", "experimental") .isEqualTo(expected.toJson()); - assertEquals("severity:crash", event.get("payload").get(0).get("tags").asText()); + assertEquals("severity:crash,is_crash:true", event.get("payload").get(0).get("tags").asText()); assertCommonPayload(event); } From 20aedaf0d74cc6de990655074057b2a9346a1fa0 Mon Sep 17 00:00:00 2001 From: Gyuheon Oh Date: Thu, 6 Aug 2026 21:22:19 -0400 Subject: [PATCH 2/2] trigger CI