module FnordMetric::Enterprise

  CompatibilityHandler = proc do
    if data[:_cmd]
     cmd = data[:_cmd].to_s
    else
      FnordMetric.error("missing key: _cmd")
      next
    end

    if m = cmd.match(/^SAMPLE (.*)(delta|mean)-([0-9]+) ([0-9]+)$/)
      gauge_type = m[2].to_sym
      gauge_tick = m[3].to_i
      gauge_key = :"#{m[1]}#{gauge_type}-#{gauge_tick}"
      op_value = m[4].to_i
    else
      FnordMetric.error("invalid _cmd")
      next
    end

    gauge = if namespace.gauges.has_key?(gauge_key)
      namespace.gauges[gauge_key]
    else
      namespace.opt_gauge(gauge_key,
        :flush_interval => gauge_tick,
        :average => (gauge_type == :mean),
        :zero_config => true)
    end

    case gauge_type

      when :delta
        incr gauge, op_value

      when :mean
        incr_avg gauge, op_value

    end

  end

end