[ 
https://issues.apache.org/jira/browse/AVRO-595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12887584#action_12887584
 ] 

Patrick Wendell commented on AVRO-595:
--------------------------------------

Some initial design thoughts are listed here... interested in hearing feedback. 
The high level goal is to create a plugin that can be added to Avro clients 
which performs tracing. The design is largely based on Google's Dapper paper.

1. What to trace
Similar to dapper, we will use spans as our tracing primitive. A span is an 
avro data record that includes:
long traceID (consistent across an entire RPC call tree)
long spanID (unique to each host in a call tree)
long parentSpanID
Map<Timestamp, eventEnum> events

When the RPC plugin is called at critical points in the exchange, span event 
data will be filled in, keyed by timestamp. Trace and span id's are propagated 
as avro meta-data when one RPC triggers another (allowing us to back out a 
recursive call tree). 

2. Span storage and collection
The plugin will store span data locally in an avro data file. To expose this 
data, it will run an avro server which can be queried.

To aggregate spans, every trace plugin will start a user-facing control applet. 
This applet will accept a list of hosts, which will each be probed for log 
data. That data will be collected from each span, aggregated, and summarized to 
the user.

3. Turning on tracing
The plugin will include options that dictate the level of trace sampling (0 --> 
1) and an upper bound on the amount of storage the tracing component can use. 
The sampling level will be used to decide whether to inject tracing meta-data 
into a new RPC (the root of a call tree).

Alternatively, if an RPC request comes in which already has tracing turned on 
the plugin must always trace.

> Add Dapper-Style Tracing Plugin to Avro
> ---------------------------------------
>
>                 Key: AVRO-595
>                 URL: https://issues.apache.org/jira/browse/AVRO-595
>             Project: Avro
>          Issue Type: Sub-task
>            Reporter: Patrick Wendell
>            Assignee: Patrick Wendell
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to