aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java15
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java4
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java8
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java74
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java63
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java26
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListener.java19
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java39
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java11
9 files changed, 131 insertions, 128 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
index 31a8303ab4b..82c445c7ca9 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
@@ -2,7 +2,6 @@
package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.jdisc.http.HttpRequest;
-import com.yahoo.jdisc.http.server.jetty.JettyHttpServer.Metrics;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.server.AsyncContextEvent;
import org.eclipse.jetty.server.Handler;
@@ -51,13 +50,13 @@ public class HttpResponseStatisticsCollector extends HandlerWrapper implements G
}
private static final String[] HTTP_RESPONSE_GROUPS = {
- Metrics.RESPONSES_1XX,
- Metrics.RESPONSES_2XX,
- Metrics.RESPONSES_3XX,
- Metrics.RESPONSES_4XX,
- Metrics.RESPONSES_5XX,
- Metrics.RESPONSES_401,
- Metrics.RESPONSES_403
+ MetricDefinitions.RESPONSES_1XX,
+ MetricDefinitions.RESPONSES_2XX,
+ MetricDefinitions.RESPONSES_3XX,
+ MetricDefinitions.RESPONSES_4XX,
+ MetricDefinitions.RESPONSES_5XX,
+ MetricDefinitions.RESPONSES_401,
+ MetricDefinitions.RESPONSES_403
};
private final AtomicLong inFlight = new AtomicLong();
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java
index dfbcfb741f5..8ffc6759ae7 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java
@@ -87,8 +87,8 @@ class JDiscHttpServlet extends HttpServlet {
request.setAttribute(JDiscServerConnector.REQUEST_ATTRIBUTE, getConnector(request));
Metric.Context metricContext = getMetricContext(request);
- context.metric.add(JettyHttpServer.Metrics.NUM_REQUESTS, 1, metricContext);
- context.metric.add(JettyHttpServer.Metrics.JDISC_HTTP_REQUESTS, 1, metricContext);
+ context.metric.add(MetricDefinitions.NUM_REQUESTS, 1, metricContext);
+ context.metric.add(MetricDefinitions.JDISC_HTTP_REQUESTS, 1, metricContext);
String method = request.getMethod().toUpperCase();
if (servletSupportedMethods.contains(method)) {
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
index 824a8cda330..f82b51804a9 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
@@ -75,8 +75,8 @@ class JDiscServerConnector extends ServerConnector {
var requestDimensions = new RequestDimensions(method, scheme);
return requestMetricContextCache.computeIfAbsent(requestDimensions, ignored -> {
Map<String, Object> dimensions = createConnectorDimensions(listenPort, connectorName);
- dimensions.put(JettyHttpServer.Metrics.METHOD_DIMENSION, method);
- dimensions.put(JettyHttpServer.Metrics.SCHEME_DIMENSION, scheme);
+ dimensions.put(MetricDefinitions.METHOD_DIMENSION, method);
+ dimensions.put(MetricDefinitions.SCHEME_DIMENSION, scheme);
return metric.createContext(dimensions);
});
}
@@ -95,8 +95,8 @@ class JDiscServerConnector extends ServerConnector {
private static Map<String, Object> createConnectorDimensions(int listenPort, String connectorName) {
Map<String, Object> props = new HashMap<>();
- props.put(JettyHttpServer.Metrics.NAME_DIMENSION, connectorName);
- props.put(JettyHttpServer.Metrics.PORT_DIMENSION, listenPort);
+ props.put(MetricDefinitions.NAME_DIMENSION, connectorName);
+ props.put(MetricDefinitions.PORT_DIMENSION, listenPort);
return props;
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
index c826f52a865..ec022fab865 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
@@ -65,60 +65,6 @@ import static java.util.stream.Collectors.toList;
@Beta
public class JettyHttpServer extends AbstractServerProvider {
- public interface Metrics {
- String NAME_DIMENSION = "serverName";
- String PORT_DIMENSION = "serverPort";
- String METHOD_DIMENSION = "httpMethod";
- String SCHEME_DIMENSION = "scheme";
- String REQUEST_TYPE_DIMENSION = "requestType";
- String CLIENT_IP_DIMENSION = "clientIp";
-
- String NUM_OPEN_CONNECTIONS = "serverNumOpenConnections";
- String NUM_CONNECTIONS_OPEN_MAX = "serverConnectionsOpenMax";
- String CONNECTION_DURATION_MAX = "serverConnectionDurationMax";
- String CONNECTION_DURATION_MEAN = "serverConnectionDurationMean";
- String CONNECTION_DURATION_STD_DEV = "serverConnectionDurationStdDev";
- String NUM_PREMATURELY_CLOSED_CONNECTIONS = "jdisc.http.request.prematurely_closed";
-
- String NUM_BYTES_RECEIVED = "serverBytesReceived";
- String NUM_BYTES_SENT = "serverBytesSent";
-
- String NUM_CONNECTIONS = "serverNumConnections";
-
- /* For historical reasons, these are all aliases for the same metric. 'jdisc.http' should ideally be the only one. */
- String JDISC_HTTP_REQUESTS = "jdisc.http.requests";
- String NUM_REQUESTS = "serverNumRequests";
-
- String NUM_SUCCESSFUL_RESPONSES = "serverNumSuccessfulResponses";
- String NUM_FAILED_RESPONSES = "serverNumFailedResponses";
- String NUM_SUCCESSFUL_WRITES = "serverNumSuccessfulResponseWrites";
- String NUM_FAILED_WRITES = "serverNumFailedResponseWrites";
-
- String TOTAL_SUCCESSFUL_LATENCY = "serverTotalSuccessfulResponseLatency";
- String TOTAL_FAILED_LATENCY = "serverTotalFailedResponseLatency";
- String TIME_TO_FIRST_BYTE = "serverTimeToFirstByte";
-
- String RESPONSES_1XX = "http.status.1xx";
- String RESPONSES_2XX = "http.status.2xx";
- String RESPONSES_3XX = "http.status.3xx";
- String RESPONSES_4XX = "http.status.4xx";
- String RESPONSES_5XX = "http.status.5xx";
- String RESPONSES_401 = "http.status.401";
- String RESPONSES_403 = "http.status.403";
-
- String STARTED_MILLIS = "serverStartedMillis";
-
- String URI_LENGTH = "jdisc.http.request.uri_length";
- String CONTENT_SIZE = "jdisc.http.request.content_size";
-
- String SSL_HANDSHAKE_FAILURE_MISSING_CLIENT_CERT = "jdisc.http.ssl.handshake.failure.missing_client_cert";
- String SSL_HANDSHAKE_FAILURE_EXPIRED_CLIENT_CERT = "jdisc.http.ssl.handshake.failure.expired_client_cert";
- String SSL_HANDSHAKE_FAILURE_INVALID_CLIENT_CERT = "jdisc.http.ssl.handshake.failure.invalid_client_cert";
- String SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_PROTOCOLS = "jdisc.http.ssl.handshake.failure.incompatible_protocols";
- String SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_CIPHERS = "jdisc.http.ssl.handshake.failure.incompatible_ciphers";
- String SSL_HANDSHAKE_FAILURE_UNKNOWN = "jdisc.http.ssl.handshake.failure.unknown";
- }
-
private final static Logger log = Logger.getLogger(JettyHttpServer.class.getName());
private final long timeStarted = System.currentTimeMillis();
private final ExecutorService janitor;
@@ -365,7 +311,7 @@ public class JettyHttpServer extends AbstractServerProvider {
private void setServerMetrics(HttpResponseStatisticsCollector statisticsCollector) {
long timeSinceStarted = System.currentTimeMillis() - timeStarted;
- metric.set(Metrics.STARTED_MILLIS, timeSinceStarted, null);
+ metric.set(MetricDefinitions.STARTED_MILLIS, timeSinceStarted, null);
addResponseMetrics(statisticsCollector);
}
@@ -373,21 +319,21 @@ public class JettyHttpServer extends AbstractServerProvider {
private void addResponseMetrics(HttpResponseStatisticsCollector statisticsCollector) {
for (var metricEntry : statisticsCollector.takeStatistics()) {
Map<String, Object> dimensions = new HashMap<>();
- dimensions.put(Metrics.METHOD_DIMENSION, metricEntry.method);
- dimensions.put(Metrics.SCHEME_DIMENSION, metricEntry.scheme);
- dimensions.put(Metrics.REQUEST_TYPE_DIMENSION, metricEntry.requestType);
+ dimensions.put(MetricDefinitions.METHOD_DIMENSION, metricEntry.method);
+ dimensions.put(MetricDefinitions.SCHEME_DIMENSION, metricEntry.scheme);
+ dimensions.put(MetricDefinitions.REQUEST_TYPE_DIMENSION, metricEntry.requestType);
metric.add(metricEntry.name, metricEntry.value, metric.createContext(dimensions));
}
}
private void setConnectorMetrics(JDiscServerConnector connector) {
ConnectionStatistics statistics = connector.getStatistics();
- metric.set(Metrics.NUM_CONNECTIONS, statistics.getConnectionsTotal(), connector.getConnectorMetricContext());
- metric.set(Metrics.NUM_OPEN_CONNECTIONS, statistics.getConnections(), connector.getConnectorMetricContext());
- metric.set(Metrics.NUM_CONNECTIONS_OPEN_MAX, statistics.getConnectionsMax(), connector.getConnectorMetricContext());
- metric.set(Metrics.CONNECTION_DURATION_MAX, statistics.getConnectionDurationMax(), connector.getConnectorMetricContext());
- metric.set(Metrics.CONNECTION_DURATION_MEAN, statistics.getConnectionDurationMean(), connector.getConnectorMetricContext());
- metric.set(Metrics.CONNECTION_DURATION_STD_DEV, statistics.getConnectionDurationStdDev(), connector.getConnectorMetricContext());
+ metric.set(MetricDefinitions.NUM_CONNECTIONS, statistics.getConnectionsTotal(), connector.getConnectorMetricContext());
+ metric.set(MetricDefinitions.NUM_OPEN_CONNECTIONS, statistics.getConnections(), connector.getConnectorMetricContext());
+ metric.set(MetricDefinitions.NUM_CONNECTIONS_OPEN_MAX, statistics.getConnectionsMax(), connector.getConnectorMetricContext());
+ metric.set(MetricDefinitions.CONNECTION_DURATION_MAX, statistics.getConnectionDurationMax(), connector.getConnectorMetricContext());
+ metric.set(MetricDefinitions.CONNECTION_DURATION_MEAN, statistics.getConnectionDurationMean(), connector.getConnectorMetricContext());
+ metric.set(MetricDefinitions.CONNECTION_DURATION_STD_DEV, statistics.getConnectionDurationStdDev(), connector.getConnectorMetricContext());
}
private StatisticsHandler newStatisticsHandler() {
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java
new file mode 100644
index 00000000000..a11716ca66e
--- /dev/null
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricDefinitions.java
@@ -0,0 +1,63 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.jdisc.http.server.jetty;
+
+/**
+ * Name and dimensions for jdisc/container metrics
+ *
+ * @author bjorncs
+ */
+class MetricDefinitions {
+ static final String NAME_DIMENSION = "serverName";
+ static final String PORT_DIMENSION = "serverPort";
+ static final String METHOD_DIMENSION = "httpMethod";
+ static final String SCHEME_DIMENSION = "scheme";
+ static final String REQUEST_TYPE_DIMENSION = "requestType";
+ static final String CLIENT_IP_DIMENSION = "clientIp";
+
+ static final String NUM_OPEN_CONNECTIONS = "serverNumOpenConnections";
+ static final String NUM_CONNECTIONS_OPEN_MAX = "serverConnectionsOpenMax";
+ static final String CONNECTION_DURATION_MAX = "serverConnectionDurationMax";
+ static final String CONNECTION_DURATION_MEAN = "serverConnectionDurationMean";
+ static final String CONNECTION_DURATION_STD_DEV = "serverConnectionDurationStdDev";
+ static final String NUM_PREMATURELY_CLOSED_CONNECTIONS = "jdisc.http.request.prematurely_closed";
+
+ static final String NUM_BYTES_RECEIVED = "serverBytesReceived";
+ static final String NUM_BYTES_SENT = "serverBytesSent";
+
+ static final String NUM_CONNECTIONS = "serverNumConnections";
+
+ /* For historical reasons, these are all aliases for the same metric. 'jdisc.http' should ideally be the only one. */
+ static final String JDISC_HTTP_REQUESTS = "jdisc.http.requests";
+ static final String NUM_REQUESTS = "serverNumRequests";
+
+ static final String NUM_SUCCESSFUL_RESPONSES = "serverNumSuccessfulResponses";
+ static final String NUM_FAILED_RESPONSES = "serverNumFailedResponses";
+ static final String NUM_SUCCESSFUL_WRITES = "serverNumSuccessfulResponseWrites";
+ static final String NUM_FAILED_WRITES = "serverNumFailedResponseWrites";
+
+ static final String TOTAL_SUCCESSFUL_LATENCY = "serverTotalSuccessfulResponseLatency";
+ static final String TOTAL_FAILED_LATENCY = "serverTotalFailedResponseLatency";
+ static final String TIME_TO_FIRST_BYTE = "serverTimeToFirstByte";
+
+ static final String RESPONSES_1XX = "http.status.1xx";
+ static final String RESPONSES_2XX = "http.status.2xx";
+ static final String RESPONSES_3XX = "http.status.3xx";
+ static final String RESPONSES_4XX = "http.status.4xx";
+ static final String RESPONSES_5XX = "http.status.5xx";
+ static final String RESPONSES_401 = "http.status.401";
+ static final String RESPONSES_403 = "http.status.403";
+
+ static final String STARTED_MILLIS = "serverStartedMillis";
+
+ static final String URI_LENGTH = "jdisc.http.request.uri_length";
+ static final String CONTENT_SIZE = "jdisc.http.request.content_size";
+
+ static final String SSL_HANDSHAKE_FAILURE_MISSING_CLIENT_CERT = "jdisc.http.ssl.handshake.failure.missing_client_cert";
+ static final String SSL_HANDSHAKE_FAILURE_EXPIRED_CLIENT_CERT = "jdisc.http.ssl.handshake.failure.expired_client_cert";
+ static final String SSL_HANDSHAKE_FAILURE_INVALID_CLIENT_CERT = "jdisc.http.ssl.handshake.failure.invalid_client_cert";
+ static final String SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_PROTOCOLS = "jdisc.http.ssl.handshake.failure.incompatible_protocols";
+ static final String SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_CIPHERS = "jdisc.http.ssl.handshake.failure.incompatible_ciphers";
+ static final String SSL_HANDSHAKE_FAILURE_UNKNOWN = "jdisc.http.ssl.handshake.failure.unknown";
+
+ private MetricDefinitions() {}
+}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java
index 21a64792731..ae97d3ccd4c 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java
@@ -4,8 +4,6 @@ package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.Metric.Context;
-import com.yahoo.jdisc.http.server.jetty.JettyHttpServer.Metrics;
-
import java.util.concurrent.atomic.AtomicBoolean;
@@ -32,20 +30,20 @@ public class MetricReporter {
public void successfulWrite(int numBytes) {
setTimeToFirstByteFirstTime();
- metric.add(Metrics.NUM_SUCCESSFUL_WRITES, 1, context);
- metric.set(Metrics.NUM_BYTES_SENT, numBytes, context);
+ metric.add(MetricDefinitions.NUM_SUCCESSFUL_WRITES, 1, context);
+ metric.set(MetricDefinitions.NUM_BYTES_SENT, numBytes, context);
}
private void setTimeToFirstByteFirstTime() {
boolean isFirstWrite = firstSetOfTimeToFirstByte.getAndSet(false);
if (isFirstWrite) {
long timeToFirstByte = getRequestLatency();
- metric.set(Metrics.TIME_TO_FIRST_BYTE, timeToFirstByte, context);
+ metric.set(MetricDefinitions.TIME_TO_FIRST_BYTE, timeToFirstByte, context);
}
}
public void failedWrite() {
- metric.add(Metrics.NUM_FAILED_WRITES, 1, context);
+ metric.add(MetricDefinitions.NUM_FAILED_WRITES, 1, context);
}
public void successfulResponse() {
@@ -53,24 +51,24 @@ public class MetricReporter {
long requestLatency = getRequestLatency();
- metric.set(Metrics.TOTAL_SUCCESSFUL_LATENCY, requestLatency, context);
+ metric.set(MetricDefinitions.TOTAL_SUCCESSFUL_LATENCY, requestLatency, context);
- metric.add(Metrics.NUM_SUCCESSFUL_RESPONSES, 1, context);
+ metric.add(MetricDefinitions.NUM_SUCCESSFUL_RESPONSES, 1, context);
}
public void failedResponse() {
setTimeToFirstByteFirstTime();
- metric.set(Metrics.TOTAL_FAILED_LATENCY, getRequestLatency(), context);
- metric.add(Metrics.NUM_FAILED_RESPONSES, 1, context);
+ metric.set(MetricDefinitions.TOTAL_FAILED_LATENCY, getRequestLatency(), context);
+ metric.add(MetricDefinitions.NUM_FAILED_RESPONSES, 1, context);
}
public void prematurelyClosed() {
- metric.add(Metrics.NUM_PREMATURELY_CLOSED_CONNECTIONS, 1, context);
+ metric.add(MetricDefinitions.NUM_PREMATURELY_CLOSED_CONNECTIONS, 1, context);
}
public void successfulRead(int bytes_received) {
- metric.set(JettyHttpServer.Metrics.NUM_BYTES_RECEIVED, bytes_received, context);
+ metric.set(MetricDefinitions.NUM_BYTES_RECEIVED, bytes_received, context);
}
private long getRequestLatency() {
@@ -78,10 +76,10 @@ public class MetricReporter {
}
public void uriLength(int length) {
- metric.set(Metrics.URI_LENGTH, length, context);
+ metric.set(MetricDefinitions.URI_LENGTH, length, context);
}
public void contentSize(int size) {
- metric.set(Metrics.CONTENT_SIZE, size, context);
+ metric.set(MetricDefinitions.CONTENT_SIZE, size, context);
}
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListener.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListener.java
index fc9a6fc03be..4c9059b5b37 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListener.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListener.java
@@ -2,7 +2,6 @@
package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.jdisc.Metric;
-import com.yahoo.jdisc.http.server.jetty.JettyHttpServer.Metrics;
import org.eclipse.jetty.io.ssl.SslHandshakeListener;
import javax.net.ssl.SSLHandshakeException;
@@ -38,36 +37,36 @@ class SslHandshakeFailedListener implements SslHandshakeListener {
log.log(Level.FINE, throwable, () -> "Ssl handshake failed: " + throwable.getMessage());
String metricName = SslHandshakeFailure.fromSslHandshakeException((SSLHandshakeException) throwable)
.map(SslHandshakeFailure::metricName)
- .orElse(Metrics.SSL_HANDSHAKE_FAILURE_UNKNOWN);
+ .orElse(MetricDefinitions.SSL_HANDSHAKE_FAILURE_UNKNOWN);
metric.add(metricName, 1L, metric.createContext(createDimensions(event)));
}
private Map<String, Object> createDimensions(Event event) {
Map<String, Object> dimensions = new HashMap<>();
- dimensions.put(Metrics.NAME_DIMENSION, connectorName);
- dimensions.put(Metrics.PORT_DIMENSION, listenPort);
+ dimensions.put(MetricDefinitions.NAME_DIMENSION, connectorName);
+ dimensions.put(MetricDefinitions.PORT_DIMENSION, listenPort);
Optional.ofNullable(event.getSSLEngine().getPeerHost())
- .ifPresent(clientIp -> dimensions.put(Metrics.CLIENT_IP_DIMENSION, clientIp));
+ .ifPresent(clientIp -> dimensions.put(MetricDefinitions.CLIENT_IP_DIMENSION, clientIp));
return Map.copyOf(dimensions);
}
private enum SslHandshakeFailure {
INCOMPATIBLE_PROTOCOLS(
- Metrics.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_PROTOCOLS,
+ MetricDefinitions.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_PROTOCOLS,
"(Client requested protocol \\S+? is not enabled or supported in server context" +
"|The client supported protocol versions \\[\\S+?\\] are not accepted by server preferences \\[\\S+?\\])"),
INCOMPATIBLE_CIPHERS(
- Metrics.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_CIPHERS,
+ MetricDefinitions.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_CIPHERS,
"no cipher suites in common"),
MISSING_CLIENT_CERT(
- Metrics.SSL_HANDSHAKE_FAILURE_MISSING_CLIENT_CERT,
+ MetricDefinitions.SSL_HANDSHAKE_FAILURE_MISSING_CLIENT_CERT,
"Empty server certificate chain"),
EXPIRED_CLIENT_CERTIFICATE(
- Metrics.SSL_HANDSHAKE_FAILURE_EXPIRED_CLIENT_CERT,
+ MetricDefinitions.SSL_HANDSHAKE_FAILURE_EXPIRED_CLIENT_CERT,
// Note: this pattern will match certificates with too late notBefore as well
"PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed"),
INVALID_CLIENT_CERT(
- Metrics.SSL_HANDSHAKE_FAILURE_INVALID_CLIENT_CERT, // Includes mismatch of client certificate and private key
+ MetricDefinitions.SSL_HANDSHAKE_FAILURE_INVALID_CLIENT_CERT, // Includes mismatch of client certificate and private key
"(PKIX path (building|validation) failed: .+)|(Invalid CertificateVerify signature)");
private final String metricName;
diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java
index 4ae824e2b7a..bb92d75bed5 100644
--- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java
+++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java
@@ -2,7 +2,6 @@
package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.jdisc.http.server.jetty.HttpResponseStatisticsCollector.StatisticsEntry;
-import com.yahoo.jdisc.http.server.jetty.JettyHttpServer.Metrics;
import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.HttpURI;
import org.eclipse.jetty.http.HttpVersion;
@@ -48,8 +47,8 @@ public class HttpResponseStatisticsCollectorTest {
testRequest("http", 200, "GET");
var stats = collector.takeStatistics();
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_2XX, 1L);
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_3XX, 2L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, 1L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_3XX, 2L);
}
@Test
@@ -66,12 +65,12 @@ public class HttpResponseStatisticsCollectorTest {
testRequest("https", 200, "POST");
var stats = collector.takeStatistics();
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_2XX, 1L);
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_4XX, 1L);
- assertStatisticsEntryPresent(stats, "http", "PUT", Metrics.RESPONSES_2XX, 1L);
- assertStatisticsEntryPresent(stats, "http", "POST", Metrics.RESPONSES_2XX, 2L);
- assertStatisticsEntryPresent(stats, "https", "GET", Metrics.RESPONSES_4XX, 1L);
- assertStatisticsEntryPresent(stats, "https", "POST", Metrics.RESPONSES_2XX, 4L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, 1L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_4XX, 1L);
+ assertStatisticsEntryPresent(stats, "http", "PUT", MetricDefinitions.RESPONSES_2XX, 1L);
+ assertStatisticsEntryPresent(stats, "http", "POST", MetricDefinitions.RESPONSES_2XX, 2L);
+ assertStatisticsEntryPresent(stats, "https", "GET", MetricDefinitions.RESPONSES_4XX, 1L);
+ assertStatisticsEntryPresent(stats, "https", "POST", MetricDefinitions.RESPONSES_2XX, 4L);
}
@Test
@@ -81,9 +80,9 @@ public class HttpResponseStatisticsCollectorTest {
testRequest("http", 403, "GET");
var stats = collector.takeStatistics();
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_4XX, 3L);
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_401, 1L);
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_403, 1L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_4XX, 3L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_401, 1L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_403, 1L);
}
@@ -93,12 +92,12 @@ public class HttpResponseStatisticsCollectorTest {
testRequest("http", 200, "GET");
var stats = collector.takeStatistics();
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_2XX, 2L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, 2L);
testRequest("http", 200, "GET");
stats = collector.takeStatistics();
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_2XX, 1L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, 1L);
}
@Test
@@ -109,15 +108,15 @@ public class HttpResponseStatisticsCollectorTest {
testRequest("http", 200, "GET", "/status.html?foo=bar");
var stats = collector.takeStatistics();
- assertStatisticsEntryWithRequestTypePresent(stats, "http", "GET", Metrics.RESPONSES_2XX, "monitoring", 1L);
- assertStatisticsEntryWithRequestTypePresent(stats, "http", "GET", Metrics.RESPONSES_2XX, "read", 1L);
- assertStatisticsEntryWithRequestTypePresent(stats, "http", "POST", Metrics.RESPONSES_2XX, "read", 1L);
- assertStatisticsEntryWithRequestTypePresent(stats, "http", "POST", Metrics.RESPONSES_2XX, "write", 1L);
+ assertStatisticsEntryWithRequestTypePresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, "monitoring", 1L);
+ assertStatisticsEntryWithRequestTypePresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, "read", 1L);
+ assertStatisticsEntryWithRequestTypePresent(stats, "http", "POST", MetricDefinitions.RESPONSES_2XX, "read", 1L);
+ assertStatisticsEntryWithRequestTypePresent(stats, "http", "POST", MetricDefinitions.RESPONSES_2XX, "write", 1L);
testRequest("http", 200, "GET");
stats = collector.takeStatistics();
- assertStatisticsEntryPresent(stats, "http", "GET", Metrics.RESPONSES_2XX, 1L);
+ assertStatisticsEntryPresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, 1L);
}
@Test
@@ -125,7 +124,7 @@ public class HttpResponseStatisticsCollectorTest {
testRequest("http", 200, "GET", "/search", com.yahoo.jdisc.Request.RequestType.WRITE);
var stats = collector.takeStatistics();
- assertStatisticsEntryWithRequestTypePresent(stats, "http", "GET", Metrics.RESPONSES_2XX, "write", 1L);
+ assertStatisticsEntryWithRequestTypePresent(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, "write", 1L);
}
@Before
diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java
index 96cf1d4c01f..01ba776fbf0 100644
--- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java
+++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java
@@ -23,7 +23,6 @@ import com.yahoo.jdisc.http.Cookie;
import com.yahoo.jdisc.http.HttpRequest;
import com.yahoo.jdisc.http.HttpResponse;
import com.yahoo.jdisc.http.ServerConfig;
-import com.yahoo.jdisc.http.server.jetty.JettyHttpServer.Metrics;
import com.yahoo.jdisc.http.server.jetty.TestDrivers.TlsClientAuth;
import com.yahoo.jdisc.service.BindingSetNotFoundException;
import com.yahoo.security.KeyUtils;
@@ -657,7 +656,7 @@ public class HttpServerTest {
assertHttpsRequestTriggersSslHandshakeException(
driver, clientCtx, null, null, "Received fatal alert: bad_certificate");
verify(metricConsumer.mockitoMock())
- .add(Metrics.SSL_HANDSHAKE_FAILURE_MISSING_CLIENT_CERT, 1L, MetricConsumerMock.STATIC_CONTEXT);
+ .add(MetricDefinitions.SSL_HANDSHAKE_FAILURE_MISSING_CLIENT_CERT, 1L, MetricConsumerMock.STATIC_CONTEXT);
assertTrue(driver.close());
}
@@ -677,7 +676,7 @@ public class HttpServerTest {
assertHttpsRequestTriggersSslHandshakeException(
driver, clientCtx, "TLSv1.3", null, "Received fatal alert: protocol_version");
verify(metricConsumer.mockitoMock())
- .add(Metrics.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_PROTOCOLS, 1L, MetricConsumerMock.STATIC_CONTEXT);
+ .add(MetricDefinitions.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_PROTOCOLS, 1L, MetricConsumerMock.STATIC_CONTEXT);
assertTrue(driver.close());
}
@@ -697,7 +696,7 @@ public class HttpServerTest {
assertHttpsRequestTriggersSslHandshakeException(
driver, clientCtx, null, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "Received fatal alert: handshake_failure");
verify(metricConsumer.mockitoMock())
- .add(Metrics.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_CIPHERS, 1L, MetricConsumerMock.STATIC_CONTEXT);
+ .add(MetricDefinitions.SSL_HANDSHAKE_FAILURE_INCOMPATIBLE_CIPHERS, 1L, MetricConsumerMock.STATIC_CONTEXT);
assertTrue(driver.close());
}
@@ -721,7 +720,7 @@ public class HttpServerTest {
assertHttpsRequestTriggersSslHandshakeException(
driver, clientCtx, null, null, "Received fatal alert: certificate_unknown");
verify(metricConsumer.mockitoMock())
- .add(Metrics.SSL_HANDSHAKE_FAILURE_INVALID_CLIENT_CERT, 1L, MetricConsumerMock.STATIC_CONTEXT);
+ .add(MetricDefinitions.SSL_HANDSHAKE_FAILURE_INVALID_CLIENT_CERT, 1L, MetricConsumerMock.STATIC_CONTEXT);
assertTrue(driver.close());
}
@@ -744,7 +743,7 @@ public class HttpServerTest {
assertHttpsRequestTriggersSslHandshakeException(
driver, clientCtx, null, null, "Received fatal alert: certificate_unknown");
verify(metricConsumer.mockitoMock())
- .add(Metrics.SSL_HANDSHAKE_FAILURE_EXPIRED_CLIENT_CERT, 1L, MetricConsumerMock.STATIC_CONTEXT);
+ .add(MetricDefinitions.SSL_HANDSHAKE_FAILURE_EXPIRED_CLIENT_CERT, 1L, MetricConsumerMock.STATIC_CONTEXT);
assertTrue(driver.close());
}