dsmiley commented on a change in pull request #115: URL: https://github.com/apache/solr/pull/115#discussion_r631871947
########## File path: solr/core/src/java/org/apache/solr/api/V2HttpCall.java ########## @@ -360,6 +366,85 @@ protected void execute(SolrQueryResponse rsp) { SolrCore.postDecorateResponse(handler, solrReq, rsp); } + @Override + protected void populateTracingSpan(Span span) { + // Set db.instance + String coreOrColName = this.origCorename; + if (coreOrColName == null) { + Map<String, String> pathTemplateValues = getUrlParts(); // == solrReq.getPathTemplateValues() + coreOrColName = pathTemplateValues.get("collection"); + if (coreOrColName == null) { + coreOrColName = pathTemplateValues.get("core"); + } + } + if (coreOrColName != null) { + span.setTag(Tags.DB_INSTANCE, coreOrColName); + } + + // Get the templatize-ed path + String path; + if (api instanceof AnnotatedApi) { + // ideal scenario; eventually everything might be AnnotatedApi? + var aapi = (AnnotatedApi) api; + path = aapi.getEndPoint().path()[0]; // consider first to be primary + } else { + path = computeEndpointPath(); + // TODO consider getValidators, looking for command & path? + } + + String verb = req.getMethod().toLowerCase(Locale.ROOT); + // if this api has commands ... + final Map<String, JsonSchemaValidator> validators = getValidators(); // should be cached + if (validators != null && validators.isEmpty() == false && solrReq != null) { + // does this request have one command? + List<CommandOperation> cmds = solrReq.getCommands(false); + if (cmds.size() == 1) { + verb = cmds.get(0).name; + } + } + + span.setOperationName(verb + ":" + path); + + if (req.getQueryString() != null) { + span.setTag("params", req.getQueryString()); + } Review comment: I did a change here that is debatable. Previously, this was the SolrParams toString but is now the non-decoded / raw query string (thus has percent-encoding). But I think I want to change this back. This is all guarded by no-op, and furthermore we could modify SolrQueryRequestBase to cache the toString of the original params if we want. That method is also called by SolrCore.preDecorateResponse for logging. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org