This is an automated email from the ASF dual-hosted git repository. elek pushed a commit to branch ozone-0.4.1 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/ozone-0.4.1 by this push: new e4c16a3 HDDS-1867. Invalid Prometheus metric name from JvmMetrics e4c16a3 is described below commit e4c16a30d998ea9bdcb8b3bee44cbef0f9fc7d6b Author: Doroszlai, Attila <adorosz...@apache.org> AuthorDate: Mon Jul 29 10:27:55 2019 +0200 HDDS-1867. Invalid Prometheus metric name from JvmMetrics Closes #1172 (cherry picked from commit 902ff4a2f60cba8e8489dde40e3c8b8ba30a75b4) --- .../org/apache/hadoop/hdds/server/PrometheusMetricsSink.java | 7 +++++-- .../apache/hadoop/hdds/server/TestPrometheusMetricsSink.java | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/PrometheusMetricsSink.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/PrometheusMetricsSink.java index df25cfc..f23d528 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/PrometheusMetricsSink.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/PrometheusMetricsSink.java @@ -49,6 +49,9 @@ public class PrometheusMetricsSink implements MetricsSink { private static final Pattern SPLIT_PATTERN = Pattern.compile("(?<!(^|[A-Z_]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])"); + private static final Pattern REPLACE_PATTERN = + Pattern.compile("[^a-zA-Z0-9]+"); + public PrometheusMetricsSink() { } @@ -101,9 +104,9 @@ public class PrometheusMetricsSink implements MetricsSink { String baseName = StringUtils.capitalize(recordName) + StringUtils.capitalize(metricName); - baseName = baseName.replace('-', '_'); String[] parts = SPLIT_PATTERN.split(baseName); - return String.join("_", parts).toLowerCase(); + String result = String.join("_", parts).toLowerCase(); + return REPLACE_PATTERN.matcher(result).replaceAll("_"); } @Override diff --git a/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/server/TestPrometheusMetricsSink.java b/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/server/TestPrometheusMetricsSink.java index a1a9a55..e233f65 100644 --- a/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/server/TestPrometheusMetricsSink.java +++ b/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/server/TestPrometheusMetricsSink.java @@ -107,6 +107,17 @@ public class TestPrometheusMetricsSink { sink.prometheusName(recordName, metricName)); } + @Test + public void testNamingSpaces() { + PrometheusMetricsSink sink = new PrometheusMetricsSink(); + + String recordName = "JvmMetrics"; + String metricName = "GcTimeMillisG1 Young Generation"; + Assert.assertEquals( + "jvm_metrics_gc_time_millis_g1_young_generation", + sink.prometheusName(recordName, metricName)); + } + /** * Example metric pojo. */ --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org