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
Instance Method Summary
collapse
Instance Method Details
#default_endpoint ⇒ Object
141
142
143
144
145
|
# File 'lib/finagle-thrift/trace.rb', line 141
def default_endpoint
@default_endpoint ||= begin
Endpoint.new(Endpoint.host_to_i32(Socket.gethostname), 0, "finagle-ruby")
end
end
|
#default_endpoint=(endpoint) ⇒ Object
137
138
139
|
# File 'lib/finagle-thrift/trace.rb', line 137
def default_endpoint=(endpoint)
@default_endpoint = endpoint
end
|
#generate_id ⇒ Object
129
130
131
|
# File 'lib/finagle-thrift/trace.rb', line 129
def generate_id
rand(TRACE_ID_UPPER_BOUND)
end
|
#id ⇒ Object
6
7
8
9
10
11
12
13
|
# File 'lib/finagle-thrift/trace.rb', line 6
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
26
27
28
|
# File 'lib/finagle-thrift/trace.rb', line 26
def pop
stack.pop
end
|
#push(trace_id) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/finagle-thrift/trace.rb', line 15
def push(trace_id)
stack.push(trace_id)
if block_given?
begin
yield
ensure
pop
end
end
end
|
#record(annotation) ⇒ Object
41
42
43
|
# File 'lib/finagle-thrift/trace.rb', line 41
def record(annotation)
tracer.record(id, annotation) unless stack.empty?
end
|
#sample_rate=(sample_rate) ⇒ Object
49
50
51
52
53
54
|
# File 'lib/finagle-thrift/trace.rb', line 49
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
45
46
47
|
# File 'lib/finagle-thrift/trace.rb', line 45
def set_rpc_name(name)
tracer.set_rpc_name(id, name) unless stack.empty?
end
|
#should_sample? ⇒ Boolean
133
134
135
|
# File 'lib/finagle-thrift/trace.rb', line 133
def should_sample?
rand < (@sample_rate || DEFAULT_SAMPLE_RATE)
end
|
#tracer=(tracer) ⇒ Object
56
57
58
|
# File 'lib/finagle-thrift/trace.rb', line 56
def tracer=(tracer)
@tracer = tracer
end
|
#unwind ⇒ Object
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/finagle-thrift/trace.rb', line 30
def unwind
if block_given?
begin
saved_stack = stack.dup
yield
ensure
@stack = saved_stack
end
end
end
|