Commit 7ade8408 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

simple multigauge/timeseries gauge increment working

parent a2e708d2
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -34,8 +34,8 @@ class FnordMetric::Context
  end

  def dispatch(method, *args, &block)
    if args.size > 0 && multi_gauge?(args.first)
      @opts[:gauges][args.delete_at(0)].send(:"cmd_#{method}", *args.unshift(self), &block)
    if args.size > 0 && @opts[:gauges][args[0]].try(:renderable?)
      @opts[:gauges][args.delete_at(0)].execute(method, *args.unshift(self), &block)
    else
      send(method, *args, &block)
    end
@@ -65,10 +65,6 @@ private

protected
  
  def multi_gauge?(_gauge)
    @opts[:gauges].has_key?(_gauge) && @opts[:gauges][_gauge].is_a?(FnordMetric::MultiGauge)
  end

  def fetch_gauge(_gauge)
    _gauge.is_a?(FnordMetric::Gauge) ? _gauge : @opts[:gauges].fetch(_gauge)
  rescue
+22 −22
Original line number Diff line number Diff line
@@ -55,12 +55,34 @@ class FnordMetric::TimeseriesGauge < FnordMetric::Gauge
    }
  end

  def execute(cmd, context, *args)
    incr_series(context, *args) if cmd == :incr
  end

  def renderable?
    true
  end

private

  def incr_series(context, series, value)
    unless series_gauges[series.to_sym]
      return FnordMetric.error("gauge '#{name}': unknown series: #{series}")
    end

    context.incr(series_gauges[series.to_sym], value)
  end

  def series_gauges
    @series_gauges ||= Hash[@opts[:series].map do |series|
      [series, FnordMetric::Gauge.new(
        :key => "count-#{series}", 
        :key_prefix => key,
        :tick => tick.to_i,
      )]
    end]
  end

  # def render_result
  #   @series_render = @opts["series"].map do |skey, sopts|
  #     {
@@ -117,29 +139,7 @@ end
#   end


# private

#   def incr_series(series, time, value)
#     value = value.to_i == 0 ? 1 : value.to_i
#     unless series_count_metrics[series]
#       return FnordMetric.error("gauge '#{name}' -> unknown series: #{series}")
#     end
#     series_count_metrics[series].values.each do |metric|
#       metric.incr(time, value)
#     end
#   end

#   def series_count_metrics
#     @series_gauges ||= Hash[@opts[:series].map do |series|
#       [series, Hash[@opts[:ticks].map do |tick|
#         [tick.to_i, FnordMetric::RedisMetric.new(
#           :key => "count-#{series}", 
#           :key_prefix => key,
#           :tick => tick.to_i,
#         )]
#       end]]
#     end]
#   end

      
#   def render_series_numbers(series)
+2 −4
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ class FnordMetric::Worker

  def initialized
    FnordMetric.log("worker started")
    tick
    EM.next_tick(&method(:tick))
  end

  def tick
@@ -26,12 +26,10 @@ class FnordMetric::Worker
  end

  def process_event(event_id, event_data)
    puts "OUTER #{event_data}"
    EM.next_tick do      
      parse_json(event_data).tap do |event|                
        event[:_time] ||= Time.now.to_i
        event[:_eid] = event_id
        puts "INNER"
        announce_event(event)
        publish_event(event)        
        expire_event(event_id)