List of usage examples for com.amazonaws.services.cloudwatch.model Dimension getValue
public String getValue()
The value representing the dimension measurement.
From source file:com.amazon.kinesis.streaming.agent.metrics.LogMetricsScope.java
License:Open Source License
@Override protected void realCommit() { if (!data.values().isEmpty()) { StringBuilder output = new StringBuilder(); output.append("Metrics:\n"); output.append("Dimensions: "); boolean needsComma = false; for (Dimension dimension : getDimensions()) { output.append(String.format("%s[%s: %s]", needsComma ? ", " : "", dimension.getName(), dimension.getValue())); needsComma = true;/*from w ww.jav a 2 s .co m*/ } output.append("\n"); for (MetricDatum datum : data.values()) { StatisticSet statistics = datum.getStatisticValues(); output.append( String.format("Name=%50s\tMin=%.2f\tMax=%.2f\tCount=%.2f\tSum=%.2f\tAvg=%.2f\tUnit=%s\n", datum.getMetricName(), statistics.getMinimum(), statistics.getMaximum(), statistics.getSampleCount(), statistics.getSum(), statistics.getSum() / statistics.getSampleCount(), datum.getUnit())); } LOGGER.debug(output.toString()); } }
From source file:com.blacklocus.metrics.MetricNameBuilder.java
License:Apache License
/** * Passes into {@link #addDimension(String, String, boolean)} * * @return this for chaining/*www. j ava 2 s . c om*/ * @throws MetricsNameSyntaxException on validation failure */ public MetricNameBuilder addDimension(Dimension dimension, boolean permute) throws MetricsNameSyntaxException { return addDimension(dimension.getName(), dimension.getValue(), false); }
From source file:com.blubb.andcw.ChartBuilder.java
License:Apache License
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Metric m = new Metric().withMetricName((String) getIntent().getExtras().get("metric")) .withNamespace((String) getIntent().getExtras().get("namespace")); Dimension d = new Dimension().withName((String) getIntent().getExtras().get("dimension")) .withValue((String) getIntent().getExtras().get("dimensionvalue")); TimeSeries series = new TimeSeries(m.getMetricName() + " - " + d.getName() + " " + d.getValue()); AWSCredentials awsc = getAWSCredentials(); AmazonCloudWatchAsyncClient acw = new AmazonCloudWatchAsyncClient(awsc); long offset = new Date().getTime() - 1000 * 3600 * 24; GetMetricStatisticsRequest gmsr = new GetMetricStatisticsRequest().withStartTime(new Date(offset)) .withMetricName(m.getMetricName()).withNamespace(m.getNamespace()).withDimensions(d).withPeriod(300) .withStatistics("Average").withEndTime(new Date()); Log.i("AndCW req", gmsr.toString()); Future<GetMetricStatisticsResult> res = acw.getMetricStatisticsAsync(gmsr); TreeSet<Datapoint> data = new TreeSet<Datapoint>(new Comparator<Datapoint>() { public int compare(Datapoint lhs, Datapoint rhs) { return lhs.getTimestamp().compareTo(rhs.getTimestamp()); }/*from ww w. ja v a2s. c om*/ }); try { data.addAll((List<Datapoint>) res.get().getDatapoints()); // FIXME } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } for (Datapoint dp : data) { series.add(dp.getTimestamp(), dp.getAverage()); } XYSeriesRenderer renderer = new XYSeriesRenderer(); mRenderer.addSeriesRenderer(renderer); renderer.setPointStyle(PointStyle.CIRCLE); renderer.setFillPoints(true); mDataset.addSeries(series); mRenderer.setApplyBackgroundColor(true); mRenderer.setBackgroundColor(Color.argb(100, 50, 50, 50)); mRenderer.setAxisTitleTextSize(16); mRenderer.setChartTitleTextSize(20); mRenderer.setLabelsTextSize(15); mRenderer.setLegendTextSize(15); mRenderer.setMargins(new int[] { 20, 30, 15, 0 }); mRenderer.setZoomButtonsVisible(true); mRenderer.setPointSize(1); mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer, null); setContentView(mChartView); }
From source file:com.ec2box.manage.action.SystemAction.java
License:Apache License
@Action(value = "/admin/viewSystems", results = { @Result(name = "success", location = "/admin/view_systems.jsp") }) public String viewSystems() { Long userId = AuthUtil.getUserId(servletRequest.getSession()); String userType = AuthUtil.getUserType(servletRequest.getSession()); List<String> ec2RegionList = EC2KeyDB.getEC2Regions(); List<String> instanceIdList = new ArrayList<String>(); //default instance state if (sortedSet.getFilterMap().get(FILTER_BY_INSTANCE_STATE) == null) { sortedSet.getFilterMap().put(FILTER_BY_INSTANCE_STATE, AppConfig.getProperty("defaultInstanceState")); }//from w w w . j av a 2s .c o m try { Map<String, HostSystem> hostSystemList = new HashMap<String, HostSystem>(); //if user profile has been set or user is a manager List<Profile> profileList = UserProfileDB.getProfilesByUser(userId); if (profileList.size() > 0 || Auth.MANAGER.equals(userType)) { //set tags for profile List<String> profileTags = new ArrayList<>(); for (Profile profile : profileList) { profileTags.add(profile.getTag()); } Map<String, List<String>> profileTagMap = parseTags(profileTags); //set tags from input filters Map<String, List<String>> filterTags = fetchInputFilterTags(userType, profileTagMap); //parse out security group list in format group[,group] List<String> securityGroupList = new ArrayList<>(); if (StringUtils.isNotEmpty(sortedSet.getFilterMap().get(FILTER_BY_SECURITY_GROUP))) { securityGroupList = Arrays .asList(sortedSet.getFilterMap().get(FILTER_BY_SECURITY_GROUP).split(",")); } //get AWS credentials from DB for (AWSCred awsCred : AWSCredDB.getAWSCredList()) { if (awsCred != null) { //set AWS credentials for service BasicAWSCredentials awsCredentials = new BasicAWSCredentials(awsCred.getAccessKey(), awsCred.getSecretKey()); for (String ec2Region : ec2RegionList) { //create service AmazonEC2 service = new AmazonEC2Client(awsCredentials, AWSClientConfig.getClientConfig()); service.setEndpoint(ec2Region); //only return systems that have keys set List<String> keyValueList = new ArrayList<String>(); for (EC2Key ec2Key : EC2KeyDB.getEC2KeyByRegion(ec2Region, awsCred.getId())) { keyValueList.add(ec2Key.getKeyNm()); } DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); Filter keyNmFilter = new Filter("key-name", keyValueList); describeInstancesRequest.withFilters(keyNmFilter); //instance state filter if (StringUtils.isNotEmpty(sortedSet.getFilterMap().get(FILTER_BY_INSTANCE_STATE))) { List<String> instanceStateList = new ArrayList<String>(); instanceStateList.add(sortedSet.getFilterMap().get(FILTER_BY_INSTANCE_STATE)); Filter instanceStateFilter = new Filter("instance-state-name", instanceStateList); describeInstancesRequest.withFilters(instanceStateFilter); } if (securityGroupList.size() > 0) { Filter groupFilter = new Filter("group-name", securityGroupList); describeInstancesRequest.withFilters(groupFilter); } //set name value pair for tag filter List<String> tagList = new ArrayList<String>(); //always add all profile tags to filter list addTagsToDescribeInstanceRequest(profileTagMap, describeInstancesRequest, tagList); //add all additional filter tags provided by the user addTagsToDescribeInstanceRequest(filterTags, describeInstancesRequest, tagList); if (tagList.size() > 0) { Filter tagFilter = new Filter("tag-key", tagList); describeInstancesRequest.withFilters(tagFilter); } DescribeInstancesResult describeInstancesResult = service .describeInstances(describeInstancesRequest); for (Reservation res : describeInstancesResult.getReservations()) { for (Instance instance : res.getInstances()) { HostSystem hostSystem = new HostSystem(); hostSystem.setInstance(instance.getInstanceId()); //check for public dns if doesn't exist set to ip or pvt dns if (!"true".equals(AppConfig.getProperty("useEC2PvtDNS")) && StringUtils.isNotEmpty(instance.getPublicDnsName())) { hostSystem.setHost(instance.getPublicDnsName()); } else if (!"true".equals(AppConfig.getProperty("useEC2PvtDNS")) && StringUtils.isNotEmpty(instance.getPublicIpAddress())) { hostSystem.setHost(instance.getPublicIpAddress()); } else if (StringUtils.isNotEmpty(instance.getPrivateDnsName())) { hostSystem.setHost(instance.getPrivateDnsName()); } else { hostSystem.setHost(instance.getPrivateIpAddress()); } hostSystem.setKeyId(EC2KeyDB .getEC2KeyByNmRegion(instance.getKeyName(), ec2Region, awsCred.getId()) .getId()); hostSystem.setEc2Region(ec2Region); hostSystem.setState(instance.getState().getName()); for (Tag tag : instance.getTags()) { if ("Name".equals(tag.getKey())) { hostSystem.setDisplayNm(tag.getValue()); } } instanceIdList.add(hostSystem.getInstance()); hostSystemList.put(hostSystem.getInstance(), hostSystem); } } if (instanceIdList.size() > 0) { //set instance id list to check permissions when creating sessions servletRequest.getSession().setAttribute("instanceIdList", new ArrayList<String>(instanceIdList)); if (showStatus) { //make service call 100 instances at a time b/c of AWS limitation int i = 0; List<String> idCallList = new ArrayList<String>(); while (!instanceIdList.isEmpty()) { idCallList.add(instanceIdList.remove(0)); i++; //when i eq 100 make call if (i >= 100 || instanceIdList.isEmpty()) { //get status for host systems DescribeInstanceStatusRequest describeInstanceStatusRequest = new DescribeInstanceStatusRequest(); describeInstanceStatusRequest.withInstanceIds(idCallList); DescribeInstanceStatusResult describeInstanceStatusResult = service .describeInstanceStatus(describeInstanceStatusRequest); for (InstanceStatus instanceStatus : describeInstanceStatusResult .getInstanceStatuses()) { HostSystem hostSystem = hostSystemList .remove(instanceStatus.getInstanceId()); hostSystem.setSystemStatus( instanceStatus.getSystemStatus().getStatus()); hostSystem.setInstanceStatus( instanceStatus.getInstanceStatus().getStatus()); //check and filter by instance or system status if ((StringUtils.isEmpty( sortedSet.getFilterMap().get(FILTER_BY_INSTANCE_STATUS)) && StringUtils.isEmpty(sortedSet.getFilterMap() .get(FILTER_BY_SYSTEM_STATUS))) || (hostSystem.getInstanceStatus() .equals(sortedSet.getFilterMap() .get(FILTER_BY_INSTANCE_STATUS)) && StringUtils.isEmpty(sortedSet.getFilterMap() .get(FILTER_BY_SYSTEM_STATUS))) || (hostSystem.getInstanceStatus() .equals(sortedSet.getFilterMap() .get(FILTER_BY_SYSTEM_STATUS)) && StringUtils.isEmpty(sortedSet.getFilterMap() .get(FILTER_BY_INSTANCE_STATUS))) || (hostSystem.getInstanceStatus() .equals(sortedSet.getFilterMap() .get(FILTER_BY_SYSTEM_STATUS)) && hostSystem.getInstanceStatus() .equals(sortedSet.getFilterMap() .get(FILTER_BY_INSTANCE_STATUS)))) { hostSystemList.put(hostSystem.getInstance(), hostSystem); } } //start over i = 0; //clear list idCallList.clear(); } } //check alarms for ec2 instances AmazonCloudWatchClient cloudWatchClient = new AmazonCloudWatchClient( awsCredentials, AWSClientConfig.getClientConfig()); cloudWatchClient.setEndpoint(ec2Region.replace("ec2", "monitoring")); DescribeAlarmsResult describeAlarmsResult = cloudWatchClient.describeAlarms(); for (MetricAlarm metricAlarm : describeAlarmsResult.getMetricAlarms()) { for (Dimension dim : metricAlarm.getDimensions()) { if (dim.getName().equals("InstanceId")) { HostSystem hostSystem = hostSystemList.remove(dim.getValue()); if (hostSystem != null) { if ("ALARM".equals(metricAlarm.getStateValue())) { hostSystem .setMonitorAlarm(hostSystem.getMonitorAlarm() + 1); } else if ("INSUFFICIENT_DATA" .equals(metricAlarm.getStateValue())) { hostSystem.setMonitorInsufficientData( hostSystem.getMonitorInsufficientData() + 1); } else { hostSystem.setMonitorOk(hostSystem.getMonitorOk() + 1); } //check and filter by alarm state if (StringUtils.isEmpty( sortedSet.getFilterMap().get(FILTER_BY_ALARM_STATE))) { hostSystemList.put(hostSystem.getInstance(), hostSystem); } else if ("ALARM".equals( sortedSet.getFilterMap().get(FILTER_BY_ALARM_STATE)) && hostSystem.getMonitorAlarm() > 0) { hostSystemList.put(hostSystem.getInstance(), hostSystem); } else if ("INSUFFICIENT_DATA".equals( sortedSet.getFilterMap().get(FILTER_BY_ALARM_STATE)) && hostSystem.getMonitorInsufficientData() > 0) { hostSystemList.put(hostSystem.getInstance(), hostSystem); } else if ("OK".equals( sortedSet.getFilterMap().get(FILTER_BY_ALARM_STATE)) && hostSystem.getMonitorOk() > 0 && hostSystem.getMonitorInsufficientData() <= 0 && hostSystem.getMonitorAlarm() <= 0) { hostSystemList.put(hostSystem.getInstance(), hostSystem); } } } } } } } } } } //set ec2 systems SystemDB.setSystems(hostSystemList.values()); sortedSet = SystemDB.getSystemSet(sortedSet, new ArrayList<String>(hostSystemList.keySet())); } } catch (AmazonServiceException ex) { log.error(ex.toString(), ex); } if (script != null && script.getId() != null) { script = ScriptDB.getScript(script.getId(), userId); } return SUCCESS; }
From source file:com.github.lpezet.antiope.metrics.aws.DimensionComparator.java
License:Open Source License
@Override public int compare(Dimension pDim1, Dimension pDim2) { int oResult = nullCompare(pDim1, pDim2); if (oResult == NON_NULLS) { oResult = nullSafeCompare(pDim1.getName(), pDim2.getName()); if (oResult == 0) { return nullSafeCompare(pDim1.getValue(), pDim2.getValue()); }/*from www. j a v a2 s. c o m*/ } return oResult; }
From source file:com.liferay.amazontools.AlarmCleaner.java
License:Open Source License
protected String getAutoScalingGroupName(List<Dimension> dimensions) { for (Dimension dimension : dimensions) { String name = dimension.getName(); if (name.equals("AutoScalingGroupName")) { return dimension.getValue(); }//from www .j av a 2 s.c o m } return null; }
From source file:org.elasticdroid.model.CloudWatchMetricsModel.java
License:Open Source License
/** * Retrieve the list of metrics/*w w w . java 2s . co m*/ * * @return Either * <ul> * <li>AmazonServiceException</li> * <li>AmazonClientException</li> * <li>List\<Metric\></li> * </ul> */ public Object retrieveMetricsList(Dimension... dimensions) { //the cloudwatch client to use AmazonCloudWatchClient cloudWatchClient = null; List<Metric> returnedMetrics = null; ArrayList<String> measureNames = new ArrayList<String>(); ListMetricsRequest request = new ListMetricsRequest(); //create credentials using the BasicAWSCredentials class BasicAWSCredentials credentials = new BasicAWSCredentials(connectionData.get("accessKey"), connectionData.get("secretAccessKey")); //create a cloudwatch client try { cloudWatchClient = new AmazonCloudWatchClient(credentials); } catch (AmazonServiceException amazonServiceException) { //if an error response is returned by AmazonIdentityManagement indicating either a //problem with the data in the request, or a server side issue. Log.e(this.getClass().getName(), "Exception:" + amazonServiceException.getMessage()); return amazonServiceException; } catch (AmazonClientException amazonClientException) { //If any internal errors are encountered inside the client while attempting to make //the request or handle the response. For example if a network connection is not //available. Log.e(this.getClass().getName(), "Exception:" + amazonClientException.getMessage()); return amazonClientException; } cloudWatchClient.setEndpoint(cloudWatchEndpoint); //create the request request = new ListMetricsRequest(); //request.setNextToken(nextToken) try { returnedMetrics = cloudWatchClient.listMetrics().getMetrics(); } catch (AmazonServiceException amazonServiceException) { //if an error response is returned by AmazonIdentityManagement indicating either a //problem with the data in the request, or a server side issue. Log.e(this.getClass().getName(), "Exception:" + amazonServiceException.getMessage()); return amazonServiceException; } catch (AmazonClientException amazonClientException) { //If any internal errors are encountered inside the client while attempting to make //the request or handle the response. For example if a network connection is not //available. Log.e(this.getClass().getName(), "Exception:" + amazonClientException.getMessage()); return amazonClientException; } //my own disgusting O(mnp) filter. This is REALLY CRAP! //remove all that does not fit into the dimension //for some reason, there isn't a way to provide dimensions using ListMetricsRequest in Java //you can do it in the C# API though :P List<Dimension> returnedDimensions; boolean added; for (Metric metric : returnedMetrics) { returnedDimensions = metric.getDimensions(); added = false; for (Dimension returnedDimension : returnedDimensions) { //check if any of the dimensions passed in to the model are equal to this. for (Dimension dimension : dimensions) { if (returnedDimension.getValue().equals(dimension.getValue())) { measureNames.add(metric.getMeasureName()); added = true; break; } } if (added) { break; } } } return measureNames; }