Example usage for com.amazonaws.services.cloudwatch.model Dimension setValue

List of usage examples for com.amazonaws.services.cloudwatch.model Dimension setValue

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudwatch.model Dimension setValue.

Prototype


public void setValue(String value) 

Source Link

Document

The value representing the dimension measurement.

Usage

From source file:imperial.modaclouds.monitoring.datacollectors.monitors.CloudWatchMonitor.java

License:BSD License

/**
 * Retrieve monitoring value from metric names.
 *///from w  w w.j a  va2  s  . c  o  m
public MeasureSet retrieveMeasureSet(ArrayList<String> measureNames) throws ParseException {

    GetMetricStatisticsRequest getMetricRequest = new GetMetricStatisticsRequest();

    // Dimension Set
    ArrayList<Dimension> dimensions = new ArrayList<Dimension>();
    Dimension dim = new Dimension();
    dim.setName("InstanceId");
    dim.setValue(instanceID);
    dimensions.add(dim);

    // Time Set
    //TimeZone zone = TimeZone.getDefault();
    //int timeOffset = zone.getOffset(new Date().getTime()) / (1000 * 3600);
    //String dateFormatString = "%1$tY-%1$tm-%1$tdT%1tH:%1$tM:%1$tSZ";
    GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
    calendar.add(GregorianCalendar.SECOND, -1 * calendar.get(GregorianCalendar.SECOND));

    // Static Set
    ArrayList<String> stats = new ArrayList<String>();
    stats.add("Average");
    //stats.add("Maximum");

    getMetricRequest.setStatistics(stats);
    getMetricRequest.setNamespace("AWS/EC2");
    getMetricRequest.setPeriod(60);

    getMetricRequest.setDimensions(dimensions);
    getMetricRequest.setEndTime(calendar.getTime());
    calendar.add(GregorianCalendar.MINUTE, -10);
    getMetricRequest.setStartTime(calendar.getTime());

    HashMap<Long, MeasureSet> measureSets = new HashMap<Long, MeasureSet>();
    for (String measureName : measureNames) {

        getMetricRequest.setMetricName(measureName);

        GetMetricStatisticsResult metricStatistics = cloudWatchClient.getMetricStatistics(getMetricRequest);

        List<Datapoint> datapoints = metricStatistics.getDatapoints();
        for (Datapoint point : datapoints) {

            Calendar cal = new GregorianCalendar();
            cal.setTime(point.getTimestamp());
            //cal.add(GregorianCalendar.HOUR, timeOffset);
            MeasureSet measureSet = measureSets.get(cal.getTimeInMillis());

            if (measureSet == null) {
                measureSet = new MeasureSet();
                measureSet.timestamp = cal;
                measureSets.put(cal.getTimeInMillis(), measureSet);
            }
            measureSet.setMeasure(measureName, point.getAverage());
        }

    }

    ArrayList<MeasureSet> sortedMeasureSets = new ArrayList<MeasureSet>(measureSets.values());
    if (sortedMeasureSets.size() == 0) {
        return null;

    } else {
        Collections.sort(sortedMeasureSets);
        return sortedMeasureSets.get(sortedMeasureSets.size() - 1);

    }
}

From source file:imperial.modaclouds.monitoring.datacollectors.monitors.CostMonitor.java

License:BSD License

/**
 * Retrieve monitoring value from metric names.
 *///w  w  w .jav a 2  s  .co  m
