private void populateResource(Resource resource, Request request, Predicate predicate)
      throws SystemException {

    Set<String> propertyIds = getPropertyIds();

    if (propertyIds.isEmpty()) {
      return;
    }
    String clusterName = (String) resource.getPropertyValue(clusterNamePropertyId);

    if (hostProvider.getCollectorHostName(clusterName, GANGLIA) == null) {
      if (LOG.isWarnEnabled()) {
        LOG.warn("Attempting to get metrics but the Ganglia server is unknown. Resource=" + resource +
            " : Cluster=" + clusterName);
      }
      return;
    }

    setProperties(resource, clusterName, request, getRequestPropertyIds(request, predicate));

    return;
  }
Populate a resource by obtaining the requested Ganglia RESOURCE_METRICS.

@param resource  the resource to be populated
@param request   the request
@param predicate the predicate

@throws SystemException if unable to populate the resource
ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaReportPropertyProvider.java