summaryrefslogtreecommitdiffstats
path: root/container-disc
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2019-01-17 14:03:30 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-01-22 12:26:50 +0100
commit7c70fd0bdc75e7d356c5555b0e79344ab0524f41 (patch)
tree85d51dcffa4207e3f3985abed5e259a100d2c414 /container-disc
parent20ef532261c7cfdad784e0dc6b804434be2b263a (diff)
Propagate jrt transport metrics to metrics framework
Diffstat (limited to 'container-disc')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java44
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java3
2 files changed, 47 insertions, 0 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
new file mode 100644
index 00000000000..01709844f6a
--- /dev/null
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/JrtMetrics.java
@@ -0,0 +1,44 @@
+// Copyright 2019 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+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.*;
+
+/**
+ * Emits jrt metrics
+ *
+ * @author bjorncs
+ */
+class JrtMetrics {
+
+ private final TransportMetrics transportMetrics = TransportMetrics.getInstance();
+ private final Metric metric;
+ private volatile Snapshot previousSnapshot;
+
+ JrtMetrics(Metric metric) {
+ this.metric = metric;
+ }
+
+ 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);
+ 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);
+ }
+}
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
index 98787eaeeeb..e11622b1fa3 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
@@ -88,11 +88,13 @@ public class MetricUpdater extends AbstractComponent {
private final Metric metric;
private final ContainerWatchdogMetrics containerWatchdogMetrics;
private final GarbageCollectionMetrics garbageCollectionMetrics;
+ private final JrtMetrics jrtMetrics;
public UpdaterTask(Metric metric, ContainerWatchdogMetrics containerWatchdogMetrics) {
this.metric = metric;
this.containerWatchdogMetrics = containerWatchdogMetrics;
this.garbageCollectionMetrics = new GarbageCollectionMetrics(Clock.systemUTC());
+ this.jrtMetrics = new JrtMetrics(metric);
}
@SuppressWarnings("deprecation")
@@ -109,6 +111,7 @@ public class MetricUpdater extends AbstractComponent {
containerWatchdogMetrics.emitMetrics(metric);
garbageCollectionMetrics.emitMetrics(metric);
+ jrtMetrics.emitMetrics();
}
}