summaryrefslogtreecommitdiffstats
path: root/container-disc
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2019-01-21 13:58:19 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-01-22 12:26:50 +0100
commite7a2b1be18fa1b9238ec863f8b99cb73183c3afd (patch)
treedf53e3fa450442e4ea677453ae20bce10ee83a8a /container-disc
parent485f81f1eb9200511b22c7f984363592567b1508 (diff)
Add calculation of metrics changes since previous snapshot
- Move metric diff calculation to TransportMetrics.Snapshot. - Remove TransportMetrics.reset() and use changesSince() instead in EchoTest. - Remove unnecessary volatile modifier on JrtMetrics.previousSnapshot. - Initialize JrtMetrics.previousSnapshot in constructor. - Use separate field declarations for fields in TransportMetrics.Snapshot.
Diffstat (limited to 'container-disc')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java27
1 files changed, 9 insertions, 18 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java
index 6bebaedc28b..1fff1b2ab33 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java
@@ -4,9 +4,7 @@ package com.yahoo.container.jdisc.metric;
import com.yahoo.jdisc.Metric;
import com.yahoo.jrt.TransportMetrics;
-import java.util.function.ToLongFunction;
-
-import static com.yahoo.jrt.TransportMetrics.*;
+import static com.yahoo.jrt.TransportMetrics.Snapshot;
/**
* Emits jrt metrics
@@ -17,7 +15,7 @@ class JrtMetrics {
private final TransportMetrics transportMetrics = TransportMetrics.getInstance();
private final Metric metric;
- private volatile Snapshot previousSnapshot;
+ private Snapshot previousSnapshot = transportMetrics.snapshot();
JrtMetrics(Metric metric) {
this.metric = metric;
@@ -25,20 +23,13 @@ class JrtMetrics {
void emitMetrics() {
Snapshot snapshot = transportMetrics.snapshot();
- increment("jrt.transport.tls-certificate-verification-failures", Snapshot::tlsCertificateVerificationFailures, snapshot);
- increment("jrt.transport.peer-authorization-failures", Snapshot::peerAuthorizationFailures, snapshot);
- increment("jrt.transport.server.tls-connections-established", Snapshot::serverTlsConnectionsEstablished, snapshot);
- increment("jrt.transport.client.tls-connections-established", Snapshot::clientTlsConnectionsEstablished, snapshot);
- increment("jrt.transport.server.unencrypted-connections-established", Snapshot::serverUnencryptedConnectionsEstablished, snapshot);
- increment("jrt.transport.client.unencrypted-connections-established", Snapshot::clientUnencryptedConnectionsEstablished, snapshot);
+ Snapshot changesSincePrevious = snapshot.changesSince(previousSnapshot);
+ metric.add("jrt.transport.tls-certificate-verification-failures", changesSincePrevious.tlsCertificateVerificationFailures(), null);
+ metric.add("jrt.transport.peer-authorization-failures", changesSincePrevious.peerAuthorizationFailures(), null);
+ metric.add("jrt.transport.server.tls-connections-established", changesSincePrevious.serverTlsConnectionsEstablished(), null);
+ metric.add("jrt.transport.client.tls-connections-established", changesSincePrevious.clientTlsConnectionsEstablished(), null);
+ metric.add("jrt.transport.server.unencrypted-connections-established", changesSincePrevious.serverUnencryptedConnectionsEstablished(), null);
+ metric.add("jrt.transport.client.unencrypted-connections-established", changesSincePrevious.clientUnencryptedConnectionsEstablished(), null);
previousSnapshot = snapshot;
}
-
- private void increment(String metricName, ToLongFunction<Snapshot> metricGetter, Snapshot snapshot) {
- long currentValue = metricGetter.applyAsLong(snapshot);
- long increment = previousSnapshot != null
- ? currentValue - metricGetter.applyAsLong(previousSnapshot)
- : currentValue;
- metric.add(metricName, increment, null);
- }
}