Module: BaselineRedRpm
- Defined in:
- lib/baseline_red_rpm.rb,
lib/baseline_red_rpm/utils.rb,
lib/baseline_red_rpm/logger.rb,
lib/baseline_red_rpm/tracer.rb,
lib/baseline_red_rpm/railtie.rb,
lib/baseline_red_rpm/backtrace.rb,
lib/baseline_red_rpm/introspector.rb,
lib/baseline_red_rpm/tracing/span.rb,
lib/baseline_red_rpm/configuration.rb,
lib/baseline_red_rpm/tracing/buffer.rb,
lib/baseline_red_rpm/tracing/tracer.rb,
lib/baseline_red_rpm/instrumentation.rb,
lib/baseline_red_rpm/tracing/carrier.rb,
lib/baseline_red_rpm/instruments/rack.rb,
lib/baseline_red_rpm/instruments/rack.rb,
lib/baseline_red_rpm/instruments/roda.rb,
lib/baseline_red_rpm/tracing/endpoint.rb,
lib/baseline_red_rpm/tracing/trace_id.rb,
lib/baseline_red_rpm/instruments/grape.rb,
lib/baseline_red_rpm/instruments/redis.rb,
lib/baseline_red_rpm/tracing/collector.rb,
lib/baseline_red_rpm/instruments/sequel.rb,
lib/baseline_red_rpm/instruments/faraday.rb,
lib/baseline_red_rpm/instruments/sidekiq.rb,
lib/baseline_red_rpm/instruments/sinatra.rb,
lib/baseline_red_rpm/instruments/typhoeus.rb,
lib/baseline_red_rpm/tracing/managed_span.rb,
lib/baseline_red_rpm/tracing/span_context.rb,
lib/baseline_red_rpm/reporters/json_client.rb,
lib/baseline_red_rpm/reporters/null_client.rb,
lib/baseline_red_rpm/tracing/managed_tracer.rb,
lib/baseline_red_rpm/instruments/active_record.rb,
lib/baseline_red_rpm/tracing/thread_span_stack.rb,
lib/baseline_red_rpm/instruments/emque_consuming.rb,
lib/baseline_red_rpm/instruments/action_controller.rb,
lib/baseline_red_rpm/instruments/activerecord_import.rb,
lib/baseline_red_rpm/instruments/active_record/adapters/mysql2.rb,
lib/baseline_red_rpm/instruments/active_record/adapters/sqlite3.rb,
lib/baseline_red_rpm/instruments/active_record/adapters/postgresql.rb
Defined Under Namespace
Modules: Instruments, Reporters, Tracing, Utils
Classes: Backtrace, Configuration, Instrumentation, Introspector, Logger, Railtie, SidekiqClient, SidekiqServer, Tracer
Constant Summary
collapse
- TRACE_CONTEXT_KEY =
'BaselineRed-Trace-Context'
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.config ⇒ Object
38
39
40
|
# File 'lib/baseline_red_rpm.rb', line 38
def config
@config ||= Configuration.new
end
|
.logger ⇒ Object
Returns the value of attribute logger.
7
8
9
|
# File 'lib/baseline_red_rpm/logger.rb', line 7
def logger
@logger
end
|
Class Method Details
42
43
44
|
# File 'lib/baseline_red_rpm.rb', line 42
def configure
yield(config)
end
|
.disable_agent? ⇒ Boolean
147
148
149
150
151
152
153
154
155
|
# File 'lib/baseline_red_rpm.rb', line 147
def disable_agent?
if config.agent_disabled
true
elsif Introspector.agentable?
false
else
true
end
end
|
.floor_time(t, sec = 1) ⇒ Object
143
144
145
|
# File 'lib/baseline_red_rpm.rb', line 143
def floor_time(t, sec = 1)
Time.at((t.to_f / sec).floor * sec)
end
|
.host ⇒ Object
123
124
125
|
# File 'lib/baseline_red_rpm.rb', line 123
def host
@host ||= Socket.gethostname
end
|
.mutex ⇒ Object
54
55
56
|
# File 'lib/baseline_red_rpm.rb', line 54
def mutex
@mutex ||= Mutex.new
end
|
.now ⇒ Object
157
158
159
160
161
162
163
|
# File 'lib/baseline_red_rpm.rb', line 157
def now
if defined?(Process::CLOCK_REALTIME)
Process.clock_gettime(Process::CLOCK_REALTIME)
else
Time.now
end
end
|
.round_time(t, sec = 1) ⇒ Object
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# File 'lib/baseline_red_rpm.rb', line 127
def round_time(t, sec = 1)
t = Time.parse(t.to_s)
down = t - (t.to_i % sec)
up = down + sec
difference_down = t - down
difference_up = up - t
if (difference_down < difference_up)
return down
else
return up
end
end
|
.sender ⇒ Object
70
71
72
73
74
75
76
77
78
|
# File 'lib/baseline_red_rpm.rb', line 70
def sender
@sender ||= BaselineRedRpm::Reporters::JsonClient.new(
url: url,
collector: collector,
flush_interval: config.flush_interval
)
@sender.sample_memory = config.sample_memory
@sender
end
|
.tracing? ⇒ Boolean
109
110
111
|
# File 'lib/baseline_red_rpm.rb', line 109
def tracing?
!!@tracing
end
|
.tracing_off ⇒ Object
102
103
104
105
106
107
|
# File 'lib/baseline_red_rpm.rb', line 102
def tracing_off
mutex.synchronize do
BaselineRedRpm.logger.debug "Disabling tracing."
@tracing = false
end
end
|
.tracing_on ⇒ Object
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/baseline_red_rpm.rb', line 91
def tracing_on
if @without_tracing_enabled
BaselineRedRpm.logger.debug "Not turning tracing on due to without tracing mode."
return
end
mutex.synchronize do
BaselineRedRpm.logger.debug "Enabling tracing."
@tracing = true
end
end
|
.url ⇒ Object
66
67
68
|
# File 'lib/baseline_red_rpm.rb', line 66
def url
@url ||= "#{config.host}/api/listener/3/#{config.license_key}"
end
|
.without_tracing ⇒ Object