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

.agentObject



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

.checkObject



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_millisecondsObject



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

.loggerObject



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