Class: VpsbClient::Metrics::Manager

Inherits:
Object
  • Object
show all
Defined in:
lib/vpsb_client/metrics/manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(builder, uploader, interval_config) ⇒ Manager

Returns a new instance of Manager.



10
11
12
13
14
15
# File 'lib/vpsb_client/metrics/manager.rb', line 10

def initialize(builder, uploader, interval_config)
  @interval_config = interval_config
  @builder = builder
  @uploader = uploader
  @created_metric_ids = []
end

Instance Attribute Details

#created_metric_idsObject (readonly)

Returns the value of attribute created_metric_ids.



8
9
10
# File 'lib/vpsb_client/metrics/manager.rb', line 8

def created_metric_ids
  @created_metric_ids
end

Instance Method Details

#runObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/vpsb_client/metrics/manager.rb', line 17

def run
  if @interval_config.min_end_time > Time.now
    VpsbClient.logger.info "Skipping #{@interval_config.length} because too early (min_end_time=#{@interval_config.min_end_time})"
    return
  end

  @builder.each do |metric|
    VpsbClient.logger.debug "metric[:started_at]=#{metric[:started_at]} @interval_config.min_start_time=#{@interval_config.min_start_time}"
    if metric[:started_at] < @interval_config.min_start_time - 1
      VpsbClient.logger.debug "[vpsb] stop builder loop as #{metric[:started_at]} < #{@interval_config.min_start_time}"
      break
    end
    @created_metric_ids << @uploader.upload(metric)
  end
end