class OneApm::EnvironmentReport

Attributes

data[R]

Public Class Methods

new() click to toggle source
# File lib/one_apm/support/environment_report.rb, line 60
def initialize
  @data = self.class.registered_reporters.inject(Hash.new) do |data, (key, logic)|
    begin
      value = logic.call
      if value
        data[key] = value

        OneApm::Manager.record_metric("Supportability/EnvironmentReport/success", 0.0)
        OneApm::Manager.record_metric("Supportability/EnvironmentReport/success/#{key}", 0.0)
      else
        OneApm::Manager.logger.debug("EnvironmentReport ignoring value for #{key.inspect} which came back falsey: #{value.inspect}")
        OneApm::Manager.record_metric("Supportability/EnvironmentReport/empty", 0.0)
        OneApm::Manager.record_metric("Supportability/EnvironmentReport/empty/#{key}", 0.0)
      end
    rescue => e
      OneApm::Manager.logger.debug("EnvironmentReport failed to retrieve value for #{key.inspect}: #{e}")
      OneApm::Manager.record_metric("Supportability/EnvironmentReport/error", 0.0)
      OneApm::Manager.record_metric("Supportability/EnvironmentReport/error/#{key}", 0.0)
    end
    data
  end
end
registered_reporters() click to toggle source
# File lib/one_apm/support/environment_report.rb, line 10
def self.registered_reporters
  @registered_reporters ||= Hash.new
end
registered_reporters=(logic) click to toggle source
# File lib/one_apm/support/environment_report.rb, line 14
def self.registered_reporters=(logic)
  @registered_reporters = logic
end
report_on(key, &block) click to toggle source
# File lib/one_apm/support/environment_report.rb, line 6
def self.report_on(key, &block)
  registered_reporters[key] = block
end

Public Instance Methods

[](key) click to toggle source
# File lib/one_apm/support/environment_report.rb, line 83
def [](key)
  @data[key]
end
[]=(key, value) click to toggle source
# File lib/one_apm/support/environment_report.rb, line 87
def []=(key, value)
  @data[key] = value
end
to_a() click to toggle source
# File lib/one_apm/support/environment_report.rb, line 91
def to_a
  @data.to_a
end