You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by av...@apache.org on 2016/06/09 17:27:20 UTC
ambari git commit: AMBARI-16949 Metrics Collector API shows NPE if we
use wildcard (%25 for '%') for metric name (Jungtaek Lim via avijayan)
Repository: ambari
Updated Branches:
refs/heads/branch-2.4 0f9ba099a -> ed6a88f80
AMBARI-16949 Metrics Collector API shows NPE if we use wildcard (%25 for '%') for metric name (Jungtaek Lim via avijayan)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ed6a88f8
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ed6a88f8
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ed6a88f8
Branch: refs/heads/branch-2.4
Commit: ed6a88f800ece34c57e8367ab7ea6b286974d87b
Parents: 0f9ba09
Author: Aravindan Vijayan <av...@hortonworks.com>
Authored: Thu Jun 9 10:27:05 2016 -0700
Committer: Aravindan Vijayan <av...@hortonworks.com>
Committed: Thu Jun 9 10:27:05 2016 -0700
----------------------------------------------------------------------
.../metrics/timeline/PhoenixHBaseAccessor.java | 22 +++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ed6a88f8/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
index bc5396c..bbd6d83 100644
--- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
+++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
@@ -850,7 +850,7 @@ public class PhoenixHBaseAccessor {
Map<String, List<Function>> metricFunctions,
ResultSet rs) throws SQLException, IOException {
String metricName = rs.getString("METRIC_NAME");
- List<Function> functions = metricFunctions.get(metricName);
+ List<Function> functions = findMetricFunctions(metricFunctions, metricName);
// Apply aggregation function if present
if ((functions != null && !functions.isEmpty())) {
@@ -990,7 +990,7 @@ public class PhoenixHBaseAccessor {
ResultSet rs) throws SQLException {
String metricName = rs.getString("METRIC_NAME");
- List<Function> functions = metricFunctions.get(metricName);
+ List<Function> functions = findMetricFunctions(metricFunctions, metricName);
for (Function aggregateFunction : functions) {
SingleValuedTimelineMetric metric;
@@ -1027,7 +1027,7 @@ public class PhoenixHBaseAccessor {
try {
rs = stmt.executeQuery();
while (rs.next()) {
- List<Function> functions = metricFunctions.get(metricName);
+ List<Function> functions = findMetricFunctions(metricFunctions, metricName);
if (functions != null) {
for (Function f : functions) {
SingleValuedTimelineMetric metric =
@@ -1108,6 +1108,22 @@ public class PhoenixHBaseAccessor {
}
}
+ private List<Function> findMetricFunctions(Map<String, List<Function>> metricFunctions,
+ String metricName) {
+ if (metricFunctions.containsKey(metricName)) {
+ return metricFunctions.get(metricName);
+ }
+
+ for (Map.Entry<String, List<Function>> nameToFunctions : metricFunctions.entrySet()) {
+ String metricRegEx = nameToFunctions.getKey().replace("%", ".*");
+ if (metricName.matches(metricRegEx)) {
+ return nameToFunctions.getValue();
+ }
+ }
+
+ return null;
+ }
+
public void saveHostAggregateRecords(Map<TimelineMetric, MetricHostAggregate> hostAggregateMap,
String phoenixTableName) throws SQLException {