List of usage examples for com.amazonaws.services.cloudwatch.model Dimension setValue
public void setValue(String value)
The value representing the dimension measurement.
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); }