You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by el...@apache.org on 2019/07/29 08:36:52 UTC
[hadoop] branch ozone-0.4.1 updated: HDDS-1867. Invalid Prometheus
metric name from JvmMetrics
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 <ad...@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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org