Currently, in SolrCore.java we log each search request that comes through each core as it is finishing. This includes the path, query-params, QTime, and status. In the case of a distributed search both the "coordinator" node and each of the per-shard requests produce a log message.
When Solr is fielding many identical queries, such as those created by a healthcheck or dashboard, it can be hard when examining logs to link the per-shard requests with the "cooordinator" request that came in upstream.
One thing that would make this easier is if the NOW param added to per-shard requests is also included in the log message from the "coordinator". While NOW isn't unique strictly speaking, it often is in practice, and along with the query-params would allow debuggers to associate shard requests with coordinator requests a large majority of the time.
An alternative approach would be to create a qid or query-uuid when the coordinator starts its work that can be logged everywhere. This provides a stronger expectation around uniqueness, but would require UUID generation on the coordinator, which may be non-negligible work at high QPS (maybe? I have no idea). It also loses the neatness of reusing data already present on the shard requests.
- relates to
SOLR-8274 Add per-request MDC logging based on user-provided value.
- links to