Sha256: 73af01ac23a9e9d156ffcd5b692803ad3d71294de60d5297be322e4eb6df63d4
Contents?: true
Size: 884 Bytes
Versions: 3
Compression:
Stored size: 884 Bytes
Contents
require 'dynoscale_ruby/measurement' module DynoscaleRuby class Report REPORT_TTL = 5 * 60 # minutes attr_reader :publish_timestamp, :measurements def initialize(publish_timestamp) @measurements = [] @publish_timestamp = publish_timestamp end def add_measurement(current_time = Time.now, metric, source, metadata) @measurements << Measurement.new(current_time.to_i, metric, source, metadata) end def add_measurements(measurements) @measurements.unshift(*measurements) end def ready_to_publish?(current_time = Time.now) @measurements.any? && publish_timestamp < current_time end def expired?(current_time = Time.now) publish_timestamp < (current_time - REPORT_TTL) end def to_csv @measurements.reduce(""){|t, m| "#{t}#{m.timestamp},#{m.metric},#{m.source},#{m.metadata}\n"} end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dynoscale_ruby-1.0.3 | lib/dynoscale_ruby/report.rb |
dynoscale_ruby-1.0.2 | lib/dynoscale_ruby/report.rb |
dynoscale_ruby-1.0.1 | lib/dynoscale_ruby/report.rb |