@Override
    public Map<String,Object> getPerformanceMetrics(AppdynamicsApplication application, String instanceUrl ) {
        Map<String,Object> metrics = new HashMap<>();

        metrics.putAll(getOverallMetrics(application, instanceUrl));
        metrics.putAll(getCalculatedMetrics(metrics));
        metrics.putAll(getHealthMetrics(application, instanceUrl));
        metrics.putAll(getViolations(application, instanceUrl));
        metrics.putAll(getSeverityMetrics(application, instanceUrl));
        return metrics;
    }
@ Override public Map < String , Object > getPerformanceMetrics ( AppdynamicsApplication application , String instanceUrl ) { Map < String , Object > metrics = new HashMap < > ( ) ; metrics . putAll ( getOverallMetrics ( application , instanceUrl ) ) ; metrics . putAll ( getCalculatedMetrics ( metrics ) ) ; metrics . putAll ( getHealthMetrics ( application , instanceUrl ) ) ; metrics . putAll ( getViolations ( application , instanceUrl ) ) ; metrics . putAll ( getSeverityMetrics ( application , instanceUrl ) ) ; return metrics ; }
Obtains the relevant data via different appdynamics api calls.

@param application the current application. Used to provide access to appID/name
@return List of PerformanceMetrics used to populate the performance database