added peer count graph
authorForrest Voight <forrest@forre.st>
Wed, 21 Mar 2012 18:20:28 +0000 (14:20 -0400)
committerForrest Voight <forrest@forre.st>
Wed, 21 Mar 2012 18:24:59 +0000 (14:24 -0400)
p2pool/web.py
web-static/graphs.html

index 959faf7..59c32d7 100644 (file)
@@ -389,6 +389,8 @@ def get_web_root(tracker, current_work, current_work2, get_current_txouts, datad
         'pool_rate': graph.DataStreamDescription(True, dataview_descriptions),
         'pool_stale_rate': graph.DataStreamDescription(True, dataview_descriptions),
         'current_payout': graph.DataStreamDescription(True, dataview_descriptions),
+        'incoming_peers': graph.DataStreamDescription(True, dataview_descriptions),
+        'outgoing_peers': graph.DataStreamDescription(True, dataview_descriptions),
     }, hd_obj)
     task.LoopingCall(lambda: _atomic_write(hd_path, json.dumps(hd.to_obj()))).start(100)
     @pseudoshare_received.watch
@@ -406,6 +408,8 @@ def get_web_root(tracker, current_work, current_work2, get_current_txouts, datad
         hd.datastreams['pool_rate'].add_datum(t, poolrate)
         hd.datastreams['pool_stale_rate'].add_datum(t, poolrate - nonstalerate)
         hd.datastreams['current_payout'].add_datum(t, get_current_txouts().get(bitcoin_data.pubkey_hash_to_script2(my_pubkey_hash), 0)*1e-8)
+        hd.datastreams['incoming_peers'].add_datum(t, sum(1 for peer in p2p_node.peers.itervalues() if peer.incoming))
+        hd.datastreams['outgoing_peers'].add_datum(t, sum(1 for peer in p2p_node.peers.itervalues() if not peer.incoming))
     task.LoopingCall(add_point).start(5)
     new_root.putChild('graph_data', WebInterface(lambda source, view: json.dumps(hd.datastreams[source].dataviews[view].get_data(time.time())), 'application/json'))
     
index 3526c93..fe8f548 100644 (file)
@@ -49,6 +49,9 @@
         <h2>Pool rate - Blue=All, Red=Stale (hash/second)</h2>
         <svg id="pool"></svg>
         
+        <h2>Peers - Blue=Incoming, Red=Outgoing</h2>
+        <svg id="peers"></svg>
+        
         <script type="text/javascript">
             function compose() {
                 var funcs = arguments;
@@ -83,7 +86,7 @@
                 var margin_top = 10;
                 
                 var x = d3.time.scale().domain([as_date(d3.min(data, itemgetter(0))), as_date(d3.max(data, itemgetter(0)))]).range([0 + margin * 2, w - margin * 2]);
-                var y = d3.scale.linear().domain([0, d3.max(data, itemgetter(1))]).range([h - margin, margin_top]);
+                var y = d3.scale.linear().domain([0, d3.max(data.concat(dead_data), itemgetter(1))]).range([h - margin, margin_top]);
                 
                 var line = d3.svg.line().x(compose(x, as_date, itemgetter(0))).y(compose(y, itemgetter(1))).defined(compose(not_null, itemgetter(1)));
                 
                 attachGraph(d3.select("#local"), "local_hash_rate/last_" + lowerperiod, "local_dead_hash_rate/last_" + lowerperiod);
                 attachGraph(d3.select("#payout"), "current_payout/last_" + lowerperiod);
                 attachGraph(d3.select("#pool"), "pool_rate/last_" + lowerperiod, "pool_stale_rate/last_" + lowerperiod);
+                attachGraph(d3.select("#peers"), "incoming_peers/last_" + lowerperiod, "outgoing_peers/last_" + lowerperiod);
                 d3.select("#period_current").text(period);
             }
             change_period(periods[1]);