<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -30,6 +30,15 @@ info(stats) -&gt;
     {member_nodes,transform_partitions([], lists:keysort(1, membership:partitions()))}
   ]}.
 
+rates(cluster) -&gt;
+  {obj, [
+    {get_rate, lists:foldl(fun(Node, Acc) -&gt; Acc + socket_server:rate(Node, get_rate, 1) end, 0, nodes([this,visible]))},
+    {put_rate, lists:foldl(fun(Node, Acc) -&gt; Acc + socket_server:rate(Node, put_rate, 1) end, 0, nodes([this,visible]))},
+    {in_rate, lists:foldl(fun(Node, Acc) -&gt; Acc + socket_server:rate(Node, in_rate, 1) end, 0, nodes([this,visible]))},
+    {out_rate, lists:foldl(fun(Node, Acc) -&gt; Acc + socket_server:rate(Node, out_rate, 1) end, 0, nodes([this,visible]))},
+    {connections, lists:foldl(fun(Node, Acc) -&gt; Acc + socket_server:connections(Node) end, 0, nodes([this,visible]))}
+  ]};
+
 rates(Node) -&gt;
   {obj, [
     {get_rate, socket_server:rate(Node, get_rate, 1)},</diff>
      <filename>elibs/web_rpc.erl</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,13 @@
     &lt;script type=&quot;text/javascript&quot; src=&quot;/javascripts/domec.js&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot; src=&quot;/javascripts/jquery.timer.js&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot;&gt;
+      function decimals(number, value) {
+        with(Math) {
+          var coefficient = pow(10, number);
+          return round(value * coefficient) / coefficient;
+        }
+      }
+    
       $(document).ready(function(data) {
         $.getJSON(&quot;/rpc/info/stats&quot;, function(stats) {
           $(&quot;#node&quot;).text(stats.node);
@@ -15,6 +22,7 @@
             var partitions = node_struct[1];
 						$.create(&quot;a&quot;, {'href' : '#'}, &quot;+&quot;).click(function() {
 							$(&quot;#&quot; + node.split(&quot;@&quot;).join(&quot;at&quot;) + &quot;_partitions&quot;).toggle(&quot;slow&quot;);
+							return false;
 						}).appendTo($.create(&quot;li&quot;, {}, node + &quot; &quot;).appendTo(&quot;#member_nodes&quot;));
             var children = $.map(partitions, function(part) {
               return $.create(&quot;li&quot;, {}, &quot;&quot; + part);
@@ -23,14 +31,24 @@
           });
           $.timer(1000, function(timer) {
             $.getJSON(&quot;/rpc/rates/&quot; + escape(stats.node), function(rates) {
-              $(&quot;#get_rate&quot;).text(rates.get_rate);
-              $(&quot;#put_rate&quot;).text(rates.put_rate);
-              $(&quot;#in_rate&quot;).text(rates.in_rate);
-              $(&quot;#out_rate&quot;).text(rates.out_rate);
+              $(&quot;#get_rate&quot;).text(decimals(2, rates.get_rate));
+              $(&quot;#put_rate&quot;).text(decimals(2, rates.put_rate));
+              $(&quot;#in_rate&quot;).text(decimals(2, rates.in_rate / Math.pow(2, 10)));
+              $(&quot;#out_rate&quot;).text(decimals(2, rates.out_rate / Math.pow(2, 10)));
               $(&quot;#connections&quot;).text(rates.connections);
             });
             timer.reset(1000);
           });
+          $.timer(1000, function(timer) {
+            $.getJSON(&quot;/rpc/rates/cluster&quot;, function(rates) {
+              $(&quot;#c_get_rate&quot;).text(decimals(2, rates.get_rate));
+              $(&quot;#c_put_rate&quot;).text(decimals(2, rates.put_rate));
+              $(&quot;#c_in_rate&quot;).text(decimals(2, rates.in_rate / Math.pow(2, 10)));
+              $(&quot;#c_out_rate&quot;).text(decimals(2, rates.out_rate / Math.pow(2, 10)));
+              $(&quot;#c_connections&quot;).text(rates.connections);
+            });
+            timer.reset(1000);
+          });
         });
       });
     &lt;/script&gt;
@@ -43,12 +61,17 @@
     &lt;ul&gt;
       &lt;li&gt;&lt;span id=&quot;get_rate&quot;&gt;0.0&lt;/span&gt; gets/sec&lt;/li&gt;
       &lt;li&gt;&lt;span id=&quot;put_rate&quot;&gt;0.0&lt;/span&gt; puts/sec&lt;/li&gt;
-      &lt;li&gt;&lt;span id=&quot;out_rate&quot;&gt;0.0&lt;/span&gt; bytes/sec out&lt;/li&gt;
-      &lt;li&gt;&lt;span id=&quot;in_rate&quot;&gt;0.0&lt;/span&gt; bytes/sec in&lt;/li&gt;
+      &lt;li&gt;&lt;span id=&quot;out_rate&quot;&gt;0.0&lt;/span&gt; KB/sec out&lt;/li&gt;
+      &lt;li&gt;&lt;span id=&quot;in_rate&quot;&gt;0.0&lt;/span&gt; KB/sec in&lt;/li&gt;
       &lt;li&gt;&lt;span id=&quot;connections&quot;&gt;0.0&lt;/span&gt; connections&lt;/li&gt;
     &lt;/ul&gt;
     &lt;h3&gt;Cluster Stats&lt;/h3&gt;
     &lt;ul&gt;
+      &lt;li&gt;&lt;span id=&quot;c_get_rate&quot;&gt;0.0&lt;/span&gt; gets/sec&lt;/li&gt;
+      &lt;li&gt;&lt;span id=&quot;c_put_rate&quot;&gt;0.0&lt;/span&gt; puts/sec&lt;/li&gt;
+      &lt;li&gt;&lt;span id=&quot;c_out_rate&quot;&gt;0.0&lt;/span&gt; KB/sec out&lt;/li&gt;
+      &lt;li&gt;&lt;span id=&quot;c_in_rate&quot;&gt;0.0&lt;/span&gt; KB/sec in&lt;/li&gt;
+      &lt;li&gt;&lt;span id=&quot;c_connections&quot;&gt;0.0&lt;/span&gt; connections&lt;/li&gt;
       &lt;li&gt;Running Nodes:&lt;/li&gt;&lt;ul id=&quot;running_nodes&quot;&gt;&lt;/ul&gt;
       &lt;li&gt;Member Nodes:&lt;/li&gt;&lt;ul id=&quot;member_nodes&quot;&gt;&lt;/ul&gt;
     &lt;/ul&gt;</diff>
      <filename>web/index.html</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0eb45eeb7211d33332723352201dd161c7a6d63c</id>
    </parent>
    <parent>
      <id>5cf4969409ddb48c2d6a55181dfe15cd852ddb46</id>
    </parent>
  </parents>
  <author>
    <name>Cliff Moon</name>
    <email>cliff@moonpolysoft.com</email>
  </author>
  <url>http://github.com/cliffmoon/dynomite/commit/32f16badf00e3d965c7d39eeb05f281c650e8f1c</url>
  <id>32f16badf00e3d965c7d39eeb05f281c650e8f1c</id>
  <committed-date>2008-08-28T23:07:19-07:00</committed-date>
  <authored-date>2008-08-28T23:07:19-07:00</authored-date>
  <message>Merge branch 'master' into powerset</message>
  <tree>a72c2de4369ee8edb4db18fdfc9ede921dd36401</tree>
  <committer>
    <name>Cliff Moon</name>
    <email>cliff@moonpolysoft.com</email>
  </committer>
</commit>
