Example usage for com.amazonaws.services.cloudwatch.model PutMetricDataRequest setNamespace

List of usage examples for com.amazonaws.services.cloudwatch.model PutMetricDataRequest setNamespace

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudwatch.model PutMetricDataRequest setNamespace.

Prototype


public void setNamespace(String namespace) 

Source Link

Document

The namespace for the metric data.

Usage

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;
}