summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorOla Aunrønning <ola.aunroe@gmail.com>2018-08-24 15:28:48 +0200
committerOla Aunrønning <ola.aunroe@gmail.com>2018-09-06 14:52:37 +0200
commit854a9b1c407711c68f749bf6396ce2d3ce26b93c (patch)
treeb907315bfa32eb4898a8aca1d5644d72721a2137 /jdisc_http_service
parent5dd5400692b188644753c92e6888d5883964b95b (diff)
Added metrics for 401/403 status codes
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java25
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java2
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java13
3 files changed, 31 insertions, 9 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 ef416fd961f..1e92fbef967 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
@@ -41,7 +41,7 @@ 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_4XX, Metrics.RESPONSES_5XX, Metrics.RESPONSES_401, Metrics.RESPONSES_403};
private final AtomicLong inFlight = new AtomicLong();
private final LongAdder statistics[][];
@@ -112,6 +112,9 @@ public class HttpResponseStatisticsCollector extends HandlerWrapper implements G
if (group >= 0) {
HttpMethod method = getMethod(request);
statistics[method.ordinal()][group].increment();
+ if (group == 5 || group == 6) { // if 401/403, also increment 4xx
+ statistics[method.ordinal()][3].increment();
+ }
}
long live = inFlight.decrementAndGet();
@@ -127,15 +130,19 @@ public class HttpResponseStatisticsCollector extends HandlerWrapper implements G
}
private int groupIndex(Request request) {
- if (request.isHandled()) {
- int index = (request.getResponse().getStatus() / 100) - 1; // 1xx = 0, 2xx = 1 etc.
- if (index < 0 || index > statistics.length) {
- return -1;
- } else {
- return index;
- }
+ int index = request.getResponse().getStatus();
+ if (index == 401) {
+ return 5;
+ }
+ if (index == 403) {
+ return 6;
+ }
+
+ index = index / 100 - 1; // 1xx = 0, 2xx = 1 etc.
+ if (index < 0 || index >= statistics[0].length) {
+ return -1;
} else {
- return 3; // 4xx
+ return index;
}
}
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 70d266fdfa5..8074af7f64f 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
@@ -108,6 +108,8 @@ public class JettyHttpServer extends AbstractServerProvider {
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";
@Deprecated String MANHATTAN_STARTED_MILLIS = "proc.uptime";
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 e3d70fb5bd6..3c23a2b0937 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
@@ -65,6 +65,19 @@ public class HttpResponseStatisticsCollectorTest {
}
@Test
+ public void statistics_include_grouped_and_single_statuscodes() throws Exception {
+ testRequest(401, "GET");
+ testRequest(404, "GET");
+ testRequest(403, "GET");
+
+ Map<String, Map<String, Long>> stats = collector.takeStatisticsByMethod();
+ assertThat(stats.get("GET").get(Metrics.RESPONSES_4XX), equalTo(3L));
+ assertThat(stats.get("GET").get(Metrics.RESPONSES_401), equalTo(1L));
+ assertThat(stats.get("GET").get(Metrics.RESPONSES_403), equalTo(1L));
+
+ }
+
+ @Test
public void retrieving_statistics_resets_the_counters() throws Exception {
testRequest(200, "GET");
testRequest(200, "GET");