Module: Trace
- Extended by:
- Trace
- Included in:
- Trace
- Defined in:
- lib/finagle-thrift/trace.rb,
lib/finagle-thrift/tracer.rb
Defined Under Namespace
Classes: Annotation, BinaryAnnotation, Endpoint, FanoutTracer, FileTracer, Flags, NullTracer, Span, SpanId, TraceId, Tracer, ZipkinTracer
Constant Summary
collapse
- DEFAULT_SAMPLE_RATE =
0.001
- TRACE_ID_UPPER_BOUND =
2 ** 64
- TRACE_STACK =
:trace_stack
Instance Method Summary
collapse
Instance Method Details
#default_endpoint ⇒ Object
143
144
145
146
147
|
# File 'lib/finagle-thrift/trace.rb', line 143
def default_endpoint
@default_endpoint ||= begin
Endpoint.new(Endpoint.host_to_i32(Socket.gethostname), 0, "finagle-ruby")
end
end
|
#default_endpoint=(endpoint) ⇒ Object
139
140
141
|
# File 'lib/finagle-thrift/trace.rb', line 139
def default_endpoint=(endpoint)
@default_endpoint = endpoint
end
|
#generate_id ⇒ Object
131
132
133
|
# File 'lib/finagle-thrift/trace.rb', line 131
def generate_id
rand(TRACE_ID_UPPER_BOUND)
end
|
#id ⇒ Object
7
8
9
10
11
12
13
14
|
# File 'lib/finagle-thrift/trace.rb', line 7
def id
if stack.empty?
span_id = generate_id
trace_id = TraceId.new(span_id, nil, span_id, should_sample?, Flags::EMPTY)
stack.push(trace_id)
end
stack.last
end
|
#pop ⇒ Object
27
28
29
|
# File 'lib/finagle-thrift/trace.rb', line 27
def pop
stack.pop
end
|
#push(trace_id) ⇒ Object
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/finagle-thrift/trace.rb', line 16
def push(trace_id)
stack.push(trace_id)
if block_given?
begin
yield
ensure
pop
end
end
end
|
#record(annotation) ⇒ Object
42
43
44
|
# File 'lib/finagle-thrift/trace.rb', line 42
def record(annotation)
tracer.record(id, annotation) unless stack.empty?
end
|
#sample_rate=(sample_rate) ⇒ Object
50
51
52
53
54
55
|
# File 'lib/finagle-thrift/trace.rb', line 50
def sample_rate=(sample_rate)
if sample_rate > 1 || sample_rate < 0
raise ArgumentError.new("sample rate must be [0,1]")
end
@sample_rate = sample_rate
end
|
#set_rpc_name(name) ⇒ Object
46
47
48
|
# File 'lib/finagle-thrift/trace.rb', line 46
def set_rpc_name(name)
tracer.set_rpc_name(id, name) unless stack.empty?
end
|
#should_sample? ⇒ Boolean
135
136
137
|
# File 'lib/finagle-thrift/trace.rb', line 135
def should_sample?
rand < (@sample_rate || DEFAULT_SAMPLE_RATE)
end
|
#tracer=(tracer) ⇒ Object
57
58
59
|
# File 'lib/finagle-thrift/trace.rb', line 57
def tracer=(tracer)
@tracer = tracer
end
|
#unwind ⇒ Object
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/finagle-thrift/trace.rb', line 31
def unwind
if block_given?
begin
saved_stack = stack.dup
yield
ensure
stack = saved_stack
end
end
end
|