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 aa...@apache.org on 2019/08/14 03:24:14 UTC
[hadoop] branch trunk updated: HADOOP-16495. Fix invalid metric
types in PrometheusMetricsSink (#1244)
This is an automated email from the ASF dual-hosted git repository.
aajisaka pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 0f8add8 HADOOP-16495. Fix invalid metric types in PrometheusMetricsSink (#1244)
0f8add8 is described below
commit 0f8add8a60d159c2933a8fccffd83a64eb73eadc
Author: Akira Ajisaka <aa...@apache.org>
AuthorDate: Wed Aug 14 12:24:03 2019 +0900
HADOOP-16495. Fix invalid metric types in PrometheusMetricsSink (#1244)
---
.../metrics2/sink/PrometheusMetricsSink.java | 5 +++--
.../metrics2/sink/TestPrometheusMetricsSink.java | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/PrometheusMetricsSink.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/PrometheusMetricsSink.java
index 291cfe3..b1e8da8 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/PrometheusMetricsSink.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/PrometheusMetricsSink.java
@@ -46,6 +46,7 @@ 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 DELIMITERS = Pattern.compile("[^a-zA-Z0-9]+");
public PrometheusMetricsSink() {
}
@@ -92,9 +93,9 @@ public class PrometheusMetricsSink implements MetricsSink {
String metricName) {
String baseName = StringUtils.capitalize(recordName)
+ StringUtils.capitalize(metricName);
- baseName = baseName.replace('-', '_');
String[] parts = SPLIT_PATTERN.split(baseName);
- return String.join("_", parts).toLowerCase();
+ String joined = String.join("_", parts).toLowerCase();
+ return DELIMITERS.matcher(joined).replaceAll("_");
}
@Override
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/TestPrometheusMetricsSink.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/TestPrometheusMetricsSink.java
index f9649a6..3fc4aa4 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/TestPrometheusMetricsSink.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/TestPrometheusMetricsSink.java
@@ -99,6 +99,28 @@ public class TestPrometheusMetricsSink {
sink.prometheusName(recordName, metricName));
}
+ @Test
+ public void testNamingPeriods() {
+ PrometheusMetricsSink sink = new PrometheusMetricsSink();
+
+ String recordName = "org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl";
+ String metricName = "DfsUsed";
+ Assert.assertEquals(
+ "org_apache_hadoop_hdfs_server_datanode_fsdataset_impl_fs_dataset_impl_dfs_used",
+ sink.prometheusName(recordName, metricName));
+ }
+
+ @Test
+ public void testNamingWhitespaces() {
+ PrometheusMetricsSink sink = new PrometheusMetricsSink();
+
+ String recordName = "JvmMetrics";
+ String metricName = "GcCount" + "G1 Old Generation";
+ Assert.assertEquals(
+ "jvm_metrics_gc_count_g1_old_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