class Appsignal::Environment
@!visibility private
def self.report(key)
-
(void)-
Other tags:
- Yieldreturn: - The value of the key of the environment metadata.
Parameters:
-
key(String) -- The name of the key of the environment metadata value.
Other tags:
- Example: When an error occurs -
Example: When a value is nil -
Example: Reporting a key and value -
def self.report(key) key = case key when String key else Appsignal.internal_logger.error "Unable to report on environment " \ "metadata: Unsupported value type for #{key.inspect}" return end yielded_value = begin yield rescue => e Appsignal.internal_logger.error \ "Unable to report on environment metadata #{key.inspect}:\n" \ "#{e.class}: #{e}" ERROR_ON_YIELD end return if yielded_value == ERROR_ON_YIELD value = case yielded_value when TrueClass, FalseClass yielded_value.to_s when String yielded_value else Appsignal.internal_logger.error "Unable to report on environment " \ "metadata #{key.inspect}: Unsupported value type for " \ "#{yielded_value.inspect}" return end Appsignal::Extension.set_environment_metadata(key, value) rescue => e Appsignal.internal_logger.error "Unable to report on environment " \ "metadata:\n#{e.class}: #{e}" end
def self.report_enabled(feature)
-
(void)-
Parameters:
-
feature(String) -- Name of the feature to report as enabled.
def self.report_enabled(feature) Appsignal::Environment.report("ruby_#{feature}_enabled") { true } rescue => e Appsignal.internal_logger.error "Unable to report integration " \ "enabled:\n#{e.class}: #{e}" end
def self.report_supported_gems
-
(void)-
def self.report_supported_gems return unless defined?(Bundler) # Do nothing if Bundler is not present bundle_gem_specs = if ::Bundler.rubygems.respond_to?(:installed_specs) ::Bundler.rubygems.installed_specs else ::Bundler.rubygems.all_specs end SUPPORTED_GEMS.each do |gem_name| gem_spec = bundle_gem_specs.find { |spec| spec.name == gem_name } next unless gem_spec report("ruby_#{gem_name}_version") { gem_spec.version.to_s } end rescue => e Appsignal.internal_logger.error "Unable to report supported gems:\n" \ "#{e.class}: #{e}" end