Example usage for com.amazonaws.services.cloudwatch.model StandardUnit Milliseconds

List of usage examples for com.amazonaws.services.cloudwatch.model StandardUnit Milliseconds

Introduction

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

Prototype

StandardUnit Milliseconds

To view the source code for com.amazonaws.services.cloudwatch.model StandardUnit Milliseconds.

Click Source Link

Usage

From source file:com.amazon.kinesis.streaming.agent.metrics.AbstractMetricsScope.java

License:Open Source License

@Override
public void addTimeMillis(String name, long duration) {
    addData(name, duration, StandardUnit.Milliseconds);
}

From source file:com.amediamanager.metrics.MetricAspect.java

License:Apache License

protected void emitMetrics(String service, String operation, long startTime, Throwable exception) {
    final MetricDatum latency = newDatum(service, operation, startTime).withMetricName("Latency")
            .withUnit(StandardUnit.Milliseconds).withValue((double) System.currentTimeMillis() - startTime);
    metricBatcher.addDatum("AMM", latency);

    final MetricDatum success = newDatum(service, operation, startTime).withMetricName("Success")
            .withValue(exception == null ? 1.0 : 0.0).withUnit(StandardUnit.Count);
    metricBatcher.addDatum("AMM", success);
}

From source file:com.github.lpezet.antiope.metrics.aws.spi.PredefinedMetricTransformer.java

License:Open Source License

/**
 * Returns all the latency metric data recorded for the specified metric
 * event type; or an empty list if there is none. The number of metric datum
 * in the returned list should be exactly one when there is no retries, or
 * more than one when there are retries.
 * /* www  .  j  a v a2 s .c o m*/
 * @param pIncludesRequestType
 *            true iff the "request" dimension is to be included;
 */
protected List<MetricDatum> latencyMetricOf(MetricType pMetricType, Request<?> pReq, Object pResponse,
        boolean pIncludesRequestType) {
    IMetrics m = pReq.getMetrics();
    TimingInfo oRoot = m.getTimingInfo();
    final String oMetricName = pMetricType.name();
    List<TimingInfo> oSubMeasures = oRoot.getAllSubMeasurements(oMetricName);
    if (oSubMeasures != null) {
        List<MetricDatum> oResult = new ArrayList<MetricDatum>(oSubMeasures.size());
        for (TimingInfo oSub : oSubMeasures) {
            if (oSub.isEndTimeKnown()) { // being defensive
                List<Dimension> oDims = new ArrayList<Dimension>();
                oDims.add(new Dimension().withName(Dimensions.MetricType.name()).withValue(oMetricName));
                // Either a non request type specific datum is created per
                // sub-measurement, or a request type specific one is 
                // created but not both
                if (pIncludesRequestType) {
                    oDims.add(new Dimension().withName(Dimensions.RequestType.name())
                            .withValue(requestType(pReq)));
                }
                MetricDatum oDatum = new MetricDatum().withMetricName(pReq.getServiceName())
                        .withDimensions(oDims).withUnit(StandardUnit.Milliseconds)
                        .withValue(oSub.getTimeTakenMillisIfKnown());
                oResult.add(oDatum);
            }
        }
        return oResult;
    }
    return Collections.emptyList();
}

From source file:com.github.lpezet.antiope.metrics.aws.spi.PredefinedMetricTransformer.java

License:Open Source License

/**
 * Returns a request type specific metrics for
 * {@link Field#ClientExecuteTime} which is special in the sense that it
 * makes a more accurate measurement by taking the {@link TimingInfo} at the
 * root into account./*from w w w. j a  va2s  .c  o  m*/
 */
protected List<MetricDatum> latencyOfClientExecuteTime(Request<?> pReq, Object pResponse) {
    IMetrics m = pReq.getMetrics();
    TimingInfo oRoot = m.getTimingInfo();
    final String oMetricName = Field.ClientExecuteTime.name();
    if (oRoot.isEndTimeKnown()) { // being defensive
        List<Dimension> oDims = new ArrayList<Dimension>();
        oDims.add(new Dimension().withName(Dimensions.MetricType.name()).withValue(oMetricName));
        // request type specific
        oDims.add(new Dimension().withName(Dimensions.RequestType.name()).withValue(requestType(pReq)));
        MetricDatum oDatum = new MetricDatum().withMetricName(pReq.getServiceName()).withDimensions(oDims)
                .withUnit(StandardUnit.Milliseconds).withValue(oRoot.getTimeTakenMillisIfKnown());
        return Collections.singletonList(oDatum);
    }
    return Collections.emptyList();
}

From source file:io.micrometer.cloudwatch.CloudWatchMeterRegistry.java

License:Apache License

private StandardUnit toStandardUnit(@Nullable String unit) {
    if (unit == null) {
        return StandardUnit.None;
    }/*from w w  w  .j  a va2  s .  c o m*/
    switch (unit.toLowerCase()) {
    case "bytes":
        return StandardUnit.Bytes;
    case "milliseconds":
        return StandardUnit.Milliseconds;
    case "count":
        return StandardUnit.Count;
    }
    return StandardUnit.None;
}

From source file:org.onebusaway.aws.monitoring.impl.metrics.WebappMetricsImpl.java

License:Apache License

@Override
public void publishVehicleMonitoringMetrics() {
    MetricResponse metricResponse = getUrlWithResponseTime(vehicle_monitoring_url);
    publishMetric(MetricName.VehicleMonitoringResponseTime, StandardUnit.Milliseconds,
            metricResponse.getResponseTime());
    publishMetric(MetricName.VehicleMonitoringErrorResponse, StandardUnit.Count, metricResponse.getMetric());
}

