Sha256: cc7e96b67c20437944d8c9664f0fef7155f08564c00d9efe03a92a656d875ac1
Contents?: true
Size: 886 Bytes
Versions: 1
Compression:
Stored size: 886 Bytes
Contents
require 'dynoscale_agent/measurement' module DynoscaleAgent 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dynoscale_agent-1.0.0 | lib/dynoscale_agent/report.rb |