From c25723e6a3d456ba49aac1f0df93e0cd2298e42f Mon Sep 17 00:00:00 2001 From: Kathie Huang Date: Fri, 26 Sep 2025 17:02:40 -0400 Subject: [PATCH 1/3] Return early before agent starts if in Azure flex consumption function that doesn't have DD_AZURE_RESOURCE_GROUP set --- src/main/java/com/datadog/ServerlessCompatAgent.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/com/datadog/ServerlessCompatAgent.java b/src/main/java/com/datadog/ServerlessCompatAgent.java index c6c1893..1cb7eaf 100644 --- a/src/main/java/com/datadog/ServerlessCompatAgent.java +++ b/src/main/java/com/datadog/ServerlessCompatAgent.java @@ -64,6 +64,10 @@ public static String getPackageVersion() { return packageVersion == null ? "unknown" : packageVersion; } + public static boolean isAzureFlexWithoutDDAzureResourceGroup() { + return System.getenv("WEBSITE_SKU") == "FlexConsumption" && System.getenv("DD_AZURE_RESOURCE_GROUP") == null; + } + public static void premain(String agentArgs, Instrumentation instrumentation) { CloudEnvironment environment = getEnvironment(); log.debug("Environment detected: {}", environment); @@ -90,6 +94,14 @@ public static void premain(String agentArgs, Instrumentation instrumentation) { return; } + // Check for Azure Flex Consumption functions that don't have the DD_AZURE_RESOURCE_GROUP environment variable set + if (environment == CloudEnvironment.AZURE_FUNCTION) { + if isAzureFlexWithoutDDAzureResourceGroup() { + log.error("Azure function detected on flex consumption plan without DD_AZURE_RESOURCE_GROUP set. Please set the DD_AZURE_RESOURCE_GROUP environment variable to your resource group name in Azure app settings. Shutting down Datadog Serverless Compatibility Layer."); + return; + } + } + try (InputStream inputStream = ServerlessCompatAgent.class.getClassLoader() .getResourceAsStream(fileName)) { if (inputStream == null) { From ec7d3812096eb0853ed7a9ef025eeba96a4d8c7c Mon Sep 17 00:00:00 2001 From: Kathie Huang Date: Mon, 29 Sep 2025 10:18:09 -0400 Subject: [PATCH 2/3] bug fixes --- src/main/java/com/datadog/ServerlessCompatAgent.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/datadog/ServerlessCompatAgent.java b/src/main/java/com/datadog/ServerlessCompatAgent.java index 1cb7eaf..9e718f5 100644 --- a/src/main/java/com/datadog/ServerlessCompatAgent.java +++ b/src/main/java/com/datadog/ServerlessCompatAgent.java @@ -65,7 +65,7 @@ public static String getPackageVersion() { } public static boolean isAzureFlexWithoutDDAzureResourceGroup() { - return System.getenv("WEBSITE_SKU") == "FlexConsumption" && System.getenv("DD_AZURE_RESOURCE_GROUP") == null; + return "FlexConsumption".equals(System.getenv("WEBSITE_SKU")) && System.getenv("DD_AZURE_RESOURCE_GROUP") == null; } public static void premain(String agentArgs, Instrumentation instrumentation) { @@ -96,7 +96,7 @@ public static void premain(String agentArgs, Instrumentation instrumentation) { // Check for Azure Flex Consumption functions that don't have the DD_AZURE_RESOURCE_GROUP environment variable set if (environment == CloudEnvironment.AZURE_FUNCTION) { - if isAzureFlexWithoutDDAzureResourceGroup() { + if (isAzureFlexWithoutDDAzureResourceGroup()) { log.error("Azure function detected on flex consumption plan without DD_AZURE_RESOURCE_GROUP set. Please set the DD_AZURE_RESOURCE_GROUP environment variable to your resource group name in Azure app settings. Shutting down Datadog Serverless Compatibility Layer."); return; } From 920dc1836ec26881e8dcea108756102d0668eb4f Mon Sep 17 00:00:00 2001 From: Kathie Huang Date: Mon, 29 Sep 2025 17:11:32 -0400 Subject: [PATCH 3/3] nit: combine nested if statements --- src/main/java/com/datadog/ServerlessCompatAgent.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/datadog/ServerlessCompatAgent.java b/src/main/java/com/datadog/ServerlessCompatAgent.java index 9e718f5..8d08959 100644 --- a/src/main/java/com/datadog/ServerlessCompatAgent.java +++ b/src/main/java/com/datadog/ServerlessCompatAgent.java @@ -95,11 +95,9 @@ public static void premain(String agentArgs, Instrumentation instrumentation) { } // Check for Azure Flex Consumption functions that don't have the DD_AZURE_RESOURCE_GROUP environment variable set - if (environment == CloudEnvironment.AZURE_FUNCTION) { - if (isAzureFlexWithoutDDAzureResourceGroup()) { - log.error("Azure function detected on flex consumption plan without DD_AZURE_RESOURCE_GROUP set. Please set the DD_AZURE_RESOURCE_GROUP environment variable to your resource group name in Azure app settings. Shutting down Datadog Serverless Compatibility Layer."); - return; - } + if (environment == CloudEnvironment.AZURE_FUNCTION && isAzureFlexWithoutDDAzureResourceGroup()) { + log.error("Azure function detected on flex consumption plan without DD_AZURE_RESOURCE_GROUP set. Please set the DD_AZURE_RESOURCE_GROUP environment variable to your resource group name in Azure app settings. Shutting down Datadog Serverless Compatibility Layer."); + return; } try (InputStream inputStream = ServerlessCompatAgent.class.getClassLoader()