Commit f260ff6f authored by Paul Asmuth's avatar Paul Asmuth
Browse files

websocket cleanup wip

parent 2d02dbcf
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -22,10 +22,16 @@ private
    messages << widget(ns, event) if event["type"] == "widget_request"
    messages << gauge(ns, event) if event["type"] == "render_request"
    messages << active_users(ns, event) if event["type"] == "active_users_request"
    messages.flatten.compact

    m = messages.flatten.compact.map do |m|
      m["namespace"] = event["namespace"]; m
    end
    puts m.inspect
    m
  end

  def widget(namespace, event)
    puts event.inspect
    "FnordMetric::#{event["klass"]}".constantize.execute(namespace, event) # FIXPAUL
  end

+3 −3
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ class FnordMetric::NumbersWidget < FnordMetric::Widget
    return false unless resp

    resp.merge(
      :class => "widget_response",
      :type => "widget_response",
      :widget_key => event["widget_key"]
    )
  end
@@ -37,7 +37,7 @@ class FnordMetric::NumbersWidget < FnordMetric::Widget
    end

    { "cmd" => "values_for",
      "series" => gauge.name, 
      "gauge" => gauge.name,
      "values" => values }
  end

+58 −0
Original line number Diff line number Diff line


+ widget_key is an arbitrary value chosen by the client and
  included in the response (used for pipelining)



Timeseries Data
===============

  request:

    {
      "namespace":"loveos",
      "type":"widget_request",
      "klass":"TimeseriesWidget",
      "cmd":"values_at",
      "gauges":["user_logins", "user_logins_failed"],
      "since":1360317470,
      "until":1360333470,
      "widget_key": 123123123123,
    }

  response:



Single Value
============

  request:

    {
      "namespace": "loveos",
      "type": "widget_request",
      "klass": "generic",
      "cmd": "values_for",
      "gauge": "order_sum",
      "offsets": ["s3600"],
      "widget_key": 123123123
    }

  response:

    {
      "namespace":"loveos",
      "type":"widget_response",
      "cmd": "values_for",
      "gauge": "order_sum",
      "values": {
        "order_sum-0-216000": {
          "value": 21964
        }
      },
      "widget_key": 123123123
    }