public static Map<String, String> buildAttributes(MetricId id, String type) { ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); builder.putAll(id.getTags()); builder.put("metric_type", type); return builder.build(); }
private BatchBuilder createBuilder( final List<Batch.Point> points, final long timestamp, final MetricId id, final String metricType ) { final String key = joinKeys(prefix, id); final String unit = getUnit(id.getTags()); return new BatchBuilder(points, timestamp, key, id.getTags(), unit, metricType); }
/** * Join the specified set of metric names. * * @param parts Multiple metric names to join using the separator. * @return A newly created metric name which has the name of the specified parts and includes * all tags of all child metric names. **/ public static MetricId join(MetricId... parts) { final StringBuilder nameBuilder = new StringBuilder(); final Map<String, String> tags = new HashMap<String, String>(); boolean first = true; for (MetricId part : parts) { final String name = part.getKey(); if (name != null && !name.isEmpty()) { if (first) { first = false; } else { nameBuilder.append(SEPARATOR); } nameBuilder.append(name); } if (!part.getTags().isEmpty()) { tags.putAll(part.getTags()); } } return new MetricId(nameBuilder.toString(), tags); }
final Map<String, String> commonTags = tagExtractor.addTags(prefix.getTags()); final Batch batch = new Batch(commonTags, points);
private void reportGauge( MetricId key, @SuppressWarnings("rawtypes") Gauge value ) { if (value == null) { return; } key = MetricId.join(prefix, key); final Metric m = FastForward .metric(key.getKey()) .attributes(key.getTags()) .attribute(METRIC_TYPE, "gauge"); send(m.value(convert(value.getValue()))); }
private void reportDerivingMeter(MetricId key, DerivingMeter value) { key = MetricId.join(prefix, key); final Metric m = FastForward .metric(key.getKey()) .attributes(key.getTags()) .attribute(METRIC_TYPE, "deriving-meter"); reportMetered(m, value); }
private void reportMetered(MetricId key, Meter value) { key = MetricId.join(prefix, key); final Metric m = FastForward .metric(key.getKey()) .attributes(key.getTags()) .attribute(METRIC_TYPE, "meter"); reportMetered(m, value); reportCounter(key, value); }
private void reportHistogram(MetricId key, Histogram value) { key = MetricId.join(prefix, key); final Metric m = FastForward .metric(key.getKey()) .attributes(key.getTags()) .attribute(METRIC_TYPE, "histogram"); reportHistogram(m, value.getSnapshot()); }
private void reportCounter(MetricId key, Counting value) { key = MetricId.join(prefix, key); final Metric m = FastForward .metric(key.getKey()) .attributes(key.getTags()) .attribute(METRIC_TYPE, "counter"); send(m.value(value.getCount())); }
private void reportTimer(MetricId key, Timer value) { key = MetricId.join(prefix, key); final Metric m = FastForward .metric(key.getKey()) .attributes(key.getTags()) .attribute(METRIC_TYPE, "timer") .attribute("unit", "ns"); reportMetered(m, value); reportHistogram(m, value.getSnapshot()); }