class Inspec::Telemetry::Collector

A Singleton collection of data series objects.

Attributes

config[R]

Public Class Methods

new() click to toggle source
# File lib/inspec/utils/telemetry/collector.rb, line 12
def initialize
  @data_series = []
  @telemetry_toggled_off = false
  load_config
end

Public Instance Methods

add_data_series(data_series) click to toggle source

Add a data series to the collection. @return [True]

# File lib/inspec/utils/telemetry/collector.rb, line 25
def add_data_series(data_series)
  @data_series << data_series
end
disable_telemetry() click to toggle source

A way to disable the telemetry system.

# File lib/inspec/utils/telemetry/collector.rb, line 41
def disable_telemetry
  @telemetry_toggled_off = true
end
find_or_create_data_series(name) click to toggle source

Finds the data series object with the specified name and returns it. If it does not exist then creates a new data series with that name and returns it. @return [Inspec::Telemetry::DataSeries]

# File lib/inspec/utils/telemetry/collector.rb, line 55
def find_or_create_data_series(name)
  ds = @data_series.select { |data_series| data_series.name.eql?(name) }
  if ds.empty?
    new_data_series = Inspec::Telemetry::DataSeries.new(name)
    @data_series << new_data_series
    new_data_series
  else
    ds.first
  end
end
list_data_series() click to toggle source

The entire data series collection. @return [Array]

# File lib/inspec/utils/telemetry/collector.rb, line 47
def list_data_series
  @data_series
end
load_config(config = Inspec::Config.cached) click to toggle source

Allow loading a configuration, useful when testing.

# File lib/inspec/utils/telemetry/collector.rb, line 19
def load_config(config = Inspec::Config.cached)
  @config = config
end
reset!() click to toggle source

Blanks the contents of the data series collection. Reset telemetry toggle @return [True]

# File lib/inspec/utils/telemetry/collector.rb, line 69
def reset!
  @data_series = []
  @telemetry_toggled_off = false
end
telemetry_enabled?() click to toggle source

The loaded configuration should have a option to configure telemetry, if not default to false. @return [True, False]

# File lib/inspec/utils/telemetry/collector.rb, line 32
def telemetry_enabled?
  if @telemetry_toggled_off
    false
  else
    config_telemetry_options.fetch("enable_telemetry", false)
  end
end

Private Instance Methods

config_telemetry_options() click to toggle source

Minimize exposure of Inspec::Config interface

# File lib/inspec/utils/telemetry/collector.rb, line 77
def config_telemetry_options
  config.telemetry_options
end