in ambari-metrics-timelineservice/src/main/java/org/apache/ambari/metrics/core/timeline/TimelineMetricsFilter.java [144:196]
public static boolean acceptMetric(TimelineMetric metric) {
String appId = metric.getAppId();
String metricName = metric.getMetricName();
// App Blacklisting
if (CollectionUtils.isNotEmpty(blacklistedApps) && blacklistedApps.contains(appId)) {
return false;
}
//Metric Blacklisting
if (CollectionUtils.isNotEmpty(blacklistedMetrics) || CollectionUtils.isNotEmpty(blacklistedPatterns)) {
if (blacklistedMetrics.contains(metricName)) {
return false;
}
for (Pattern p : blacklistedPatterns) {
Matcher m = p.matcher(metricName);
if (m.find()) {
blacklistedMetrics.add(metricName);
return false;
}
}
}
//Special Case appId = ams-hbase whitelisting.
if ("ams-hbase".equals(appId) && CollectionUtils.isNotEmpty(amshbaseWhitelist)) {
return amshbaseWhitelist.contains(metric.getMetricName());
}
// App Whitelisting
if (CollectionUtils.isNotEmpty(whitelistedApps) && whitelistedApps.contains(appId)) {
return true;
}
// Metric Whitelisting
if (CollectionUtils.isEmpty(whitelistedMetrics) && CollectionUtils.isEmpty(whitelistedMetricPatterns)) {
return true;
}
if (whitelistedMetrics.contains(metricName)) {
return true;
}
for (Pattern p : whitelistedMetricPatterns) {
Matcher m = p.matcher(metricName);
if (m.find()) {
whitelistedMetrics.add(metricName);
return true;
}
}
return false;
}