aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java')
-rw-r--r--vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java93
1 files changed, 24 insertions, 69 deletions
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java b/vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java
index 3b1ab38737d..84fe1691e4b 100644
--- a/vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java
+++ b/vespaclient-java/src/main/java/com/yahoo/vespafeeder/ProgressPrinter.java
@@ -4,12 +4,7 @@ package com.yahoo.vespafeeder;
import com.yahoo.clientmetrics.MessageTypeMetricSet;
import com.yahoo.clientmetrics.RouteMetricSet;
import com.yahoo.concurrent.Timer;
-import com.yahoo.metrics.Metric;
-import com.yahoo.metrics.MetricSet;
-import com.yahoo.metrics.MetricVisitor;
-import com.yahoo.metrics.SumMetric;
-import java.io.IOException;
import java.io.PrintStream;
import java.math.RoundingMode;
import java.text.NumberFormat;
@@ -24,8 +19,16 @@ public class ProgressPrinter implements RouteMetricSet.ProgressCallback {
private long lastVerboseProgress = 0;
final Timer timer;
final PrintStream output;
+ final NumberFormat format;
public ProgressPrinter(Timer timer, PrintStream output) {
+ format = NumberFormat.getNumberInstance(Locale.US);
+ format.setMaximumFractionDigits(2);
+ format.setMinimumFractionDigits(2);
+ format.setMinimumIntegerDigits(1);
+ format.setParseIntegerOnly(false);
+ format.setRoundingMode(RoundingMode.HALF_UP);
+ format.setGroupingUsed(false);
this.timer = timer;
this.output = output;
@@ -34,58 +37,15 @@ public class ProgressPrinter implements RouteMetricSet.ProgressCallback {
lastVerboseProgress = startTime;
}
- class PrintVisitor extends MetricVisitor {
- final PrintStream out;
- final NumberFormat format;
-
- PrintVisitor(PrintStream out) {
- this.out = out;
- format = NumberFormat.getNumberInstance(Locale.US);
- format.setMaximumFractionDigits(2);
- format.setMinimumFractionDigits(2);
- format.setMinimumIntegerDigits(1);
- format.setParseIntegerOnly(false);
- format.setRoundingMode(RoundingMode.HALF_UP);
- format.setGroupingUsed(false);
- }
-
- @Override
- public boolean visitMetricSet(MetricSet set, boolean autoGenerated) {
- if (set instanceof MessageTypeMetricSet && !set.getName().equals("total")) {
- Metric m = set.getMetric("latency");
- Metric count = set.getMetric("count");
- Metric err = set.getMetric("errors.total");
-
- long okCount = 0, errCount = 0, ignored = 0;
- long minLatency = 0, maxLatency = 0, avgLatency = 0;
-
- if (m != null) {
- minLatency = m.getLongValue("min");
- maxLatency = m.getLongValue("max");
- avgLatency = m.getLongValue("average");
- }
- if (count != null) {
- okCount = count.getLongValue("count");
- }
- Metric ignoredMetric = set.getMetric("ignored");
- if (ignoredMetric != null) {
- ignored = ignoredMetric.getLongValue("count");
- }
-
- if (err != null) {
- errCount = err.getLongValue("count");
- }
-
- long timeSinceStart = timer.milliTime() - startTime;
-
- out.println(((MessageTypeMetricSet)set).getMessageName() + ":\t" +
- "ok: " + okCount +
- " msgs/sec: " + format.format((double)okCount * 1000 / timeSinceStart) +
- " failed: " + errCount +
- " ignored: " + ignored +
- " latency(min, max, avg): " + minLatency + ", " + maxLatency + ", " + avgLatency);
- }
- return true;
+ private void printMetrics(PrintStream out, RouteMetricSet metrics) {
+ for (MessageTypeMetricSet m : metrics.getMetrics().values()) {
+ long timeSinceStart = timer.milliTime() - startTime;
+ out.println(m.getMessageName() + ":\t" +
+ "ok: " + m.count +
+ " msgs/sec: " + format.format((double)m.count * 1000 / timeSinceStart) +
+ " failed: " + m.errorCount +
+ " ignored: " + m.ignored +
+ " latency(min, max, avg): " + m.latency_min + ", " + m.latency_max + ", " + m.latency_total/Long.max(1L, m.count));
}
}
@@ -98,25 +58,20 @@ public class ProgressPrinter implements RouteMetricSet.ProgressCallback {
return dashes;
}
- public synchronized void renderStatusText(RouteMetricSet metrics, PrintStream stream) throws IOException {
- String headline = "Messages sent to vespa (route " + metrics.getName() + ") :";
+ public synchronized void renderStatusText(RouteMetricSet metrics, PrintStream stream) {
+ String headline = "Messages sent to vespa (route " + metrics.getRoute() + ") :";
stream.println(headline);
stream.println(getDashes(headline.length()));
- metrics.visit(new PrintVisitor(stream), false);
+ printMetrics(stream, metrics);
}
public long getOkMessageCount(RouteMetricSet metrics) {
- SumMetric sum = (SumMetric)metrics.getMetric("total");
-
- MetricSet ms = (MetricSet)sum.generateSum();
- if (ms != null) {
- Metric latency = ms.getMetric("latency");
- if (latency != null) {
- return latency.getLongValue("count");
- }
+ long count = 0;
+ for (MessageTypeMetricSet m : metrics.getMetrics().values()) {
+ count += m.count;
}
- return 0;
+ return count;
}
@Override