Sha256: 84f1366f9f4f0115e5f6fce8b7cb3b9ac86e5f7780c0bc30bd00ae634882f28c
Contents?: true
Size: 879 Bytes
Versions: 2
Compression:
Stored size: 879 Bytes
Contents
module Salus class Delta < Metric def initialize(defaults={}) super(defaults) option :minimum, Numeric validate(:minimum, @opts[:minimum]) if @opts.key?(:minimum) end protected def calc super @last_calced_value = nil if @values.length < STORAGE_DEPTH return elsif @values[0].expired?(@values[1].timestamp) return elsif !@values[0].value.is_a?(Numeric) return elsif !@values[1].value.is_a?(Numeric) return end @last_calced_value = begin dt = (@values[1].timestamp - @values[0].timestamp) dv = (@values[1].value - @values[0].value) r = (dt == 0) ? nil : dv if @opts.key?(:minimum) && !r.nil? && r < @opts[:minimum] nil else r end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
salus-0.2.1 | lib/salus/metric/delta.rb |
salus-0.2.0 | lib/salus/metric/delta.rb |