Module: RorVsWild
- Defined in:
- lib/rorvswild.rb,
lib/rorvswild/host.rb,
lib/rorvswild/agent.rb,
lib/rorvswild/error.rb,
lib/rorvswild/local.rb,
lib/rorvswild/queue.rb,
lib/rorvswild/client.rb,
lib/rorvswild/locator.rb,
lib/rorvswild/metrics.rb,
lib/rorvswild/section.rb,
lib/rorvswild/version.rb,
lib/rorvswild/execution.rb,
lib/rorvswild/installer.rb,
lib/rorvswild/deployment.rb,
lib/rorvswild/local/queue.rb,
lib/rorvswild/metrics/cpu.rb,
lib/rorvswild/plugin/mongo.rb,
lib/rorvswild/plugin/redis.rb,
lib/rorvswild/rails_loader.rb,
lib/rorvswild/plugin/resque.rb,
lib/rorvswild/metrics/memory.rb,
lib/rorvswild/plugin/faktory.rb,
lib/rorvswild/plugin/sidekiq.rb,
lib/rorvswild/metrics/storage.rb,
lib/rorvswild/plugin/net_http.rb,
lib/rorvswild/local/middleware.rb,
lib/rorvswild/plugin/active_job.rb,
lib/rorvswild/plugin/middleware.rb,
lib/rorvswild/plugin/action_view.rb,
lib/rorvswild/plugin/delayed_job.rb,
lib/rorvswild/plugin/rails_cache.rb,
lib/rorvswild/plugin/rails_error.rb,
lib/rorvswild/plugin/action_mailer.rb,
lib/rorvswild/plugin/active_record.rb,
lib/rorvswild/plugin/elasticsearch.rb,
lib/rorvswild/plugin/action_controller.rb
Defined Under Namespace
Modules: Deployment, Host, Local, Plugin
Classes: Agent, Client, Error, Execution, Installer, Locator, Metrics, Queue, RailsLoader, Section
Constant Summary
collapse
- VERSION =
"1.10.0".freeze
Class Method Summary
collapse
Class Method Details
.agent ⇒ Object
23
24
25
|
# File 'lib/rorvswild.rb', line 23
def self.agent
@agent
end
|
.catch_error(context = nil, &block) ⇒ Object
53
54
55
|
# File 'lib/rorvswild.rb', line 53
def self.catch_error(context = nil, &block)
agent ? agent.catch_error(context, &block) : block.call
end
|
.check ⇒ Object
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/rorvswild.rb', line 85
def self.check
api_key = RorVsWild.agent.config[:api_key]
agent.client.instance_variable_set(:@http_unauthorized, false)
return puts "Your API key is missing and has to be defined in config/rorvswild.yml." if !api_key || api_key.empty?
puts case response = agent.client.post("/jobs", jobs: [{sections: [], name: "RorVsWild.check", runtime: 0}])
when Net::HTTPOK then "Connection to RorVsWild works fine !"
when Net::HTTPUnauthorized then "Wrong API key"
else puts "Something went wrong: #{response.inspect}"
end
end
|
.clock_milliseconds ⇒ Object
81
82
83
|
# File 'lib/rorvswild.rb', line 81
def self.clock_milliseconds
Process.clock_gettime(Process::CLOCK_MONOTONIC, :float_millisecond)
end
|
.initialize_logger(destination = nil) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/rorvswild.rb', line 69
def self.initialize_logger(destination = nil)
if destination.respond_to?(:info) && destination.respond_to?(:warn) && destination.respond_to?(:error)
destination
elsif destination
Logger.new(destination)
elsif defined?(Rails)
Rails.logger
else
Logger.new(STDOUT)
end
end
|
.logger ⇒ Object
27
28
29
|
# File 'lib/rorvswild.rb', line 27
def self.logger
@logger ||= initialize_logger
end
|
.measure(method_or_code = nil, &block) ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/rorvswild.rb', line 31
def self.measure(method_or_code = nil, &block)
if block
measure_block(method_or_code, &block)
elsif method_or_code.is_a?(Method) || method_or_code.is_a?(UnboundMethod)
measure_method(method_or_code)
else
measure_code(method_or_code)
end
end
|
.measure_block(name, &block) ⇒ Object
45
46
47
|
# File 'lib/rorvswild.rb', line 45
def self.measure_block(name, &block)
agent ? agent.measure_block(name , &block) : block.call
end
|
.measure_code(code) ⇒ Object
41
42
43
|
# File 'lib/rorvswild.rb', line 41
def self.measure_code(code)
agent ? agent.measure_code(code) : eval(code)
end
|
.measure_method(method) ⇒ Object
49
50
51
|
# File 'lib/rorvswild.rb', line 49
def self.measure_method(method)
agent.measure_method(method) if agent
end
|
.merge_error_context(hash) ⇒ Object
61
62
63
|
# File 'lib/rorvswild.rb', line 61
def self.merge_error_context(hash)
agent.merge_error_context(hash) if agent
end
|
.record_error(exception, context = nil) ⇒ Object
57
58
59
|
# File 'lib/rorvswild.rb', line 57
def self.record_error(exception, context = nil)
agent.record_error(exception, context) if agent
end
|
.send_server_timing=(boolean) ⇒ Object
65
66
67
|
# File 'lib/rorvswild.rb', line 65
def self.send_server_timing=(boolean)
warn "[DEPRECATION] `RorVsWild.send_server_timing=` is deprecated and is no longer supported."
end
|
.start(config) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/rorvswild.rb', line 15
def self.start(config)
@logger = initialize_logger(config[:logger])
@agent = Agent.new(config)
rescue Exception => ex
logger.error(ex)
raise
end
|