diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2018-06-22 08:43:21 +0200 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2018-06-22 09:09:59 +0200 |
commit | 8422c23ba2a66f0c6582d41f10fa091b447cc170 (patch) | |
tree | bffbea062ed23f05e95999c67cd4c51b5cb93433 /container-search | |
parent | 18b49613b7f2a62281b3275563d8e0b8b284b201 (diff) |
add ContainerLatencySearcher
Diffstat (limited to 'container-search')
2 files changed, 42 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java index 5d244286c57..ef2bf65895f 100644 --- a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java +++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java @@ -42,7 +42,8 @@ public class LocalProviderSpec { com.yahoo.prelude.searcher.ValidatePredicateSearcher.class, com.yahoo.search.searchers.ValidateMatchPhaseSearcher.class, com.yahoo.search.yql.FieldFiller.class, - com.yahoo.search.searchers.InputCheckingSearcher.class); + com.yahoo.search.searchers.InputCheckingSearcher.class, + com.yahoo.search.searchers.ContainerLatencySearcher.class); public final String clusterName; diff --git a/container-search/src/main/java/com/yahoo/search/searchers/ContainerLatencySearcher.java b/container-search/src/main/java/com/yahoo/search/searchers/ContainerLatencySearcher.java new file mode 100644 index 00000000000..8b415ded6c3 --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/searchers/ContainerLatencySearcher.java @@ -0,0 +1,40 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.search.searchers; + +import com.yahoo.component.chain.dependencies.After; +import com.yahoo.metrics.simple.Gauge; +import com.yahoo.metrics.simple.Point; +import com.yahoo.metrics.simple.PointBuilder; +import com.yahoo.metrics.simple.MetricReceiver; +import com.yahoo.search.Query; +import com.yahoo.search.Result; +import com.yahoo.search.Searcher; +import com.yahoo.search.searchchain.Execution; +import com.yahoo.search.searchchain.PhaseNames; + +/** + * Measure latency in container before query is sent to backend + * + * @author Arne H Juul + */ +@After(PhaseNames.BACKEND) +public class ContainerLatencySearcher extends Searcher { + private final Gauge latencyGauge; + private Point dims = null; + + public ContainerLatencySearcher(MetricReceiver metrics) { + latencyGauge = metrics.declareGauge("query_container_latency"); + } + + @Override + public Result search(Query query, Execution execution) { + if (dims == null) { + PointBuilder p = latencyGauge.builder(); + p.set("chain", execution.chain().getId().stringValue()); + dims = p.build(); + } + latencyGauge.sample(query.getDurationTime(), dims); + return execution.search(query); + } + +} |