summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-08-13 15:30:03 +0200
committerGitHub <noreply@github.com>2019-08-13 15:30:03 +0200
commitf638c6bf766fb2e25828c68bfb6493640b576f06 (patch)
treebedddbbfcc1163e12c127a971f8c1c23dcfeb08a /container-search/src
parent0bb0ddd79766cdf7178c28d5da0e03c1c5bdeaf2 (diff)
parenta643709120799e61c5d8c71a4de224733290ff08 (diff)
Merge pull request #10254 from vespa-engine/balder/propagate-tracelevel-when-using-protobuf-too
Propagate the tracelevel to the backend too.
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/search/Query.java22
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java13
2 files changed, 19 insertions, 16 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java
index 7105ba8c7ad..e0bd3fc4f99 100644
--- a/container-search/src/main/java/com/yahoo/search/Query.java
+++ b/container-search/src/main/java/com/yahoo/search/Query.java
@@ -13,6 +13,7 @@ import com.yahoo.prelude.query.Highlight;
import com.yahoo.prelude.query.QueryException;
import com.yahoo.prelude.query.textualrepresentation.TextualQueryRepresentation;
import com.yahoo.processing.request.CompoundName;
+import com.yahoo.search.dispatch.rpc.ProtobufSerialization;
import com.yahoo.search.federation.FederationSearcher;
import com.yahoo.search.query.Model;
import com.yahoo.search.query.ParameterParser;
@@ -102,7 +103,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
WEB(4,"web"),
PROGRAMMATIC(5, "prog"),
YQL(6, "yql"),
- SELECT(7, "select");;
+ SELECT(7, "select");
private final int intValue;
private final String stringValue;
@@ -495,7 +496,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
private void appendQueryProfileProperties(CompiledQueryProfile profile,Set<String> mentioned,StringBuilder b) {
for (Map.Entry<String,Object> property : profile.listValues("", requestProperties()).entrySet()) {
if ( ! mentioned.contains(property.getKey()))
- b.append(property.getKey() + "=" + property.getValue() + " (value from query profile)<br/>\n");
+ b.append(property.getKey()).append("=").append(property.getValue()).append(" (value from query profile)<br/>\n");
}
}
@@ -741,7 +742,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
StringBuilder concatenated = new StringBuilder();
for (Object message : messages)
- concatenated.append(String.valueOf(message));
+ concatenated.append(message);
trace(concatenated.toString(), includeQuery, traceLevel);
}
@@ -1090,25 +1091,14 @@ public class Query extends com.yahoo.processing.Request implements Cloneable {
return Collections.singletonMap("grouping", true);
if (ranking.getQueryCache())
return Collections.singletonMap("query", true);
- return Collections.<String,Boolean>emptyMap();
- }
-
- private int computeTraceLevelForBackend() {
- int traceLevel = getTraceLevel();
- if (model.getExecution().trace().getForceTimestamps()) {
- traceLevel = Math.max(traceLevel, 5); // Backend produces timing information on level 4 and 5
- }
- if (getExplainLevel() > 0) {
- traceLevel = Math.max(traceLevel, getExplainLevel() + 5);
- }
- return traceLevel;
+ return Collections.emptyMap();
}
private Map<String, String> createModelMap() {
Map<String, String> m = new HashMap<>();
if (model.getSearchPath() != null) m.put("searchpath", model.getSearchPath());
- int traceLevel = computeTraceLevelForBackend();
+ int traceLevel = ProtobufSerialization.getTraceLevelForBackend(this);
if (traceLevel > 0) m.put("tracelevel", String.valueOf(traceLevel));
return m;
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
index ffa77b81863..0e1565a108b 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
@@ -72,11 +72,24 @@ public class ProtobufSerialization {
builder.setCacheGrouping(true);
}
+ builder.setTraceLevel(getTraceLevelForBackend(query));
+
mergeToSearchRequestFromRanking(query.getRanking(), builder);
return builder.build();
}
+ public static int getTraceLevelForBackend(Query query) {
+ int traceLevel = query.getTraceLevel();
+ if (query.getModel().getExecution().trace().getForceTimestamps()) {
+ traceLevel = Math.max(traceLevel, 5); // Backend produces timing information on level 4 and 5
+ }
+ if (query.getExplainLevel() > 0) {
+ traceLevel = Math.max(traceLevel, query.getExplainLevel() + 5);
+ }
+ return traceLevel;
+ }
+
private static void mergeToSearchRequestFromRanking(Ranking ranking, SearchProtocol.SearchRequest.Builder builder) {
builder.setRankProfile(ranking.getProfile());