public MeasureSet retrieveMeasureSet(ArrayList<String> measureNames) throws ParseException {

    GetMetricStatisticsRequest getMetricRequest = new GetMetricStatisticsRequest();

    // Dimension Set
    ArrayList<Dimension> dimensions = new ArrayList<Dimension>();
    Dimension dim = new Dimension();
    //dim.setName("InstanceId");
    //dim.setValue(instanceID);
    dim.setName("Currency");
    dim.setValue("USD");
    dimensions.add(dim);

    // Time Set
    //TimeZone zone = TimeZone.getDefault();
    //int timeOffset = zone.getOffset(new Date().getTime()) / (1000 * 3600);
    //String dateFormatString = "%1$tY-%1$tm-%1$tdT%1tH:%1$tM:%1$tSZ";
    GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
    calendar.add(GregorianCalendar.SECOND, -1 * calendar.get(GregorianCalendar.SECOND));

    // Static Set
    ArrayList<String> stats = new ArrayList<String>();
    stats.add("Average");
    //stats.add("Maximum");

    getMetricRequest.setStatistics(stats);
    getMetricRequest.setNamespace("AWS/Billing");
    getMetricRequest.setPeriod(3600);

    getMetricRequest.setDimensions(dimensions);
    getMetricRequest.setEndTime(calendar.getTime());
    calendar.add(GregorianCalendar.HOUR, -10);
    getMetricRequest.setStartTime(calendar.getTime());

    HashMap<Long, MeasureSet> measureSets = new HashMap<Long, MeasureSet>();
    for (String measureName : measureNames) {

        getMetricRequest.setMetricName(measureName);

        GetMetricStatisticsResult metricStatistics = cloudWatchClient.getMetricStatistics(getMetricRequest);

        List<Datapoint> datapoints = metricStatistics.getDatapoints();
        for (Datapoint point : datapoints) {

            Calendar cal = new GregorianCalendar();
            cal.setTime(point.getTimestamp());
            //cal.add(GregorianCalendar.HOUR, timeOffset);
            MeasureSet measureSet = measureSets.get(cal.getTimeInMillis());

            if (measureSet == null) {
                measureSet = new MeasureSet();
                measureSet.timestamp = cal;
                measureSets.put(cal.getTimeInMillis(), measureSet);
            }
            measureSet.setMeasure(measureName, point.getAverage());
        }

    }

    ArrayList<MeasureSet> sortedMeasureSets = new ArrayList<MeasureSet>(measureSets.values());
    if (sortedMeasureSets.size() == 0) {
        return null;

    } else {
        Collections.sort(sortedMeasureSets);
        return sortedMeasureSets.get(sortedMeasureSets.size() - 1);

    }
}

From source file:org.apache.stratos.aws.extension.AWSHelper.java

License:Apache License

/**
 * Retrieves the total number of requests that were made to the load
 * balancer during the given time interval in the past
 *
 * @param loadBalancerName// ww w . j av  a2 s  .  c om
 * @param region
 * @param timeInterval     in seconds which must be multiple of 60
 * @return number of requests made
 */
public int getRequestCount(String loadBalancerName, String region, int timeInterval) {
    int count = 0;

    try {
        GetMetricStatisticsRequest request = new GetMetricStatisticsRequest();
        request.setMetricName(Constants.REQUEST_COUNT_METRIC_NAME);
        request.setNamespace(Constants.CLOUD_WATCH_NAMESPACE_NAME);

        Date currentTime = new DateTime(DateTimeZone.UTC).toDate();
        Date pastTime = new DateTime(DateTimeZone.UTC).minusSeconds(timeInterval).toDate();

        request.setStartTime(pastTime);
        request.setEndTime(currentTime);

        request.setPeriod(timeInterval);

        HashSet<String> statistics = new HashSet<String>();
        statistics.add(Constants.SUM_STATISTICS_NAME);
        request.setStatistics(statistics);

        HashSet<Dimension> dimensions = new HashSet<Dimension>();
        Dimension loadBalancerDimension = new Dimension();
        loadBalancerDimension.setName(Constants.LOAD_BALANCER_DIMENTION_NAME);
        loadBalancerDimension.setValue(loadBalancerName);
        dimensions.add(loadBalancerDimension);
        request.setDimensions(dimensions);

        cloudWatchClient.setEndpoint(String.format(Constants.CLOUD_WATCH_ENDPOINT_URL_FORMAT, region));

        GetMetricStatisticsResult result = cloudWatchClient.getMetricStatistics(request);

        List<Datapoint> dataPoints = result.getDatapoints();

        if (dataPoints != null && dataPoints.size() > 0) {
            count = dataPoints.get(0).getSum().intValue();
        }

    } catch (AmazonClientException e) {
        log.error("Could not get request count statistics of load balancer " + loadBalancerName, e);
    }

    return count;
}

