diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/PerformanceCounterInitializer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/PerformanceCounterInitializer.java
index ff488d94aad..79673393197 100644
--- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/PerformanceCounterInitializer.java
+++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/PerformanceCounterInitializer.java
@@ -31,6 +31,8 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
@@ -41,6 +43,8 @@ public class PerformanceCounterInitializer {
   private static final String METRIC_NAME_REGEXP = "[a-zA-Z0-9_.-/]+";
   private static final String INVALID_CHARACTER_REGEXP = "[^a-zA-Z0-9_.-/]";
 
+  private static final Set<String> invalidJmxMetrics = ConcurrentHashMap.newKeySet();
+
   public static void initialize(Configuration configuration) {
 
     PerformanceCounterContainer.INSTANCE.setCollectionFrequencyInSec(
@@ -209,6 +213,13 @@ private static void calculateAndRecordValueForAttribute(
             value += Double.parseDouble(String.valueOf(obj));
           }
         } catch (RuntimeException e) {
+          if (invalidJmxMetrics.add(jmxAttributeData.metricName)) {
+            try (MDC.MDCCloseable ignored = CUSTOM_JMX_METRIC_ERROR.makeActive()) {
+              logger.warn(
+                  "{} JMX metric is invalid because only numeric and boolean JMX metric values are supported.",
+                  jmxAttributeData.metricName);
+            }
+          }
           ok = false;
           break;
         }