/** * <p> * The unit of the metric. * </p> * * @param unit * The unit of the metric. * @see StandardUnit */ public void setUnit(StandardUnit unit) { withUnit(unit); }
.withName(Dimensions.MetricType.name()) .withValue(metricType.name())) .withUnit(StandardUnit.Count) .withValue(Double.valueOf(count)) .withTimestamp(endTimestamp(ti)))
.withMetricName(req.getServiceName()) .withDimensions(dims) .withUnit(StandardUnit.Count) .withValue(units); return Collections.singletonList(datum);
.withName(metric.getDimensionName()) .withValue(metric.name())) .withUnit(unit) .withValue((double) val)
protected List<MetricDatum> metricOfCount( Field metricType, Request<?> req, Object resp) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo ti = m.getTimingInfo(); Number counter = ti.getCounter(metricType.name()); if (counter == null) { return Collections.emptyList(); } final double count = counter.doubleValue(); if (count < 1) { return Collections.emptyList(); } else { return Collections.singletonList(new MetricDatum() .withMetricName(req.getServiceName()) .withDimensions(new Dimension() .withName(Dimensions.MetricType.name()) .withValue(metricType.name())) .withUnit(StandardUnit.Count) .withValue(Double.valueOf(count)) .withTimestamp(endTimestamp(ti))) ; } }
.withMetricName(req.getServiceName()) .withDimensions(metricDimension) .withUnit(StandardUnit.Count) .withValue(Double.valueOf(count)) .withTimestamp(endTimestamp(ti));
.withUnit(StandardUnit.None) .withValue(data_point) .withDimensions(dimension);
.withMetricName(req.getServiceName()) .withDimensions(dims) .withUnit(StandardUnit.Milliseconds) .withValue(sub.getTimeTakenMillisIfKnown()); result.add(datum);
/** * 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. */ protected List<MetricDatum> latencyOfClientExecuteTime(Request<?> req, Object response) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo root = m.getTimingInfo(); final String metricName = Field.ClientExecuteTime.name(); if (root.isEndTimeKnown()) { // being defensive List<Dimension> dims = new ArrayList<Dimension>(); dims.add(new Dimension() .withName(Dimensions.MetricType.name()) .withValue(metricName)); // request type specific dims.add(new Dimension() .withName(Dimensions.RequestType.name()) .withValue(requestType(req))); MetricDatum datum = new MetricDatum() .withMetricName(req.getServiceName()) .withDimensions(dims) .withUnit(StandardUnit.Milliseconds) .withValue(root.getTimeTakenMillisIfKnown()); return Collections.singletonList(datum); } return Collections.emptyList(); }
MetricDatum createMetricDatum(Metric metric) { MetricDatum metricDatum = new MetricDatum(); return metricDatum.withMetricName(metric.getConfig().getName()) .withDimensions(createDimensions(metric.getConfig().getTags())) .withUnit("None")//DataSourceTypeToAwsUnit.getUnit(metric.)) .withTimestamp(new Date(metric.getTimestamp())) .withValue(truncate(metric.getNumberValue())); //TODO Need to convert into reasonable units based on DataType }
@Override public void collectLatency(ServiceLatencyProvider provider) { final ServiceMetricType type = provider.getServiceMetricType(); final Set<MetricType> metrics = AwsSdkMetrics.getPredefinedMetrics(); if (metrics.contains(type)) { final Dimension dim = new Dimension() .withName(Dimensions.MetricType.name()) .withValue(type.name()); final MetricDatum datum = new MetricDatum() .withMetricName(type.getServiceName()) .withDimensions(dim) .withUnit(StandardUnit.Milliseconds) .withValue(provider.getDurationMilli()); safeAddMetricsToQueue(datum); } }
/** * Returns a new metric datum cloned from the given metric datum, but * replacing the dimensions with the newly specified ones. */ public static MetricDatum newMetricDatum(MetricDatum from, Dimension ... dimensions) { return new MetricDatum() .withMetricName(from.getMetricName()) .withDimensions(dimensions) .withUnit(from.getUnit()) .withValue(from.getValue()) .withStatisticValues(from.getStatisticValues()) .withTimestamp(from.getTimestamp()) ; } }
/** * Returns a metric datum cloned from the given one. * Made package private only for testing purposes. */ final MetricDatum cloneMetricDatum(MetricDatum md) { return new MetricDatum() .withDimensions(md.getDimensions()) // a new collection is created .withMetricName(md.getMetricName()) .withStatisticValues(md.getStatisticValues()) .withTimestamp(md.getTimestamp()) .withUnit(md.getUnit()) .withValue(md.getValue()); }
.withMetricName(throughputType.getServiceName()) .withDimensions(throughputDimension) .withUnit(StandardUnit.BytesSecond) .withValue(bytesPerSec); safeAddMetricsToQueue(throughputDatum); .withMetricName(byteCountType.getServiceName()) .withDimensions(byteCountDimension) .withUnit(StandardUnit.Bytes) .withValue(byteCount); safeAddMetricsToQueue(byteCountDatum);
.withDimensions(datum.getDimensions()) .withMetricName(metricName) .withUnit(datum.getUnit()) .withStatisticValues(new StatisticSet() .withMaximum(value)
@Override public MetricDatum apply(MetricDatum datum) { return datum.withValue((double) diff).withUnit(StandardUnit.Count); } }));
private void addDatum(String name, double value, LinkedList<PutMetricDataRequest> requests, Date timestamp) { if (logger.isDebugEnabled()) { logger.debug("Adding Datum {} with value {} at {}", name, value, timestamp); } if (requests.isEmpty() || requests.getLast().getMetricData().size() == MAX_CLOUDWATCH_DATUM_PER_REQUEST) { requests.add(createRequest()); } PutMetricDataRequest request = requests.getLast(); MetricDatum datum = new MetricDatum().withTimestamp(timestamp).withValue(value).withMetricName(name).withUnit(StandardUnit.None).withDimensions(createDimensions()); request.withMetricData(datum); }
private MetricDatum createCapacityUnitMetricDatumAndResetCounter(Date now, double count, String name) { return new MetricDatum() .withDimensions(tableDimension) .withMetricName(name) .withStorageResolution(1) .withUnit(StandardUnit.Count) .withTimestamp(now) .withValue(count); }
@Nullable private MetricDatum metricDatum(Meter.Id id, @Nullable String suffix, @Nullable String unit, double value) { if (Double.isNaN(value)) { return null; } List<Tag> tags = id.getConventionTags(config().namingConvention()); return new MetricDatum() .withMetricName(getMetricName(id, suffix)) .withDimensions(toDimensions(tags)) .withTimestamp(new Date(wallTime)) .withValue(CloudWatchUtils.clampMetricValue(value)) .withUnit(toStandardUnit(unit)); }
MetricDatum createMetricDatum(Metric metric) { MetricDatum metricDatum = new MetricDatum(); return metricDatum.withMetricName(metric.getConfig().getName()) .withDimensions(createDimensions(metric.getConfig().getTags())) .withUnit("None")//DataSourceTypeToAwsUnit.getUnit(metric.)) .withTimestamp(new Date(metric.getTimestamp())) .withValue(truncate(metric.getNumberValue())); //TODO Need to convert into reasonable units based on DataType }