[
https://issues.apache.org/jira/browse/SOLR-9641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15591976#comment-15591976
]
Mike Drob commented on SOLR-9641:
---------------------------------
Thanks for taking a look, [~dsmiley]!
bq. Can you recommend a tool that can be used with Solr after this patch is
applied to visualize or otherwise make use of it to help us analyze Solr
performance?
The built in HTrace viewer is reasonable for some purposes, but probably not
ideal for all purposes. There is also a Zipkin bridge, so you could use that as
your visualizer. Both are configured by setting the {{span.receiver.classes}}
configuration to the appropriate value.
My docs are pretty sparse at the moment, where would you suggest placing them?
We can have a short description and then refer to the full HTrace docs for
completeness.
{quote}
* SolrCore.newScope: guard log.debug with log.isDebugEnabled to avoid toString
* HttpShardHandler: maybe instead of always wrapping task with traceTask we
instead conditionally replace task with a tracing one? This way we conveniently
avoid the wrapping if there is no tracing.
* CommonParams.java:TRACE_ID: a one-liner comment referencing "HTrace" would be
useful.
{quote}
Done. I'm not going to upload a new patch yet, since the changes are relatively
minimal and I don't want to clutter the issue.
{quote}
* loadTraceConfig: could you use NamedList.asMap(1) or perhaps not because
"String" type?
{quote}
I tried this and it worked, but something about it feels incredibly fragile.
I'll leave it in for now, however.
{quote}
* TracerUtils: I like this. Question: should newScope(SolrQueryRequest request,
String description) also look in the request params to see if there is a
parent, and if so conditionally call tracer.newScope with that parent?
{quote}
Hmm, maybe. I know that it is possible to have multiple parents per span, but I
think the APIs around it are a little clunky. Will need to think on this more.
Actually, no. I don't think we need to pull the parent from the request params
here, since we already do that in {{SolrCore.newScope}}, which should be
handling most things. The method in {{TracerUtils}} is more of a convenience
thing to get at the core container so we can get the tracer.
> Emit distributed tracing information from Solr
> ----------------------------------------------
>
> Key: SOLR-9641
> URL: https://issues.apache.org/jira/browse/SOLR-9641
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: Mike Drob
> Fix For: master (7.0)
>
> Attachments: SOLR-9641.patch
>
>
> While Solr already offers a few tools for exposing timing, this information
> can be difficult to aggregate and analyze. By integrating distributed tracing
> into Solr operations, we can gain new performance and behaviour insights.
> One such solution can be accomplished via Apache HTrace (incubating).
> (More rationale to follow.)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]