@Test protected void testCloudWatch() { String metricName = "TestMetricName" + System.currentTimeMillis(); String namespace = "JCLOUDS/Test"; Date metricTimestamp = new Date(); Set<MetricDatum> metrics = Sets.newLinkedHashSet(); for (int i = 0; i < 11; i++) { metrics.add(MetricDatum.builder() .metricName(metricName + "_" + i) .dimension(new Dimension("BaseMetricName", metricName)) .unit(Unit.COUNT) .timestamp(metricTimestamp) .value((double) i) .build()); } CloudWatch.putMetricData(api, null, metrics, namespace); ListMetricsOptions lmo = ListMetricsOptions.Builder.namespace(namespace) .dimension(new Dimension("BaseMetricName", metricName)); boolean success = retry(new Predicate<ListMetricsOptions>() { public boolean apply(ListMetricsOptions options) { return Iterables.size(CloudWatch.listMetrics(api, null, options)) == 11; } }, 20, 1, MINUTES).apply(lmo); if (!success) { Assert.fail("Unable to gather the created CloudWatch data within the time (20m) allotted."); } }
@Override public IterableWithMarker<Metric> apply(Object input) { return metricApi.list(ListMetricsOptions.Builder.afterMarker(input.toString())); }
ListMetricsOptions lmo = ListMetricsOptions.Builder.namespace(namespace) .dimension(new Dimension("BaseMetricName", metricName)); boolean success = retry(new Predicate<ListMetricsOptions>() {
ListMetricsOptions lmOptions = ListMetricsOptions.builder() .metricName(EC2Constants.MetricName.CPU_UTILIZATION) .namespace(Namespaces.EC2) .dimension(instanceIdDimension) .build();
ListMetricsOptions lmo = ListMetricsOptions.Builder.namespace(namespace) .dimension(new Dimension("BaseMetricName", metricName)); boolean success = retry(new Predicate<ListMetricsOptions>() {
response = api().list(ListMetricsOptions.Builder.afterMarker(response.nextMarker().orNull())); response = api().list(ListMetricsOptions.Builder.namespace(testNamespace)); response = api().list(ListMetricsOptions.Builder.metricName(testMetricName)); Dimension testDimension = new Dimension(testDimensionName, testDimensionValue); response = api().list(ListMetricsOptions.Builder.dimension(testDimension));
response = api().list(ListMetricsOptions.Builder.afterMarker(response.nextMarker().orNull())); response = api().list(ListMetricsOptions.Builder.namespace(testNamespace)); response = api().list(ListMetricsOptions.Builder.metricName(testMetricName)); Dimension testDimension = new Dimension(testDimensionName, testDimensionValue); response = api().list(ListMetricsOptions.Builder.dimension(testDimension));
apiWhenMetricsWithOptionsExist.getMetricApiForRegion(null).list( ListMetricsOptions.Builder .dimension(new Dimension(EC2Constants.Dimension.INSTANCE_ID, "SOMEINSTANCEID")) .metricName(EC2Constants.MetricName.CPU_UTILIZATION)
), namespace); ListMetricsOptions lmo = ListMetricsOptions.Builder.namespace(namespace) .metricName(metricName); boolean success = retry(new Predicate<ListMetricsOptions>() {
apiWhenMetricsWithOptionsExist.getMetricApiForRegion(null).list( ListMetricsOptions.Builder .dimension(new Dimension(EC2Constants.Dimension.INSTANCE_ID, "SOMEINSTANCEID")) .metricName(EC2Constants.MetricName.CPU_UTILIZATION)
), namespace); ListMetricsOptions lmo = ListMetricsOptions.Builder.namespace(namespace) .metricName(metricName); boolean success = retry(new Predicate<ListMetricsOptions>() {
@Test protected void testCloudWatch() { String metricName = "TestMetricName" + System.currentTimeMillis(); String namespace = "JCLOUDS/Test"; Date metricTimestamp = new Date(); Set<MetricDatum> metrics = Sets.newLinkedHashSet(); for (int i = 0; i < 11; i++) { metrics.add(MetricDatum.builder() .metricName(metricName + "_" + i) .dimension(new Dimension("BaseMetricName", metricName)) .unit(Unit.COUNT) .timestamp(metricTimestamp) .value((double) i) .build()); } CloudWatch.putMetricData(api, null, metrics, namespace); ListMetricsOptions lmo = ListMetricsOptions.Builder.namespace(namespace) .dimension(new Dimension("BaseMetricName", metricName)); boolean success = retry(new Predicate<ListMetricsOptions>() { public boolean apply(ListMetricsOptions options) { return Iterables.size(CloudWatch.listMetrics(api, null, options)) == 11; } }, 20, 1, MINUTES).apply(lmo); if (!success) { Assert.fail("Unable to gather the created CloudWatch data within the time (20m) allotted."); } }
/** * Returns the count of metrics stored for the given nodeId and region. * * @param cloudWatchClient the cloud watch client (Will use MetricsClient when Issue 922 is fixed) * @param region the region the instance is in * @param nodeId the instance id * * @return the total count of metrics stored for the given instance id and region */ private static int getMetricsCountForInstance(CloudWatchClient cloudWatchClient, String region, String nodeId) { // Uses CloudWatchClient+region instead of MetricsClient because the pagination helper only works with // CloudWatchClient: http://code.google.com/p/jclouds/issues/detail?id=922 return Iterators.size(CloudWatch.listMetrics(cloudWatchClient, region, ListMetricsOptions.builder() // Only return metrics for the given instance .dimension(new Dimension( EC2Constants.Dimension.INSTANCE_ID, nodeId)) .build()).iterator()); }
@Override public ListMetricsOptions clone() { return Builder.namespace(namespace).metricName(metricName).dimensions(dimensions).afterMarker(afterMarker); }
@Override public IterableWithMarker<Metric> apply(Object input) { return metricApi.list(ListMetricsOptions.Builder.afterMarker(input.toString())); }
@Override public ListMetricsOptions clone() { return Builder.namespace(namespace).metricName(metricName).dimensions(dimensions).afterMarker(afterMarker); }
@Override public ListMetricsOptions clone() { return Builder.namespace(namespace).metricName(metricName).dimensions(dimensions).afterMarker(afterMarker); }
@Override public IterableWithMarker<Metric> apply(Object input) { return metricApi.list(ListMetricsOptions.Builder.afterMarker(input.toString())); }
@Override public ListMetricsOptions clone() { return Builder.namespace(namespace).metricName(metricName).dimensions(dimensions).afterMarker(afterMarker); }
@Override public IterableWithMarker<Metric> apply(Object input) { return metricApi.list(ListMetricsOptions.Builder.afterMarker(input.toString())); }