You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@htrace.apache.org by "Colin Patrick McCabe (JIRA)" <ji...@apache.org> on 2015/10/14 03:02:05 UTC

[jira] [Updated] (HTRACE-214) De-globalize Tracer.java

     [ https://issues.apache.org/jira/browse/HTRACE-214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Colin Patrick McCabe updated HTRACE-214:
----------------------------------------
    Target Version/s: 4.0
         Component/s: core
                      api

> De-globalize Tracer.java
> ------------------------
>
>                 Key: HTRACE-214
>                 URL: https://issues.apache.org/jira/browse/HTRACE-214
>             Project: HTrace
>          Issue Type: Sub-task
>          Components: api, core
>    Affects Versions: 4.0
>         Environment: release-notes: local-file-span-receiver.path configuration key changed to local.file.span.receiver.path for consistency
> local-file-span-receiver.capacity configuration key changed to local.file.span.receiver.capacity for consistency
> Default package for searching for SpanReceivers and Samplers was changed from org.apache.htrace.impl to org.apache.htrace.core.
> TracerId is now configured with % {tname} and similar, instead of ${tname}
> (to match the C client and make things easier when passing configuration through the shell.
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>             Fix For: 4.0
>
>         Attachments: HTRACE-214.001.patch, HTRACE-214.002.patch, HTRACE-214.003.patch, HTRACE-214.004.patch, HTRACE-214.005.patch, HTRACE-214.006.patch, HTRACE-214.007.patch, HTRACE-214.008.patch
>
>
> De-globalize Tracer.java.
> Currently, Tracer is a Singleton managed by TracerHolder.  Instead, Tracer objects should be created by each process or library that needs to use HTrace.  This enables a few things:
> * When the Tracer object is created, we can give it a name.  Then we can use this name in the "process id" of all spans created by that tracer, rather than trying to scrape the JVM name using "questionable" methods.
> * SpanReceivers can be shared between multiple Tracer objects in the same process.  The span receivers are reference counted.  This should eliminate the "double tracing" issues we have had when tracing client libraries inside processes which also want tracing.
> * Tracers can be closed by calling Tracer#close.  If the Tracer being closed is the last tracer in the process, it will close all the span receivers.
> * We will have a TracerFactory that takes care of the details of creating the right span receivers based on the configuration.  This removes some boilerplate that is currently needed to enable HTrace in an application or library.  We can also make SpanReceiverFactory package-private since it will no longer need to be publicly visible.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)