You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2021/05/12 03:07:52 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2268]metrics
add requests and latency for endpoint (#2374)
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new a937dc7 [SCB-2268]metrics add requests and latency for endpoint (#2374)
a937dc7 is described below
commit a937dc78ce8fb1d0a677a95ddb793bb8c6762ec8
Author: bao liu <bi...@qq.com>
AuthorDate: Wed May 12 11:07:41 2021 +0800
[SCB-2268]metrics add requests and latency for endpoint (#2374)
---
.../vertx/metrics/DefaultHttpClientMetrics.java | 1 +
.../vertx/metrics/DefaultHttpServerMetrics.java | 17 +++++------
.../metrics/metric/DefaultEndpointMetric.java | 20 +++++++++++++
.../metrics/metric/DefaultHttpSocketMetric.java | 5 ++++
.../metrics/TestDefaultHttpClientMetrics.java | 18 ------------
.../metrics/TestDefaultHttpServerMetrics.java | 15 ----------
.../loadbalance/LoadbalanceHandler.java | 1 +
.../loadbalance/SessionStickinessRule.java | 4 +--
.../metrics/core/meter/vertx/EndpointMeter.java | 26 ++++++++++++++++-
.../core/publish/ClientEndpointsLogPublisher.java | 14 +++++++--
.../core/publish/ServerEndpointsLogPublisher.java | 14 +++++++--
.../metrics/core/TestVertxMetersInitializer.java | 33 ++++++++++++++++------
12 files changed, 110 insertions(+), 58 deletions(-)
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpClientMetrics.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpClientMetrics.java
index 0e0dc12..0ed3e9e 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpClientMetrics.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpClientMetrics.java
@@ -98,6 +98,7 @@ public class DefaultHttpClientMetrics implements
@Override
public void responseEnd(DefaultHttpSocketMetric requestMetric, HttpClientResponse response) {
+ requestMetric.responseEnd();
}
@Override
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpServerMetrics.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpServerMetrics.java
index 259db3b..d6bcb33 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpServerMetrics.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/DefaultHttpServerMetrics.java
@@ -29,7 +29,7 @@ import io.vertx.core.spi.metrics.HttpServerMetrics;
/**
* important: not singleton, every HttpServer instance relate to an HttpServerMetrics instance
*/
-public class DefaultHttpServerMetrics implements HttpServerMetrics<Object, Object, DefaultHttpSocketMetric> {
+public class DefaultHttpServerMetrics implements HttpServerMetrics<DefaultHttpSocketMetric, Object, DefaultHttpSocketMetric> {
private final DefaultServerEndpointMetric endpointMetric;
public DefaultHttpServerMetrics(DefaultServerEndpointMetric endpointMetric) {
@@ -41,28 +41,29 @@ public class DefaultHttpServerMetrics implements HttpServerMetrics<Object, Objec
}
@Override
- public Object requestBegin(DefaultHttpSocketMetric socketMetric, HttpServerRequest request) {
- return null;
+ public DefaultHttpSocketMetric requestBegin(DefaultHttpSocketMetric socketMetric, HttpServerRequest request) {
+ socketMetric.requestBegin();
+ return socketMetric;
}
@Override
- public void requestReset(Object requestMetric) {
+ public void requestReset(DefaultHttpSocketMetric requestMetric) {
}
@Override
- public Object responsePushed(DefaultHttpSocketMetric socketMetric, HttpMethod method, String uri,
+ public DefaultHttpSocketMetric responsePushed(DefaultHttpSocketMetric socketMetric, HttpMethod method, String uri,
HttpServerResponse response) {
return null;
}
@Override
- public void responseEnd(Object requestMetric, HttpServerResponse response) {
-
+ public void responseEnd(DefaultHttpSocketMetric requestMetric, HttpServerResponse response) {
+ requestMetric.responseEnd();
}
@Override
- public Object connected(DefaultHttpSocketMetric socketMetric, Object requestMetric, ServerWebSocket serverWebSocket) {
+ public Object connected(DefaultHttpSocketMetric socketMetric, DefaultHttpSocketMetric requestMetric, ServerWebSocket serverWebSocket) {
return null;
}
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultEndpointMetric.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultEndpointMetric.java
index 9a475fc..e30ed96 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultEndpointMetric.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultEndpointMetric.java
@@ -36,6 +36,10 @@ public class DefaultEndpointMetric {
private LongAdder bytesWritten = new LongAdder();
+ private LongAdder requests = new LongAdder();
+
+ private LongAdder latency = new LongAdder();
+
public DefaultEndpointMetric(String address) {
this.address = address;
}
@@ -79,4 +83,20 @@ public class DefaultEndpointMetric {
public void addBytesWritten(long bytes) {
bytesWritten.add(bytes);
}
+
+ public void incrementRequests() {
+ requests.increment();
+ }
+
+ public long getRequests() {
+ return requests.longValue();
+ }
+
+ public void addLatency(long delta) {
+ latency.add(delta);
+ }
+
+ public long getLatency() {
+ return latency.longValue();
+ }
}
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultHttpSocketMetric.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultHttpSocketMetric.java
index dfc5a5f..b91be92 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultHttpSocketMetric.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/metrics/metric/DefaultHttpSocketMetric.java
@@ -45,4 +45,9 @@ public class DefaultHttpSocketMetric extends DefaultTcpSocketMetric {
public void requestEnd() {
this.requestEndTime = System.nanoTime();
}
+
+ public void responseEnd() {
+ this.endpointMetric.incrementRequests();
+ this.endpointMetric.addLatency(System.nanoTime() - this.requestBeginTime);
+ }
}
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpClientMetrics.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpClientMetrics.java
index 8c1aebe..3ce6acb 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpClientMetrics.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpClientMetrics.java
@@ -289,22 +289,4 @@ public class TestDefaultHttpClientMetrics {
Assert.assertEquals(2, socketMetric.getRequestBeginTime());
Assert.assertEquals(3, socketMetric.getRequestEndTime());
}
-
- @SuppressWarnings("deprecation")
- @Test
- public void meaningless() {
- Assert.assertTrue(clientMetrics_a.isEnabled());
-
- clientMetrics_a.createEndpoint(null, 0, 0);
- clientMetrics_a.closeEndpoint(null, 0, null);
- clientMetrics_a.endpointDisconnected(endpointMetric_a_1, null);
- clientMetrics_a.responseBegin(null, null);
- clientMetrics_a.responsePushed(null, null, null, null, null);
- clientMetrics_a.requestReset(null);
- clientMetrics_a.responseEnd(null, null);
- clientMetrics_a.connected(null, null, null);
- clientMetrics_a.disconnected(null);
- clientMetrics_a.exceptionOccurred(null, null, null);
- clientMetrics_a.close();
- }
}
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpServerMetrics.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpServerMetrics.java
index ed69229..60f2d00 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpServerMetrics.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/metrics/TestDefaultHttpServerMetrics.java
@@ -187,19 +187,4 @@ public class TestDefaultHttpServerMetrics {
Assert.assertEquals(3, endpointMetric1.getBytesWritten());
Assert.assertEquals(12, endpointMetric2.getBytesWritten());
}
-
- @SuppressWarnings("deprecation")
- @Test
- public void meaningless() {
- Assert.assertTrue(metrics_listen1_server1.isEnabled());
-
- metrics_listen1_server1.requestBegin(null, null);
- metrics_listen1_server1.requestReset(null);
- metrics_listen1_server1.responsePushed(null, null, null, null);
- metrics_listen1_server1.responseEnd(null, null);
- metrics_listen1_server1.connected((DefaultHttpSocketMetric) null, null, null);
- metrics_listen1_server1.disconnected(null);
- metrics_listen1_server1.exceptionOccurred(null, null, null);
- metrics_listen1_server1.close();
- }
}
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
index 58dd4c0..3576e3b 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
@@ -282,6 +282,7 @@ public class LoadbalanceHandler implements Handler {
// this stats is for WeightedResponseTimeRule
chosenLB.getLoadBalancerStats().noteResponseTime(server, (System.currentTimeMillis() - time));
if (isFailedResponse(resp)) {
+ // this stats is for SessionStickinessRule
chosenLB.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(server);
ServiceCombLoadBalancerStats.INSTANCE.markFailure(server);
} else {
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java
index a854a83..f997a97 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java
@@ -106,9 +106,9 @@ public class SessionStickinessRule implements RuleExt {
if (stats != null && stats.getServerStats() != null && stats.getServerStats().size() > 0) {
ServerStats serverStats = stats.getSingleServerStat(lastServer);
- int successiveFaildCount = serverStats.getSuccessiveConnectionFailureCount();
+ int successiveFailedCount = serverStats.getSuccessiveConnectionFailureCount();
if (Configuration.INSTANCE.getSuccessiveFailedTimes(microserviceName) > 0
- && successiveFaildCount >= Configuration.INSTANCE.getSuccessiveFailedTimes(microserviceName)) {
+ && successiveFailedCount >= Configuration.INSTANCE.getSuccessiveFailedTimes(microserviceName)) {
serverStats.clearSuccessiveConnectionFailureCount();
return true;
}
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/EndpointMeter.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/EndpointMeter.java
index 8789a61..080e442 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/EndpointMeter.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/EndpointMeter.java
@@ -17,6 +17,7 @@
package org.apache.servicecomb.metrics.core.meter.vertx;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import org.apache.servicecomb.foundation.vertx.metrics.metric.DefaultEndpointMetric;
@@ -24,6 +25,8 @@ import com.netflix.spectator.api.Id;
import com.netflix.spectator.api.Measurement;
public class EndpointMeter {
+ private static final double SNV_MILLI_SECONDS = 1.0 / TimeUnit.MILLISECONDS.toNanos(1L);
+
public static final String ADDRESS = "address";
public static final String STATISTIC = "statistic";
@@ -38,6 +41,10 @@ public class EndpointMeter {
public static final String BYTES_WRITTEN = "bytesWritten";
+ public static final String REQUESTS = "requests";
+
+ public static final String LATENCY = "latency";
+
protected Id id;
private Id idConnect;
@@ -50,6 +57,10 @@ public class EndpointMeter {
private Id idBytesWritten;
+ private Id idRequests;
+
+ private Id idLatency;
+
protected DefaultEndpointMetric metric;
private long lastConnectCount;
@@ -60,14 +71,20 @@ public class EndpointMeter {
private long lastBytesWritten;
+ private long lastRequests;
+
+ private long lastLatency;
+
public EndpointMeter(Id id, DefaultEndpointMetric metric) {
- id = id.withTag(ADDRESS, metric.getAddress().toString());
+ id = id.withTag(ADDRESS, metric.getAddress());
this.id = id;
idConnect = id.withTag(STATISTIC, CONNECT_COUNT);
idDisconnect = id.withTag(STATISTIC, DISCONNECT_COUNT);
idConnections = id.withTag(STATISTIC, CONNECTIONS);
idBytesRead = id.withTag(STATISTIC, BYTES_READ);
idBytesWritten = id.withTag(STATISTIC, BYTES_WRITTEN);
+ idRequests = id.withTag(STATISTIC, REQUESTS);
+ idLatency = id.withTag(STATISTIC, LATENCY);
this.metric = metric;
}
@@ -84,16 +101,23 @@ public class EndpointMeter {
long disconnectCount = metric.getDisconnectCount();
long bytesRead = metric.getBytesRead();
long bytesWritten = metric.getBytesWritten();
+ long requests = metric.getRequests();
+ long latency = metric.getLatency();
measurements.add(newMeasurement(idConnect, msNow, connectCount - lastConnectCount));
measurements.add(newMeasurement(idDisconnect, msNow, disconnectCount - lastDisconnectCount));
measurements.add(newMeasurement(idConnections, msNow, connectCount - disconnectCount));
measurements.add(newMeasurement(idBytesRead, msNow, (bytesRead - lastBytesRead) / secondInterval));
measurements.add(newMeasurement(idBytesWritten, msNow, (bytesWritten - lastBytesWritten) / secondInterval));
+ measurements.add(newMeasurement(idRequests, msNow, (requests - lastRequests) / secondInterval));
+ measurements.add(newMeasurement(idLatency, msNow,
+ requests - lastRequests == 0 ? 0 : (latency - lastLatency) / (requests - lastRequests) * SNV_MILLI_SECONDS));
this.lastConnectCount = connectCount;
this.lastDisconnectCount = disconnectCount;
this.lastBytesRead = bytesRead;
this.lastBytesWritten = bytesWritten;
+ this.lastRequests = requests;
+ this.lastLatency = latency;
}
}
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ClientEndpointsLogPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ClientEndpointsLogPublisher.java
index 6b6b482..969dedd 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ClientEndpointsLogPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ClientEndpointsLogPublisher.java
@@ -33,12 +33,14 @@ public class ClientEndpointsLogPublisher extends AbstractMeasurementNodeLogPubli
@Override
public void print(boolean printDetail) {
appendLine(sb, " client.endpoints:");
- appendLine(sb, " connectCount disconnectCount queue connections send(Bps) receive(Bps) remote");
+ appendLine(sb, " connectCount disconnectCount queue connections requests latency send(Bps) receive(Bps) remote");
double connect = 0;
double disconnect = 0;
double queue = 0;
double connections = 0;
+ double requests = 0;
+ double latency = 0;
double readSize = 0;
double writeSize = 0;
for (MeasurementNode address : measurementNode.getChildren().values()) {
@@ -46,15 +48,19 @@ public class ClientEndpointsLogPublisher extends AbstractMeasurementNodeLogPubli
disconnect += address.findChild(EndpointMeter.DISCONNECT_COUNT).summary();
queue += address.findChild(HttpClientEndpointMeter.QUEUE_COUNT).summary();
connections += address.findChild(EndpointMeter.CONNECTIONS).summary();
+ requests += address.findChild(EndpointMeter.REQUESTS).summary();
+ latency += address.findChild(EndpointMeter.LATENCY).summary();
readSize += address.findChild(EndpointMeter.BYTES_READ).summary();
writeSize += address.findChild(EndpointMeter.BYTES_WRITTEN).summary();
if (printDetail) {
- appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-9s %-12s %s",
+ appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-8.0f %-7.0f %-9s %-12s %s",
address.findChild(EndpointMeter.CONNECT_COUNT).summary(),
address.findChild(EndpointMeter.DISCONNECT_COUNT).summary(),
address.findChild(HttpClientEndpointMeter.QUEUE_COUNT).summary(),
address.findChild(EndpointMeter.CONNECTIONS).summary(),
+ address.findChild(EndpointMeter.REQUESTS).summary(),
+ address.findChild(EndpointMeter.LATENCY).summary(),
NetUtils.humanReadableBytes((long) address.findChild(EndpointMeter.BYTES_WRITTEN).summary()),
NetUtils.humanReadableBytes((long) address.findChild(EndpointMeter.BYTES_READ).summary()),
address.getName()
@@ -62,11 +68,13 @@ public class ClientEndpointsLogPublisher extends AbstractMeasurementNodeLogPubli
}
}
- appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-9s %-12s %s",
+ appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-8.0f %-7.0f %-9s %-12s %s",
connect,
disconnect,
queue,
connections,
+ requests,
+ latency,
NetUtils.humanReadableBytes((long) writeSize),
NetUtils.humanReadableBytes((long) readSize),
"(summary)"
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ServerEndpointsLogPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ServerEndpointsLogPublisher.java
index bcf35dc..616c2d9 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ServerEndpointsLogPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/ServerEndpointsLogPublisher.java
@@ -34,12 +34,14 @@ public class ServerEndpointsLogPublisher extends AbstractMeasurementNodeLogPubli
public void print(boolean printDetail) {
appendLine(sb, " server.endpoints:");
appendLine(sb,
- " connectCount disconnectCount rejectByLimit connections send(Bps) receive(Bps) listen");
+ " connectCount disconnectCount rejectByLimit connections requests latency send(Bps) receive(Bps) listen");
double connect = 0;
double disconnect = 0;
double reject = 0;
double connections = 0;
+ double requests = 0;
+ double latency = 0;
double readSize = 0;
double writeSize = 0;
for (MeasurementNode address : measurementNode.getChildren().values()) {
@@ -47,15 +49,19 @@ public class ServerEndpointsLogPublisher extends AbstractMeasurementNodeLogPubli
disconnect += address.findChild(EndpointMeter.DISCONNECT_COUNT).summary();
reject += address.findChild(ServerEndpointMeter.REJECT_BY_CONNECTION_LIMIT).summary();
connections += address.findChild(EndpointMeter.CONNECTIONS).summary();
+ requests += address.findChild(EndpointMeter.REQUESTS).summary();
+ latency += address.findChild(EndpointMeter.LATENCY).summary();
readSize += address.findChild(EndpointMeter.BYTES_READ).summary();
writeSize += address.findChild(EndpointMeter.BYTES_WRITTEN).summary();
if (printDetail) {
- appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-9s %-12s %s",
+ appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-8.0f %-7.0f %-9s %-12s %s",
address.findChild(EndpointMeter.CONNECT_COUNT).summary(),
address.findChild(EndpointMeter.DISCONNECT_COUNT).summary(),
address.findChild(ServerEndpointMeter.REJECT_BY_CONNECTION_LIMIT).summary(),
address.findChild(EndpointMeter.CONNECTIONS).summary(),
+ address.findChild(EndpointMeter.REQUESTS).summary(),
+ address.findChild(EndpointMeter.LATENCY).summary(),
NetUtils.humanReadableBytes((long) address.findChild(EndpointMeter.BYTES_WRITTEN).summary()),
NetUtils.humanReadableBytes((long) address.findChild(EndpointMeter.BYTES_READ).summary()),
address.getName()
@@ -63,11 +69,13 @@ public class ServerEndpointsLogPublisher extends AbstractMeasurementNodeLogPubli
}
}
- appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-9s %-12s %s",
+ appendLine(sb, " %-12.0f %-15.0f %-13.0f %-11.0f %-8.0f %-7.0f %-9s %-12s %s",
connect,
disconnect,
reject,
connections,
+ requests,
+ latency,
NetUtils.humanReadableBytes((long) writeSize),
NetUtils.humanReadableBytes((long) readSize),
"(summary)"
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
index f10c010..daf54a7 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
@@ -144,6 +144,9 @@ public class TestVertxMetersInitializer {
int idx = actual.indexOf("vertx:\n");
actual = actual.substring(idx);
+ String clientLatency;
+ String serverLatency;
+
String expect = "vertx:\n"
+ " instances:\n"
+ " name eventLoopContext-created\n"
@@ -152,18 +155,32 @@ public class TestVertxMetersInitializer {
+ " transport 0\n"
+ " transport:\n"
+ " client.endpoints:\n"
- + " connectCount disconnectCount queue connections send(Bps) receive(Bps) remote\n";
+ + " connectCount disconnectCount queue connections requests latency send(Bps) receive(Bps) remote\n";
+
+ int clientLatencyIndex = actual.indexOf("1 0 0 1 1 ")
+ + "1 0 0 1 1 ".length();
+ clientLatency = actual.substring(clientLatencyIndex, actual.indexOf(" ", clientLatencyIndex));
+ int serverLatencyIndex = actual.lastIndexOf("1 0 0 1 1 ")
+ + "1 0 0 1 1 ".length();
+ serverLatency = actual.substring(serverLatencyIndex, actual.indexOf(" ", serverLatencyIndex));
+
if (printDetail) {
- expect += String.format(
- " 1 0 0 1 4 21 127.0.0.1:%-5s\n",
- port);
+ expect +=
+ " 1 0 0 1 1 %-7s 4 21 127.0.0.1:%-5s\n";
}
expect += ""
- + " 1 0 0 1 4 21 (summary)\n"
+ + " 1 0 0 1 1 %-7s 4 21 (summary)\n"
+ " server.endpoints:\n"
- + " connectCount disconnectCount rejectByLimit connections send(Bps) receive(Bps) listen\n"
- + " 1 0 0 1 21 4 0.0.0.0:0\n"
- + " 1 0 0 1 21 4 (summary)\n\n";
+ + " connectCount disconnectCount rejectByLimit connections requests latency send(Bps) receive(Bps) listen\n"
+ + " 1 0 0 1 1 %-7s 21 4 0.0.0.0:0\n"
+ + " 1 0 0 1 1 %-7s 21 4 (summary)\n\n";
+
+ if (printDetail) {
+ expect = String.format(expect, clientLatency, port, clientLatency, serverLatency, serverLatency);
+ } else {
+ expect = String.format(expect, clientLatency, serverLatency, serverLatency);
+ }
+
Assert.assertEquals(expect, actual);
}
}