Sha256: b181d16e62585532a3834465a769cf1b24d7359a5f5f49a5617695a206eb0b9d
Contents?: true
Size: 1.3 KB
Versions: 3
Compression:
Stored size: 1.3 KB
Contents
class FnordMetric::NumbersWidget < FnordMetric::Widget def self.execute(namespace, event) resp = if event["cmd"] == "values_for" execute_values_for(namespace.gauges[event["gauge"].to_sym], event) end return false unless resp resp.merge( :class => "widget_response", :widget_key => event["widget_key"] ) end def self.execute_values_for(gauge, event) _t = Time.now.to_i values = {}.tap do |out| event["offsets"].each do |off| if off.to_s.starts_with?("s") offset = 0 span = (gauge.tick * off.to_s[1..-1].to_i) values = gauge.values_in((_t-span).._t+gauge.tick) value = values.values.compact.map(&:to_i).sum else offset = off.to_i * gauge.tick span = gauge.tick value = gauge.value_at(_t-offset) end out["#{gauge.name}-#{offset}-#{span}"] = { :value => value, :desc => "$formatOffset(#{offset}, #{span})" } end end { "cmd" => "values_for", "series" => gauge.name, "values" => values } end def data super.merge( :series => gauges.map(&:name), :offsets => (@opts[:offsets] || [0, 1, "s30"]), :autoupdate => (@opts[:autoupdate] || 60) ) end def has_tick? false end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fnordmetric-1.0.1 | lib/fnordmetric/widgets/numbers_widget.rb |
fnordmetric-1.0.0 | lib/fnordmetric/widgets/numbers_widget.rb |
fnordmetric-0.9.7 | lib/fnordmetric/widgets/numbers_widget.rb |