Class: OneApm::EnvironmentReport

Inherits:
Object
  • Object
show all
Defined in:
lib/one_apm/support/environment_report.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEnvironmentReport

Returns a new instance of EnvironmentReport.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# 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

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



58
59
60
# File 'lib/one_apm/support/environment_report.rb', line 58

def data
  @data
end

Class Method Details

.registered_reportersObject



10
11
12
# File 'lib/one_apm/support/environment_report.rb', line 10

def self.registered_reporters
  @registered_reporters ||= Hash.new
end

.registered_reporters=(logic) ⇒ Object



14
15
16
# File 'lib/one_apm/support/environment_report.rb', line 14

def self.registered_reporters=(logic)
  @registered_reporters = logic
end

.report_on(key, &block) ⇒ Object



6
7
8
# File 'lib/one_apm/support/environment_report.rb', line 6

def self.report_on(key, &block)
  registered_reporters[key] = block
end

Instance Method Details

#[](key) ⇒ Object



83
84
85
# File 'lib/one_apm/support/environment_report.rb', line 83

def [](key)
  @data[key]
end

#[]=(key, value) ⇒ Object



87
88
89
# File 'lib/one_apm/support/environment_report.rb', line 87

def []=(key, value)
  @data[key] = value
end

#to_aObject



91
92
93
# File 'lib/one_apm/support/environment_report.rb', line 91

def to_a
  @data.to_a
end