Module: InfluxDB::Rails
- Extended by:
- Logger
- Defined in:
- lib/influxdb-rails.rb,
lib/influxdb/rails/rack.rb,
lib/influxdb/rails/rails.rb,
lib/influxdb/rails/logger.rb,
lib/influxdb/rails/railtie.rb,
lib/influxdb/rails/version.rb,
lib/influxdb/rails/backtrace.rb,
lib/influxdb/rails/configuration.rb,
lib/influxdb/rails/instrumentation.rb,
lib/influxdb/rails/exception_presenter.rb,
lib/influxdb/rails/air_traffic_controller.rb,
lib/influxdb/rails/middleware/hijack_render_exception.rb,
lib/influxdb/rails/middleware/hijack_rescue_action_everywhere.rb
Defined Under Namespace
Modules: AirTrafficController, Instrumentation, Logger, Middleware
Classes: Backtrace, Configuration, ExceptionPresenter, Rack, Railtie
Constant Summary
collapse
- VERSION =
"0.0.1"
Constants included
from Logger
Logger::PREFIX
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.client ⇒ Object
Returns the value of attribute client.
22
23
24
|
# File 'lib/influxdb-rails.rb', line 22
def client
@client
end
|
Class Method Details
24
25
26
27
|
# File 'lib/influxdb-rails.rb', line 24
def configure(silent = false)
yield(configuration)
self.client = InfluxDB::Client.new
end
|
.current_timestamp ⇒ Object
54
55
56
|
# File 'lib/influxdb-rails.rb', line 54
def current_timestamp
Time.now.utc.to_i
end
|
.ignorable_exception?(e) ⇒ Boolean
58
59
60
61
62
|
# File 'lib/influxdb-rails.rb', line 58
def ignorable_exception?(e)
configuration.ignore_current_environment? ||
!!configuration.ignored_exception_messages.find{ |msg| /.*#{msg}.*/ =~ e.message } ||
configuration.ignored_exceptions.include?(e.class.to_s)
end
|
.initialize ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/influxdb/rails/rails.rb', line 10
def self.initialize
ActionController::Base.send(:include, InfluxDB::Rails::AirTrafficController)
ActionController::Base.send(:include, InfluxDB::Rails::Middleware::HijackRescueActionEverywhere)
ActionController::Base.send(:include, InfluxDB::Rails::Benchmarking)
ActionController::Base.send(:include, InfluxDB::Rails::Instrumentation)
::Rails.configuration.middleware.insert_after 'ActionController::Failsafe', InfluxDB::Rack
InfluxDB.configure(true) do |config|
config.logger ||= ::Rails.logger
config.debug = true
config.environment ||= ::Rails.env
config.application_root ||= ::Rails.root
config.application_name ||= "Application"
config.framework = "Rails"
config.framework_version = ::Rails.version
end
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
InfluxDB::Worker.spawn_threads() if forked
end
else
InfluxDB::Worker.spawn_threads()
end
end
|
.report_exception(e, env = {}) ⇒ Object
Also known as:
transmit
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/influxdb-rails.rb', line 38
def report_exception(e, env = {})
begin
env = influxdb_request_data if env.empty? && defined? influxdb_request_data
exception_presenter = ExceptionPresenter.new(e, env)
log :info, "Exception: #{exception_presenter.to_json[0..512]}..."
InfluxDB::Rails.client.write_point "rails.exceptions",
:context => exception_presenter.context,
:dimensions => exception_presenter.dimensions
rescue => e
log :info, "[InfluxDB] Something went terribly wrong. Exception failed to take off! #{e.class}: #{e.message}"
end
end
|
.report_exception_unless_ignorable(e, env = {}) ⇒ Object
Also known as:
transmit_unless_ignorable
33
34
35
|
# File 'lib/influxdb-rails.rb', line 33
def report_exception_unless_ignorable(e, env = {})
report_exception(e, env) unless ignorable_exception?(e)
end
|
.rescue(&block) ⇒ Object
64
65
66
67
68
69
70
71
72
|
# File 'lib/influxdb-rails.rb', line 64
def rescue(&block)
block.call
rescue StandardError => e
if configuration.ignore_current_environment?
raise(e)
else
transmit_unless_ignorable(e)
end
end
|
.rescue_and_reraise(&block) ⇒ Object
74
75
76
77
78
79
|
# File 'lib/influxdb-rails.rb', line 74
def rescue_and_reraise(&block)
block.call
rescue StandardError => e
transmit_unless_ignorable(e)
raise(e)
end
|