You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Tak-Lon (Stephen) Wu (Jira)" <ji...@apache.org> on 2021/11/04 02:11:00 UTC

[jira] [Commented] (HBASE-26366) ZK interaction during Master startup produces loads of root-less spans

    [ https://issues.apache.org/jira/browse/HBASE-26366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17438454#comment-17438454 ] 

Tak-Lon (Stephen) Wu commented on HBASE-26366:
----------------------------------------------

I found the potential issue of this single span(s), basically it's due to the static class ZKUtil calls {{zkw.getRecoverableZooKeeper().create}} whenever  a znode or znode with its parent (normally /hbase) need to be created, e.g. {{ZKUtil.createAndWatch}}, {{ZKUtil.createWithParents}}, {{ZKUtil.getData}}

If we're going to group all these spans, we need to wrap a parent span at their parent level, e.g. I found at few places, 1/ ClientZKSyncer, 2/ Procedure / ProcedureMember, 3/ HMaster#startActiveMasterManager (this is a private method) and etc.

if this is the direction, the scope of this JIRAs are big and may need to create more sub-tasks.

Moreover, based few experiment I did to group spans for HMaster#startActiveMasterManager, IMO we should replace some current code of  {{Span span = TraceUtil.getGlobalTracer()}}or {{TraceUtil.trace()}}  with [{{@WithSpan}} annotation|https://github.com/open-telemetry/opentelemetry-java/blob/main/extensions/annotations/src/main/java/io/opentelemetry/extension/annotations/WithSpan.java] (see the [code example|https://github.com/open-telemetry/opentelemetry-java/blob/main/extensions/annotations/src/test/java/io/opentelemetry/extension/annotations/WithSpanUsageExamples.java] and don't hack too much code in TraceUtils)

> ZK interaction during Master startup produces loads of root-less spans
> ----------------------------------------------------------------------
>
>                 Key: HBASE-26366
>                 URL: https://issues.apache.org/jira/browse/HBASE-26366
>             Project: HBase
>          Issue Type: Bug
>          Components: tracing
>    Affects Versions: 2.5.0, 3.0.0-alpha-2
>            Reporter: Nick Dimiduk
>            Priority: Major
>         Attachments: image.png
>
>
> Enable tracing with {{-Dotel.traces.sampler=always_on}} and launch the standalone master, check the trace store. We see lots of single-span traces, each a call to different {{RecoverableZooKeeper}} methods, like {{create}} and {{exists}}. Whatever master startup thread this is should define its own root span.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)