/** * {@inheritDoc} */ @Override public Dimension getResult() { Dimension dimension = new Dimension(name, value); // Reset since this handler is created once but produces N results name = null; value = null; return dimension; }
/** * {@inheritDoc} */ @Override public Dimension getResult() { Dimension dimension = new Dimension(name, value); // Reset since this handler is created once but produces N results name = null; value = null; return dimension; }
/** * {@inheritDoc} */ @Override public Dimension getResult() { Dimension dimension = new Dimension(name, value); // Reset since this handler is created once but produces N results name = null; value = null; return dimension; }
/** * {@inheritDoc} */ @Override public Dimension getResult() { Dimension dimension = new Dimension(name, value); // Reset since this handler is created once but produces N results name = null; value = null; return dimension; }
/** * {@inheritDoc} */ @Override public Dimension getResult() { Dimension dimension = new Dimension(name, value); // Reset since this handler is created once but produces N results name = null; value = null; return dimension; }
/** * {@inheritDoc} */ @Override public Dimension getResult() { Dimension dimension = new Dimension(name, value); // Reset since this handler is created once but produces N results name = null; value = null; return dimension; }
/** * 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()); }
@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."); } }
@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."); } }
public void testMetricWithMultipleDimensions() throws Exception { MetricDatum metricDatum = MetricDatum.builder() .metricName("TestMetricName") .dimension(new Dimension("TestDimension", "FAKE")) .dimension(new Dimension("TestDimension2", "FAKE2")) .unit(Unit.COUNT) .timestamp(new Date(10000000l)) .value(5.0) .build(); HttpRequest request = binder.bindToRequest(request(), ImmutableSet.of(metricDatum)); Assert.assertEquals(request.getPayload().getRawContent(), "MetricData.member.1.Dimensions.member.1.Name=TestDimension" + "&MetricData.member.1.Dimensions.member.1.Value=FAKE" + "&MetricData.member.1.Dimensions.member.2.Name=TestDimension2" + "&MetricData.member.1.Dimensions.member.2.Value=FAKE2" + "&MetricData.member.1.MetricName=TestMetricName" + "&MetricData.member.1.Timestamp=1970-01-01T02%3A46%3A40Z" + "&MetricData.member.1.Unit=" + Unit.COUNT.toString() + "&MetricData.member.1.Value=5.0"); }
public void testMetricWithMultipleDimensions() throws Exception { MetricDatum metricDatum = MetricDatum.builder() .metricName("TestMetricName") .dimension(new Dimension("TestDimension", "FAKE")) .dimension(new Dimension("TestDimension2", "FAKE2")) .unit(Unit.COUNT) .timestamp(new Date(10000000L)) .value(5.0) .build(); HttpRequest request = binder.bindToRequest(request(), ImmutableSet.of(metricDatum)); Assert.assertEquals(request.getPayload().getRawContent(), "MetricData.member.1.Dimensions.member.1.Name=TestDimension" + "&MetricData.member.1.Dimensions.member.1.Value=FAKE" + "&MetricData.member.1.Dimensions.member.2.Name=TestDimension2" + "&MetricData.member.1.Dimensions.member.2.Value=FAKE2" + "&MetricData.member.1.MetricName=TestMetricName" + "&MetricData.member.1.Timestamp=1970-01-01T02%3A46%3A40Z" + "&MetricData.member.1.Unit=" + Unit.COUNT.toString() + "&MetricData.member.1.Value=5.0"); }
public void testMetricWithoutTimestamp() throws Exception { StatisticValues ss = StatisticValues.builder() .maximum(4.0) .minimum(1.0) .sampleCount(4.0) .sum(10.0) .build(); MetricDatum metricDatum = MetricDatum.builder() .metricName("TestMetricName") .statisticValues(ss) .dimension(new Dimension("TestDimension", "FAKE")) .unit(Unit.COUNT) .build(); HttpRequest request = binder.bindToRequest(request(), ImmutableSet.of(metricDatum)); Assert.assertEquals(request.getPayload().getRawContent(), "MetricData.member.1.Dimensions.member.1.Name=TestDimension" + "&MetricData.member.1.Dimensions.member.1.Value=FAKE" + "&MetricData.member.1.MetricName=TestMetricName" + "&MetricData.member.1.StatisticValues.Maximum=4.0" + "&MetricData.member.1.StatisticValues.Minimum=1.0" + "&MetricData.member.1.StatisticValues.SampleCount=4.0" + "&MetricData.member.1.StatisticValues.Sum=10.0" + "&MetricData.member.1.Unit=" + Unit.COUNT.toString()); }
public void testMetricWithoutTimestamp() throws Exception { StatisticValues ss = StatisticValues.builder() .maximum(4.0) .minimum(1.0) .sampleCount(4.0) .sum(10.0) .build(); MetricDatum metricDatum = MetricDatum.builder() .metricName("TestMetricName") .statisticValues(ss) .dimension(new Dimension("TestDimension", "FAKE")) .unit(Unit.COUNT) .build(); HttpRequest request = binder.bindToRequest(request(), ImmutableSet.of(metricDatum)); Assert.assertEquals(request.getPayload().getRawContent(), "MetricData.member.1.Dimensions.member.1.Name=TestDimension" + "&MetricData.member.1.Dimensions.member.1.Value=FAKE" + "&MetricData.member.1.MetricName=TestMetricName" + "&MetricData.member.1.StatisticValues.Maximum=4.0" + "&MetricData.member.1.StatisticValues.Minimum=1.0" + "&MetricData.member.1.StatisticValues.SampleCount=4.0" + "&MetricData.member.1.StatisticValues.Sum=10.0" + "&MetricData.member.1.Unit=" + Unit.COUNT.toString()); }
apiWhenMetricsWithOptionsExist.getMetricApiForRegion(null).list( ListMetricsOptions.Builder .dimension(new Dimension(EC2Constants.Dimension.INSTANCE_ID, "SOMEINSTANCEID")) .metricName(EC2Constants.MetricName.CPU_UTILIZATION)