List of usage examples for com.amazonaws.services.cloudwatch.model PutMetricDataRequest setNamespace
public void setNamespace(String namespace)
The namespace for the metric data.
From source file:com.amazon.kinesis.streaming.agent.metrics.DefaultCWMetricsPublisher.java
License:Open Source License
@Override public void publishMetrics(List<MetricDatumWithKey<CWMetricKey>> dataToPublish) { for (int startIndex = 0; startIndex < dataToPublish.size(); startIndex += BATCH_SIZE) { int endIndex = Math.min(dataToPublish.size(), startIndex + BATCH_SIZE); PutMetricDataRequest request = new PutMetricDataRequest(); request.setNamespace(namespace); List<MetricDatum> metricData = new ArrayList<MetricDatum>(); for (int i = startIndex; i < endIndex; i++) { MetricDatum metric = dataToPublish.get(i).datum; if (!metric.getMetricName().startsWith(".")) metricData.add(dataToPublish.get(i).datum); }//from w w w. j a va 2s . c o m if (metricData.isEmpty()) return; request.setMetricData(metricData); try { cloudWatchClient.putMetricData(request); LOG.info(String.format("Successfully published %d datums.", endIndex - startIndex)); } catch (AmazonClientException e) { LOG.warn(String.format("Could not publish %d datums to CloudWatch", endIndex - startIndex), e); } } }
From source file:com.basistech.metrics.CloudWatchReporter.java
License:Open Source License
@Override public void report(SortedMap<String, Gauge> gauges, SortedMap<String, Counter> counters, SortedMap<String, Histogram> histograms, SortedMap<String, Meter> meters, SortedMap<String, Timer> timers) { Collection<MetricDatum> data = new ArrayList<>(); for (Map.Entry<String, Gauge> meg : gauges.entrySet()) { if (meg.getValue().getValue() instanceof Number) { Number num = (Number) meg.getValue().getValue(); double val = num.doubleValue(); if (LOG.isDebugEnabled()) { LOG.debug("gauge {} val {}", meg.getKey(), val); }/* www.j a v a2s . c o m*/ data.add(new MetricDatum().withMetricName(meg.getKey()).withValue(val).withDimensions(dimensions)); } } for (Map.Entry<String, Counter> mec : counters.entrySet()) { if (LOG.isDebugEnabled()) { LOG.debug("counter {} val {}", mec.getKey(), mec.getValue().getCount()); } data.add(new MetricDatum().withMetricName(mec.getKey()).withValue((double) mec.getValue().getCount()) .withDimensions(dimensions)); } for (Map.Entry<String, Histogram> meh : histograms.entrySet()) { reportHistogram(data, meh); } for (Map.Entry<String, Timer> met : timers.entrySet()) { reportTimer(met.getKey(), data, met); } if (!data.isEmpty()) { PutMetricDataRequest put = new PutMetricDataRequest(); put.setNamespace(namespace); put.setMetricData(data); try { client.putMetricData(put); } catch (Throwable t) { LOG.error("Failed to put metrics", t); } } }
From source file:com.mulesoft.agent.monitoring.publisher.CloudwatchMonitorPublisher.java
License:Open Source License
@Override public boolean flush(@NotNull Collection<List<Metric>> listOfMetrics) { AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); AmazonCloudWatchAsyncClient cloudWatchClient = new AmazonCloudWatchAsyncClient(credentials); for (List<Metric> metrics : listOfMetrics) { List<MetricDatum> cloudWatchMetrics = transformMetrics(metrics); PutMetricDataRequest putMetricDataRequest = new PutMetricDataRequest(); putMetricDataRequest.setMetricData(cloudWatchMetrics); putMetricDataRequest.setNamespace(namespace); cloudWatchClient.putMetricData(putMetricDataRequest); }//w ww . j a va 2 s .c o m return true; }
From source file:com.netflix.bdp.s3mper.alert.impl.CloudWatchAlertDispatcher.java
License:Apache License
private void sendCloudWatchConsistencyAlert() { MetricDatum datum = new MetricDatum(); datum.setMetricName(cloudWatchConsistencyMetric); datum.setUnit(StandardUnit.Count);//from w w w . j a v a2s . c om datum.setValue(1.0); PutMetricDataRequest request = new PutMetricDataRequest(); request.setNamespace(namespace); request.setMetricData(Collections.singleton(datum)); cloudWatch.putMetricData(request); }
From source file:com.netflix.bdp.s3mper.alert.impl.CloudWatchAlertDispatcher.java
License:Apache License
private void sendCloudWatchTimeoutAlert() { MetricDatum datum = new MetricDatum(); datum.setMetricName(cloudWatchTimeoutMetric); datum.setUnit(StandardUnit.Count);/*from w w w . java 2 s . c o m*/ datum.setValue(1.0); PutMetricDataRequest request = new PutMetricDataRequest(); request.setNamespace(namespace); request.setMetricData(Collections.singleton(datum)); cloudWatch.putMetricData(request); }
From source file:com.nextdoor.bender.monitoring.cw.CloudwatchReporter.java
License:Apache License
@Override public void write(ArrayList<Stat> stats, long invokeTimeMs, Set<Tag> tags) { Date dt = new Date(); dt.setTime(invokeTimeMs);//from w w w. j av a2s . c o m Collection<Dimension> parentDims = tagsToDimensions(tags); List<MetricDatum> metrics = new ArrayList<MetricDatum>(); /* * Create CW metric objects from bender internal Stat objects */ for (Stat stat : stats) { /* * Dimension are CW's version of metric tags. A conversion must be done. */ Collection<Dimension> metricDims = tagsToDimensions(stat.getTags()); metricDims.addAll(parentDims); MetricDatum metric = new MetricDatum(); metric.setMetricName(stat.getName()); // TODO: add units to Stat object SYSTEMS-870 metric.setUnit(StandardUnit.None); metric.setTimestamp(dt); metric.setDimensions(metricDims); metric.setValue((double) stat.getValue()); metrics.add(metric); } /* * Not very well documented in java docs but CW only allows 20 metrics at a time. */ List<List<MetricDatum>> chunks = ListUtils.partition(metrics, 20); for (List<MetricDatum> chunk : chunks) { PutMetricDataRequest req = new PutMetricDataRequest(); req.withMetricData(chunk); req.setNamespace(namespace); this.client.putMetricData(req); } }
From source file:com.pinterest.arcee.autoscaling.AwsAlarmManager.java
License:Apache License
private void sendMetricsInternal(Collection<MetricDatum> metricData, String groupName) throws Exception { PutMetricDataRequest request = new PutMetricDataRequest(); request.setMetricData(metricData);//from ww w . j a v a 2s . c o m request.setNamespace(getNameSpace(groupName)); Exception lastException = null; for (int retry = 0; retry < TOTAL_RETRY; retry++) { try { acwClient.putMetricData(request); return; } catch (InternalServiceException e) { lastException = e; LOG.error("Failed to put metrics to aws: ", e); } } throw lastException; }