Class: ScoutApm::StoreReportingPeriodTimestamp

Inherits:
Object
  • Object
show all
Defined in:
lib/scout_apm/store.rb

Overview

A timestamp, normalized to the beginning of a minute. Used as a hash key to bucket metrics into per-minute groups

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(time = Time.now) ⇒ StoreReportingPeriodTimestamp

Returns a new instance of StoreReportingPeriodTimestamp.



106
107
108
109
# File 'lib/scout_apm/store.rb', line 106

def initialize(time=Time.now)
  @raw_time = time.utc # The actual time passed in. Store it so we can to_s it without reparsing a timestamp
  @timestamp = @raw_time.to_i - @raw_time.sec # The normalized time (integer) to compare by
end

Instance Attribute Details

#timestampObject (readonly)

Returns the value of attribute timestamp.



104
105
106
# File 'lib/scout_apm/store.rb', line 104

def timestamp
  @timestamp
end

Instance Method Details

#==(o) ⇒ Object



119
120
121
# File 'lib/scout_apm/store.rb', line 119

def ==(o)
  self.eql?(o)
end

#age_in_secondsObject



127
128
129
# File 'lib/scout_apm/store.rb', line 127

def age_in_seconds
  Time.now.to_i - timestamp
end

#eql?(o) ⇒ Boolean

Returns:

  • (Boolean)


115
116
117
# File 'lib/scout_apm/store.rb', line 115

def eql?(o)
  self.class == o.class && timestamp.eql?(o.timestamp)
end

#hashObject



123
124
125
# File 'lib/scout_apm/store.rb', line 123

def hash
  timestamp.hash
end

#to_sObject



111
112
113
# File 'lib/scout_apm/store.rb', line 111

def to_s
  Time.at(@timestamp).iso8601
end