<script type="text/javascript" src="d3.v2.min.js"></script>
<style type="text/css">
- body {
- font-family: Sans-serif;
- font-size: 12px;
- }
-
line {
stroke: black;
stroke-width: 1;
</head>
<body>
- <h1>P2Pool Graphs</h1>
+ <h1><a href="/static/">P2Pool</a> > Graphs</h1>
<p>Periods: <span id="period_chooser"></span> Current: <span id="period_current"></span></p>
<h2>Miners</h2>
<div id="miners"></div>
+ <h2>Desired versions</h2>
+ <svg id="desired_versions"></svg>
+
<script type="text/javascript">
function compose() {
var funcs = arguments;
d3.json("/web/graph_data/miner_hash_rates/last_" + lowerperiod, function(data) {
d3.json("/web/graph_data/miner_dead_hash_rates/last_" + lowerperiod, function(dead_data) {
- var users = {}; for(var i = 0; i < data.length; ++i) for(var u in data[i][1]) users[u] = null; for(var i = 0; i < dead_data.length; ++i) for(var u in dead_data[i][1]) users[u] = null;
- var userlist = []; for(var u in users) userlist.push(u);
- d3.select("#miners").selectAll("*").remove();
- var div = d3.select("#miners").selectAll().data(userlist).enter().append("div");
- div.append("h3").text(identity);
- div.append("svg:svg").each(function(u) {
- plot(d3.select(this), "H/s", "H", [
- {"data": data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#0000FF", "label": "Total"},
- {"data": dead_data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#FF0000", "label": "Dead"}
- ]);
+ d3.json("/web/graph_data/current_payouts/last_" + lowerperiod, function(current_payouts) {
+ var users = {}; for(var i = 0; i < data.length; ++i) for(var u in data[i][1]) users[u] = null; for(var i = 0; i < dead_data.length; ++i) for(var u in dead_data[i][1]) users[u] = null;
+ var userlist = []; for(var u in users) userlist.push(u);
+ userlist.sort();
+ d3.select("#miners").selectAll("*").remove();
+ var div = d3.select("#miners").selectAll().data(userlist).enter().append("div");
+ div.append("h3").text(identity);
+ div.append("svg:svg").each(function(u) {
+ plot(d3.select(this), "H/s", "H", [
+ {"data": data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#0000FF", "label": "Total"},
+ {"data": dead_data, "value_getter": function(d) { return u in d ? d[u] : 0; }, "color": "#FF0000", "label": "Dead"}
+ ]);
+ });
+ div.append("svg:svg").each(function(u) {
+ plot(d3.select(this), "BTC", null, [
+ {"data": current_payouts, "value_getter": function(d) { return u in d ? d[u] : null; }, "color": "#0000FF"}
+ ]);
+ });
});
});
});
+
+ d3.json("/web/graph_data/desired_versions/last_" + lowerperiod, function(data) {
+ var vers = {}; for(var i = 0; i < data.length; ++i) for(var v in data[i][1]) vers[v] = null;
+ var verlist = []; for(var v in vers) verlist.push(v);
+ verlist.sort();
+
+ lines = [];
+ for(var i = 0; i < verlist.length; i++) {
+ lines.push({
+ data: data,
+ value_getter: function(v){ return function(d) { return v in d ? d[v] : null; } }(verlist[i]),
+ color: "#0000FF",
+ label: verlist[i]
+ });
+ }
+ plot(d3.select('#desired_versions'), '', null, lines);
+ });
}
periods = ["Hour", "Day", "Week", "Month", "Year"];