diff options
Diffstat (limited to 'container-search/src/main/java')
5 files changed, 19 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index c9e125ab55f..ecce5ddd740 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.handler; +import ai.vespa.metrics.ContainerMetrics; import ai.vespa.cloud.ZoneInfo; import ai.vespa.metrics.ContainerMetrics; import com.yahoo.collections.Tuple2; @@ -81,7 +82,7 @@ public class SearchHandler extends LoggingRequestHandler { private static final CompoundName FORCE_TIMESTAMPS = CompoundName.from("trace.timestamps"); /** Event name for number of connections to the search subsystem */ - private static final String SEARCH_CONNECTIONS = "search_connections"; + private static final String SEARCH_CONNECTIONS = ContainerMetrics.SEARCH_CONNECTIONS.baseName(); static final String RENDER_LATENCY_METRIC = ContainerMetrics.JDISC_RENDER_LATENCY.baseName(); static final String MIME_DIMENSION = "mime"; static final String RENDERER_DIMENSION = "renderer"; diff --git a/container-search/src/main/java/com/yahoo/search/query/Ranking.java b/container-search/src/main/java/com/yahoo/search/query/Ranking.java index 5426268d173..ac32bec80ef 100644 --- a/container-search/src/main/java/com/yahoo/search/query/Ranking.java +++ b/container-search/src/main/java/com/yahoo/search/query/Ranking.java @@ -42,6 +42,7 @@ public class Ranking implements Cloneable { public static final String QUERYCACHE = "queryCache"; public static final String RERANKCOUNT = "rerankCount"; public static final String KEEPRANKCOUNT = "keepRankCount"; + public static final String RANKSCOREDROPLIMIT = "rankScoreDropLimit"; public static final String MATCH_PHASE = "matchPhase"; public static final String DIVERSITY = "diversity"; public static final String SOFTTIMEOUT = "softtimeout"; @@ -63,6 +64,7 @@ public class Ranking implements Cloneable { argumentType.addField(new FieldDescription(QUERYCACHE, "boolean")); argumentType.addField(new FieldDescription(RERANKCOUNT, "integer")); argumentType.addField(new FieldDescription(KEEPRANKCOUNT, "integer")); + argumentType.addField(new FieldDescription(RANKSCOREDROPLIMIT, "double")); argumentType.addField(new FieldDescription(MATCH_PHASE, new QueryProfileFieldType(MatchPhase.getArgumentType()), "matchPhase")); argumentType.addField(new FieldDescription(DIVERSITY, new QueryProfileFieldType(Diversity.getArgumentType()))); argumentType.addField(new FieldDescription(SOFTTIMEOUT, new QueryProfileFieldType(SoftTimeout.getArgumentType()))); @@ -94,6 +96,7 @@ public class Ranking implements Cloneable { private Integer rerankCount = null; private Integer keepRankCount = null; + private Double rankScoreDropLimit = null; private RankProperties rankProperties = new RankProperties(); @@ -165,6 +168,11 @@ public class Ranking implements Cloneable { /** Returns the keep-rank-count that will be used, or null if not set */ public Integer getKeepRankCount() { return keepRankCount; } + /** Sets the rank-score-drop-limit that will be used, or null if not set */ + public void setRankScoreDropLimit(double rankScoreDropLimit) { this.rankScoreDropLimit = rankScoreDropLimit; } + /** Returns the rank-score-drop-limit that will be used, or null if not set */ + public Double getRankScoreDropLimit() { return rankScoreDropLimit; } + /** Returns the location of this query, or null if none */ public Location getLocation() { return location; } @@ -241,6 +249,8 @@ public class Ranking implements Cloneable { rankProperties.put("vespa.hitcollector.heapsize", rerankCount); if (keepRankCount != null) rankProperties.put("vespa.hitcollector.arraysize", keepRankCount); + if (rankScoreDropLimit != null) + rankProperties.put("vespa.hitcollector.rankscoredroplimit", rankScoreDropLimit); } private void prepareNow(Freshness freshness) { diff --git a/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java b/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java index da0051c527c..240da3f123f 100644 --- a/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java +++ b/container-search/src/main/java/com/yahoo/search/query/properties/QueryProperties.java @@ -77,6 +77,7 @@ public class QueryProperties extends Properties { if (key.last().equals(Ranking.QUERYCACHE)) return ranking.getQueryCache(); if (key.last().equals(Ranking.RERANKCOUNT)) return ranking.getRerankCount(); if (key.last().equals(Ranking.KEEPRANKCOUNT)) return ranking.getKeepRankCount(); + if (key.last().equals(Ranking.RANKSCOREDROPLIMIT)) return ranking.getRankScoreDropLimit(); if (key.last().equals(Ranking.LIST_FEATURES)) return ranking.getListFeatures(); } else if (key.size() >= 3 && key.get(1).equals(Ranking.MATCH_PHASE)) { @@ -203,6 +204,8 @@ public class QueryProperties extends Properties { ranking.setRerankCount(asInteger(value, null)); else if (key.last().equals(Ranking.KEEPRANKCOUNT)) ranking.setKeepRankCount(asInteger(value, null)); + else if (key.last().equals(Ranking.RANKSCOREDROPLIMIT)) + ranking.setRankScoreDropLimit(asDouble(value, null)); else if (key.last().equals(Ranking.LIST_FEATURES)) ranking.setListFeatures(asBoolean(value,false)); else 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 index 742f4b0f889..f510d68d32e 100644 --- a/container-search/src/main/java/com/yahoo/search/searchers/ContainerLatencySearcher.java +++ b/container-search/src/main/java/com/yahoo/search/searchers/ContainerLatencySearcher.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.searchers; +import ai.vespa.metrics.ContainerMetrics; import com.yahoo.component.chain.dependencies.After; import com.yahoo.metrics.simple.Gauge; import com.yahoo.metrics.simple.Point; @@ -21,7 +22,7 @@ public class ContainerLatencySearcher extends Searcher { private final Gauge latencyGauge; public ContainerLatencySearcher(MetricReceiver metrics) { - latencyGauge = metrics.declareGauge("query_container_latency"); + latencyGauge = metrics.declareGauge(ContainerMetrics.QUERY_CONTAINER_LATENCY.baseName()); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/searchers/RateLimitingSearcher.java b/container-search/src/main/java/com/yahoo/search/searchers/RateLimitingSearcher.java index 35a3c86f763..846b8881cef 100755 --- a/container-search/src/main/java/com/yahoo/search/searchers/RateLimitingSearcher.java +++ b/container-search/src/main/java/com/yahoo/search/searchers/RateLimitingSearcher.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.searchers; +import ai.vespa.metrics.ContainerMetrics; import com.yahoo.component.annotation.Inject; import com.yahoo.cloud.config.ClusterInfoConfig; @@ -60,7 +61,7 @@ public class RateLimitingSearcher extends Searcher { public static final CompoundName idDimensionKey = CompoundName.from("rate.idDimension"); public static final CompoundName dryRunKey = CompoundName.from("rate.dryRun"); - private static final String requestsOverQuotaMetricName = "requestsOverQuota"; + private static final String requestsOverQuotaMetricName = ContainerMetrics.REQUESTS_OVER_QUOTA.baseName(); /** Used to divide quota by nodes. Assumption: All nodes get the same share of traffic. */ private final int nodeCount; |