From source file:org.onebusaway.aws.monitoring.impl.metrics.WebappMetricsImpl.java

License:Apache License

@Override
public void publishStopMonitoringMetrics() {
    MetricResponse metricResponse = getUrlWithResponseTime(stop_monitoring_url);
    publishMetric(MetricName.StopMonitoringResponseTime, StandardUnit.Milliseconds,
            metricResponse.getResponseTime());
    publishMetric(MetricName.StopMonitoringErrorResponse, StandardUnit.Count, metricResponse.getMetric());
}

From source file:org.onebusaway.aws.monitoring.impl.metrics.WebappMetricsImpl.java

License:Apache License

@Override
public void publishSmsApiMetrics() {
    MetricResponse metricResponse = getUrlWithResponseTime(sms_webapp_url);
    publishMetric(MetricName.SMSWebappResponseTime, StandardUnit.Milliseconds,
            metricResponse.getResponseTime());
    publishMetric(MetricName.SMSWebappErrorResponse, StandardUnit.Count, metricResponse.getMetric());
}

From source file:org.springframework.cloud.aws.actuate.metrics.CloudWatchMetricWriter.java

License:Apache License

protected static MetricDatum createMetricDatumForUnknownValue(Metric<?> value) {
    String name = value.getName();
    MetricDatum metricDatum = new MetricDatum().withMetricName(name).withTimestamp(value.getTimestamp());

    if (name.contains("timer.") && !name.contains("gauge.") && !name.contains("counter.")) {
        // Duration
        metricDatum.withValue(value.getValue().doubleValue()).withUnit(StandardUnit.Milliseconds);
    } else {/*from   w  w w.ja  v  a 2 s  . com*/
        // Simple value
        metricDatum.withValue(value.getValue().doubleValue()).withUnit(StandardUnit.Count);
    }

    return metricDatum;
}

From source file:org.web.online.cloudwatch.tomcat.valve.ElapsedTimeAggregator.java

License:Apache License

/**
 * Construct the instance. Sets up the Cloud Watch metric with the given parameters.
 * /*w w w . j  a va  2 s  .  c o m*/
 * @param namespace namespace value to use to push data to CloudWatch
 * @param region region used to look for instance tags and to push CloudWatch data
 * @param instanceId instanceId to use as dimension
 * @param asgName autoscaling group name to use as dimension
 * @param ec2Client ec2 client to use in querying tags to find ASG name
 * @param cloudWatchClient cloud watch client to use to push CloudWatch data
 */
public ElapsedTimeAggregator(String namespace, Region region, String instanceId, String asgName,
        AmazonEC2 ec2Client, AmazonCloudWatch cloudWatchClient) {

    this.region = region;

    if (instanceId == null) {
        throw new IllegalStateException("unable to find instance id");
    }

    // get the ASG name
    if (asgName == null) {
        ec2Client.setRegion(region);
        List<TagDescription> tagDescriptions = ec2Client.describeTags(new DescribeTagsRequest().withFilters(
                new Filter().withName("resource-id").withValues(instanceId),
                new Filter().withName("key").withValues("aws:autoscaling:groupName"))).getTags();
        if (tagDescriptions.size() == 1) {
            asgName = tagDescriptions.get(0).getValue();
        }
    }

    if (asgName == null) {
        log.warn("unable to determine AutoScalingGroupName for " + instanceId
                + ". No statistics will be published under the AutoScalingGroupName dimension");
    }

    cloudWatchClient.setRegion(region);
    this.cloudWatchClient = cloudWatchClient;

    String metricName = "ElapsedTime";
    Dimension instanceDimension = new Dimension().withName("InstanceId").withValue(instanceId);
    StatisticSet statisticSet = new StatisticSet();

    // set up the static MetricDatum and associate to the PutMetricDataRequest
    MetricDatum instanceMetricDatum = new MetricDatum().withMetricName(metricName)
            .withDimensions(instanceDimension).withStatisticValues(statisticSet)
            .withUnit(StandardUnit.Milliseconds);
    putMetricDataRequest = new PutMetricDataRequest().withNamespace(namespace)
            .withMetricData(instanceMetricDatum);

    // and a special zero value request since statistic set doesn't
    // support zero values
    MetricDatum zeroValueInstanceMetricDatum = new MetricDatum().withMetricName(metricName)
            .withDimensions(instanceDimension).withValue(0d).withUnit(StandardUnit.Milliseconds);
    zeroValuePutMetricDataRequest = new PutMetricDataRequest().withNamespace(namespace)
            .withMetricData(zeroValueInstanceMetricDatum);

    // also push metrics for the ASG dimension if we have an ASG name
    if (asgName != null) {
        Dimension asgDimension = new Dimension().withName("AutoScalingGroupName").withValue(asgName);
        MetricDatum asgMetricDatum = new MetricDatum().withMetricName(metricName).withDimensions(asgDimension)
                .withStatisticValues(statisticSet).withUnit(StandardUnit.Milliseconds);
        putMetricDataRequest.withMetricData(asgMetricDatum);
        MetricDatum zeroValueAsgMetricDatum = new MetricDatum().withMetricName(metricName)
                .withDimensions(asgDimension).withValue(0d).withUnit(StandardUnit.Milliseconds);
        zeroValuePutMetricDataRequest.withMetricData(zeroValueAsgMetricDatum);
    }
}