aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java')
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java25
1 files changed, 20 insertions, 5 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
index 0aa2820f959..631f4080c7e 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollector.java
@@ -3,6 +3,7 @@ package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.http.HttpRequest;
+import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.server.AsyncContextEvent;
import org.eclipse.jetty.server.Handler;
@@ -21,6 +22,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -106,12 +108,25 @@ class HttpResponseStatisticsCollector extends HandlerWrapper implements Graceful
}
}
- private void observeEndOfRequest(Request request, HttpServletResponse flushableResponse) throws IOException {
- var metrics = StatusCodeMetric.of(request, monitoringHandlerPaths, searchHandlerPaths);
- metrics.forEach(metric ->
- statistics.computeIfAbsent(metric, __ -> new LongAdder())
- .increment());
+ void ignoreUserAgent(String agentName) {
+ ignoredUserAgents.add(agentName);
+ }
+ private Set<String> ignoredUserAgents = new HashSet<>();
+
+ private boolean shouldLogMetricsFor(Request request) {
+ String agent = request.getHeader(HttpHeader.USER_AGENT.toString());
+ if (agent == null) return true;
+ return ! ignoredUserAgents.contains(agent);
+ }
+
+ private void observeEndOfRequest(Request request, HttpServletResponse flushableResponse) throws IOException {
+ if (shouldLogMetricsFor(request)) {
+ var metrics = StatusCodeMetric.of(request, monitoringHandlerPaths, searchHandlerPaths);
+ metrics.forEach(metric ->
+ statistics.computeIfAbsent(metric, __ -> new LongAdder())
+ .increment());
+ }
long live = inFlight.decrementAndGet();
FutureCallback shutdownCb = shutdown.get();
if (shutdownCb != null) {