diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-04-23 16:31:28 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-04-23 16:52:09 +0200 |
commit | 7d012a85ad05785a4b316bbf77dbcfd657fdff87 (patch) | |
tree | e0f86fe1c9b068a2af926f887a7f6373f7c8e4b2 /container-search/src/main/java/com/yahoo | |
parent | 75880a3716c3c34951811f0d8515cda4c6a2bf23 (diff) |
Include queue time in search handler for query metrics in StatisticsSearcher
Diffstat (limited to 'container-search/src/main/java/com/yahoo')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java index 941015b2fae..24b631f1773 100644 --- a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java @@ -5,9 +5,9 @@ import com.yahoo.component.chain.dependencies.Before; import com.yahoo.concurrent.CopyOnWriteHashMap; import com.yahoo.container.protect.Error; import com.yahoo.jdisc.Metric; -import java.util.logging.Level; -import com.yahoo.metrics.simple.MetricSettings; +import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.metrics.simple.MetricReceiver; +import com.yahoo.metrics.simple.MetricSettings; import com.yahoo.processing.request.CompoundName; import com.yahoo.search.Query; import com.yahoo.search.Result; @@ -29,7 +29,18 @@ import java.util.PriorityQueue; import java.util.Queue; import java.util.logging.Level; -import static com.yahoo.container.protect.Error.*; +import static com.yahoo.container.protect.Error.BACKEND_COMMUNICATION_ERROR; +import static com.yahoo.container.protect.Error.EMPTY_DOCUMENTS; +import static com.yahoo.container.protect.Error.ERROR_IN_PLUGIN; +import static com.yahoo.container.protect.Error.ILLEGAL_QUERY; +import static com.yahoo.container.protect.Error.INTERNAL_SERVER_ERROR; +import static com.yahoo.container.protect.Error.INVALID_QUERY_PARAMETER; +import static com.yahoo.container.protect.Error.INVALID_QUERY_TRANSFORMATION; +import static com.yahoo.container.protect.Error.NO_BACKENDS_IN_SERVICE; +import static com.yahoo.container.protect.Error.RESULT_HAS_ERRORS; +import static com.yahoo.container.protect.Error.SERVER_IS_MISCONFIGURED; +import static com.yahoo.container.protect.Error.TIMEOUT; +import static com.yahoo.container.protect.Error.UNSPECIFIED; /** @@ -236,7 +247,7 @@ public class StatisticsSearcher extends Searcher { incrQueryCount(metricContext); logQuery(query); - long start_ns = System.nanoTime(); // Start time, in nanoseconds. + long start_ns = getStartNanoTime(query); qps(metricContext); Result result; //handle exceptions thrown below in searchers @@ -428,5 +439,15 @@ public class StatisticsSearcher extends Searcher { } } + /** + * Returns the relative start time from request was received by jdisc + */ + private static long getStartNanoTime(Query query) { + return Optional.ofNullable(query.getHttpRequest()) + .flatMap(httpRequest -> Optional.ofNullable(httpRequest.getJDiscRequest())) + .map(HttpRequest::relativeCreatedAtNanoTime) + .orElseGet(System::nanoTime); + } + } |