From source file:org.apache.stratos.aws.extension.AWSHelper.java

License:Apache License

/**
 * Retrieves the number of responses generated for a particular response
 * code like 2XX, 3XX, 4XX, 5XX/*from w  w w.j av a 2s.  co  m*/
 *
 * @param loadBalancerName
 * @param region
 * @param metricName       which is one among HTTPCode_Backend_2XX or
 *                         HTTPCode_Backend_3XX or HTTPCode_Backend_4XX or
 *                         HTTPCode_Backend_5XX
 * @param startTime        of the window to be scanned
 * @param endTime          of the window to be scanned
 * @param timeInterval     in seconds
 * @return number for response for this metric
 */
public int getResponseCountForMetric(String loadBalancerName, String region, String metricName, Date startTime,
        Date endTime, int timeInterval) {
    int count = 0;

    try {
        GetMetricStatisticsRequest request = new GetMetricStatisticsRequest();
        request.setMetricName(metricName);
        request.setNamespace(Constants.CLOUD_WATCH_NAMESPACE_NAME);

        request.setStartTime(startTime);
        request.setEndTime(endTime);

        request.setPeriod(timeInterval);

        HashSet<String> statistics = new HashSet<String>();
        statistics.add(Constants.SUM_STATISTICS_NAME);
        request.setStatistics(statistics);

        HashSet<Dimension> dimensions = new HashSet<Dimension>();
        Dimension loadBalancerDimension = new Dimension();
        loadBalancerDimension.setName(Constants.LOAD_BALANCER_DIMENTION_NAME);
        loadBalancerDimension.setValue(loadBalancerName);
        dimensions.add(loadBalancerDimension);
        request.setDimensions(dimensions);

        cloudWatchClient.setEndpoint(String.format(Constants.CLOUD_WATCH_ENDPOINT_URL_FORMAT, region));

        GetMetricStatisticsResult result = cloudWatchClient.getMetricStatistics(request);

        List<Datapoint> dataPoints = result.getDatapoints();

        if (dataPoints != null && dataPoints.size() > 0) {
            count = dataPoints.get(0).getSum().intValue();
        }

    } catch (AmazonClientException e) {
        log.error("Could not get the statistics for metric " + metricName + " of load balancer "
                + loadBalancerName, e);
    }

    return count;
}

From source file:org.elasticdroid.MonitorInstanceView.java

License:Apache License

/**
 * Execute model to get list of valid metrics for this instance.
 *///w  w w  .j  av  a  2 s . co m
private void executeMetricsModel() {
    //get the end point for the selected region and pass it to the model        
    metricsModel = new CloudWatchMetricsModel(this, connectionData, selectedRegion);
    Dimension dimension = new Dimension();
    dimension.setName("InstanceId");
    dimension.setValue(instanceId);

    metricsModel.execute(dimension);
}

From source file:org.elasticdroid.MonitorInstanceView.java

License:Apache License

/**
 * Execute model to produce the chart for the measure selected.
 *///from   ww w.  ja  va  2 s. com
private void executeChartModel() {
    //create a dimension which specifies that we want to see data for this instance
    Dimension dimension = new Dimension();
    dimension.setName("InstanceId");
    dimension.setValue(instanceId);
    //create and start the model
    monitorInstanceModel = new MonitorInstanceModel(this, connectionData, cloudWatchInput);
    monitorInstanceModel.execute(dimension);
}