@Override public double getMean() { return snapshot.getMean(); }
public static String histogramStr(AsmHistogramSnapshot snapshot) { StringBuilder sb = new StringBuilder(128); sb.append("histogram"); Snapshot s = snapshot.getSnapshot(); sb.append("(").append("id:").append(snapshot.getMetricId()).append(",min:").append(s.getMin()).append(",max:") .append(s.getMax()).append(",mean:").append(s.getMean()).append(",p50:").append(s.getMedian()) .append(",p75:").append(s.get75thPercentile()).append(",p95:").append(s.get95thPercentile()).append(",p98:") .append(s.get98thPercentile()).append(",p99:").append(s.get99thPercentile()).append(")"); return sb.toString(); }
@Override public Double getValue() { Snapshot snapshot = processedDurationHistogram.getSnapshot(); double meanProcessTime = snapshot.getMean(); int numProcessed = snapshot.getValues().length; return (numProcessed * meanProcessTime) / timeUnit.toMillis(window); } }
/** @return an abbreviated summary of {@code hist}. */ public static String getShortHistogramReport(final Histogram hist) { Snapshot sn = hist.getSnapshot(); return "mean=" + DOUBLE_FORMAT.format(sn.getMean()) + ", min=" + DOUBLE_FORMAT.format(sn.getMin()) + ", max=" + DOUBLE_FORMAT.format(sn.getMax()) + ", stdDev=" + DOUBLE_FORMAT.format(sn.getStdDev()) + ", 95th=" + DOUBLE_FORMAT.format(sn.get95thPercentile()) + ", 99th=" + DOUBLE_FORMAT.format(sn.get99thPercentile()); }
private void writeSnapshot(JsonGenerator json, Snapshot snapshot) throws IOException { json.writeNumberField("max", snapshot.getMax()); json.writeNumberField("mean", snapshot.getMean()); json.writeNumberField("min", snapshot.getMin()); json.writeNumberField("stddev", snapshot.getStdDev()); json.writeNumberField("median", snapshot.getMedian()); json.writeNumberField("p75", snapshot.get75thPercentile()); json.writeNumberField("p95", snapshot.get95thPercentile()); json.writeNumberField("p98", snapshot.get98thPercentile()); json.writeNumberField("p99", snapshot.get99thPercentile()); json.writeNumberField("p999", snapshot.get999thPercentile()); }
/** @return a summary of {@code hist}. */ public static String getHistogramReport(final Histogram hist) { Snapshot sn = hist.getSnapshot(); return "mean=" + DOUBLE_FORMAT.format(sn.getMean()) + ", min=" + DOUBLE_FORMAT.format(sn.getMin()) + ", max=" + DOUBLE_FORMAT.format(sn.getMax()) + ", stdDev=" + DOUBLE_FORMAT.format(sn.getStdDev()) + ", 50th=" + DOUBLE_FORMAT.format(sn.getMedian()) + ", 75th=" + DOUBLE_FORMAT.format(sn.get75thPercentile()) + ", 95th=" + DOUBLE_FORMAT.format(sn.get95thPercentile()) + ", 99th=" + DOUBLE_FORMAT.format(sn.get99thPercentile()) + ", 99.9th=" + DOUBLE_FORMAT.format(sn.get999thPercentile()) + ", 99.99th=" + DOUBLE_FORMAT.format(sn.getValue(0.9999)) + ", 99.999th=" + DOUBLE_FORMAT.format(sn.getValue(0.99999)); }
private void printHistogram(Histogram histogram) { Snapshot snapshot = histogram.getSnapshot(); output.printf(locale, " min = %d%n", snapshot.getMin()); output.printf(locale, " max = %d%n", snapshot.getMax()); output.printf(locale, " mean = %2.2f%n", snapshot.getMean()); output.printf(locale, " stddev = %2.2f%n", snapshot.getStdDev()); output.printf(locale, " median = %2.2f%n", snapshot.getMedian()); output.printf(locale, " 75%% <= %2.2f%n", snapshot.get75thPercentile()); output.printf(locale, " 95%% <= %2.2f%n", snapshot.get95thPercentile()); output.printf(locale, " 98%% <= %2.2f%n", snapshot.get98thPercentile()); output.printf(locale, " 99%% <= %2.2f%n", snapshot.get99thPercentile()); output.printf(locale, " 99.9%% <= %2.2f%n", snapshot.get999thPercentile()); output.printf(locale, " count = %d%n", histogram.getCount()); } }
public static Map<String, Object> buildHistogramMap(Histogram h) { Map<String, Object> metrics = Maps.newHashMap(); if (h == null) { return metrics; } Map<String, Object> time = Maps.newHashMap(); time.put("max", h.getSnapshot().getMax()); time.put("min", h.getSnapshot().getMin()); time.put("mean", (long) h.getSnapshot().getMean()); time.put("95th_percentile", (long) h.getSnapshot().get95thPercentile()); time.put("98th_percentile", (long) h.getSnapshot().get98thPercentile()); time.put("99th_percentile", (long) h.getSnapshot().get99thPercentile()); time.put("std_dev", (long) h.getSnapshot().getStdDev()); metrics.put("time", time); metrics.put("count", h.getCount()); return metrics; }
public static double getSnapshotDefaultValue(AsmSnapshot snapshot) { if (snapshot instanceof AsmCounterSnapshot) { return ((AsmCounterSnapshot) snapshot).getV(); } else if (snapshot instanceof AsmGaugeSnapshot) { return ((AsmGaugeSnapshot) snapshot).getV(); } else if (snapshot instanceof AsmMeterSnapshot) { return ((AsmMeterSnapshot) snapshot).getM1(); } else if (snapshot instanceof AsmHistogramSnapshot) { return ((AsmHistogramSnapshot) snapshot).getSnapshot().getMean(); } return 0; }
private void writeTimedSnapshot(JsonGenerator json, Snapshot snapshot) throws IOException { json.writeNumberField("max", convertDuration(snapshot.getMax())); json.writeNumberField("mean", convertDuration(snapshot.getMean())); json.writeNumberField("min", convertDuration(snapshot.getMin())); json.writeNumberField("stddev", convertDuration(snapshot.getStdDev())); json.writeNumberField("median", convertDuration(snapshot.getMedian())); json.writeNumberField("p75", convertDuration(snapshot.get75thPercentile())); json.writeNumberField("p95", convertDuration(snapshot.get95thPercentile())); json.writeNumberField("p98", convertDuration(snapshot.get98thPercentile())); json.writeNumberField("p99", convertDuration(snapshot.get99thPercentile())); json.writeNumberField("p999", convertDuration(snapshot.get999thPercentile())); }
private static void assertSummary(Map<String, ?> map, String property, int expectedCount) { assertThat(((Counting) map.get(clientMetricNameWithStatus(property, 200))).getCount()) .isEqualTo(expectedCount); assertThat(((Sampling) map.get(clientMetricNameWithStatus(property, 200))).getSnapshot().getMean()) .isPositive(); assertThat(((Counting) map.get(serverMetricNameWithStatus(property, 200))).getCount()) .isEqualTo(expectedCount); assertThat(((Sampling) map.get(serverMetricNameWithStatus(property, 200))).getSnapshot().getMean()) .isPositive(); }
private void printHistogramSnapshot(Snapshot snapshot, StringBuilder sb) { printDouble(snapshot.getMean(), sb); printDouble(snapshot.getMin(), sb); printDouble(snapshot.getMax(), sb); printDouble(snapshot.getStdDev(), sb); printDouble(snapshot.getMedian(), sb); printDouble(snapshot.get75thPercentile(), sb); printDouble(snapshot.get95thPercentile(), sb); printDouble(snapshot.get98thPercentile(), sb); printDouble(snapshot.get99thPercentile(), sb); printDouble(snapshot.get999thPercentile(), sb); }
private void writeHistogramSnapshot(Snapshot snapshot, JsonGenerator jg) throws IOException { writeDoubleUnlessNaN(jg, "min", snapshot.getMin()); writeDoubleUnlessNaN(jg, "max", snapshot.getMax()); writeDoubleUnlessNaN(jg, "mean", snapshot.getMean()); writeDoubleUnlessNaN(jg, "p50", snapshot.getMedian()); writeDoubleUnlessNaN(jg, "std", snapshot.getStdDev()); writeDoubleUnlessNaN(jg, "p25", snapshot.getValue(0.25)); writeDoubleUnlessNaN(jg, "p75", snapshot.get75thPercentile()); writeDoubleUnlessNaN(jg, "p95", snapshot.get95thPercentile()); writeDoubleUnlessNaN(jg, "p98", snapshot.get98thPercentile()); writeDoubleUnlessNaN(jg, "p99", snapshot.get99thPercentile()); writeDoubleUnlessNaN(jg, "p999", snapshot.get999thPercentile()); }
private String reportTimerSnapshot(Snapshot snapshot) { return "min=" + getDuration(snapshot.getMin()) + "," + "max=" + getDuration(snapshot.getMax()) + "," + "mean=" + getDuration(snapshot.getMean()) + "," + "p50=" + getDuration(snapshot.getMedian()) + "," + "std=" + getDuration(snapshot.getStdDev()) + "," + "p25=" + getDuration(snapshot.getValue(0.25)) + "," + "p75=" + getDuration(snapshot.get75thPercentile()) + "," + "p95=" + getDuration(snapshot.get95thPercentile()) + "," + "p98=" + getDuration(snapshot.get98thPercentile()) + "," + "p99=" + getDuration(snapshot.get99thPercentile()) + "," + "p999=" + getDuration(snapshot.get999thPercentile()); }
private void reportHistogram(Metric metric, Snapshot snapshot) { send(metric.attribute("stat", "min").value(snapshot.getMin())); send(metric.attribute("stat", "max").value(snapshot.getMax())); send(metric.attribute("stat", "mean").value(snapshot.getMean())); send(metric.attribute("stat", "stddev").value(snapshot.getStdDev())); send(metric.attribute("stat", "median").value(snapshot.getMedian())); send(metric.attribute("stat", "p75").value(snapshot.get75thPercentile())); send(metric.attribute("stat", "p99").value(snapshot.get99thPercentile())); }
private void printTimerSnapshot(Snapshot snapshot, StringBuilder sb) { printDouble(convertDuration(snapshot.getMean()), sb); printDouble(convertDuration(snapshot.getMin()), sb); printDouble(convertDuration(snapshot.getMax()), sb); printDouble(convertDuration(snapshot.getStdDev()), sb); printDouble(convertDuration(snapshot.getMedian()), sb); printDouble(convertDuration(snapshot.get75thPercentile()), sb); printDouble(convertDuration(snapshot.get95thPercentile()), sb); printDouble(convertDuration(snapshot.get98thPercentile()), sb); printDouble(convertDuration(snapshot.get99thPercentile()), sb); printDouble(convertDuration(snapshot.get999thPercentile()), sb); }
private void reportSnapshot(String prefix, String name, Snapshot snapshot, long timestamp, boolean convertDuration) throws IOException { String baseMetricName = getKey(prefix, name); pushMetric(getKey(baseMetricName, MIN), snapshot.getMin(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, MAX), snapshot.getMax(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, MEAN), snapshot.getMean(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, STDDEV), snapshot.getStdDev(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, MEDIAN), snapshot.getMedian(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, PERCENTILE_75TH), snapshot.get75thPercentile(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, PERCENTILE_95TH), snapshot.get95thPercentile(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, PERCENTILE_98TH), snapshot.get98thPercentile(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, PERCENTILE_99TH), snapshot.get99thPercentile(), convertDuration, timestamp); pushMetric(getKey(baseMetricName, PERCENTILE_999TH), snapshot.get999thPercentile(), convertDuration, timestamp); }
private void writeTimerSnapshot(Snapshot snapshot, JsonGenerator jg) throws IOException { writeDoubleUnlessNaN(jg, "min", convertDuration(snapshot.getMin())); writeDoubleUnlessNaN(jg, "max", convertDuration(snapshot.getMax())); writeDoubleUnlessNaN(jg, "mean", convertDuration(snapshot.getMean())); writeDoubleUnlessNaN(jg, "p50", convertDuration(snapshot.getMedian())); writeDoubleUnlessNaN(jg, "std", convertDuration(snapshot.getStdDev())); writeDoubleUnlessNaN(jg, "p25", convertDuration(snapshot.getValue(0.25))); writeDoubleUnlessNaN(jg, "p75", convertDuration(snapshot.get75thPercentile())); writeDoubleUnlessNaN(jg, "p95", convertDuration(snapshot.get95thPercentile())); writeDoubleUnlessNaN(jg, "p98", convertDuration(snapshot.get98thPercentile())); writeDoubleUnlessNaN(jg, "p99", convertDuration(snapshot.get99thPercentile())); writeDoubleUnlessNaN(jg, "p999", convertDuration(snapshot.get999thPercentile())); }