biggraph = "rpctotal/diff" graphname = new Array( "*/diskbw", "disk bytes/second", "*/netbw", "network bytes/second", "*/iobw", "total: disk+net bytes/second", "apartreadbyte/diff", "arena read bytes/second", "apartwritebyte/diff", "arena write bytes/second", "bloomfalsemiss/pctdiff=bloomlookup", "bloom false hit %", "bloomhit/pctdiff=bloomlookup", "bloom miss %", "bloomlookuptime/divdiff=bloomlookup", "bloom lookup time", "bloomones/pct=bloombits", "bloom usage %", "dcachedirty/pct=dcachesize", "dcache dirty %", "dcachehit/pctdiff=dcachelookup", "dcache hit %", "dcachelookuptime/divdiff=dcachelookup", "dcache lookup time", "dcachelookup/diff", "dcache lookups/second", "dcachewrite/diff", "dcache writes/second", "icachedirty/pct=icachesize", "icache dirty %", "icachehit/pctdiff=icachelookup", "icache hit %", "icachelookuptime/divdiff=icachelookup", "icache lookup time", "icacheprefetch/diff", "icache prefetches/second", "icachewrite/diff", "icache writes/second", "isectreadbyte/diff", "isect read bytes/second", "isectwritebyte/diff", "isect write bytes/second", "lcachehit/pctdiff=lcachelookup", "lump cache hit %", "lcachelookuptime/divdiff=lcachelookup", "lump cache lookup time", "lcachewrite/diff", "lcache writes/second", "rpcreadbyte/diff", "read RPC bytes/second", "rpctotal/diff", "RPCs/second", "rpcwritebyte/diff", "write RPC bytes/second", "rpcreadtime/divdiff=rpcread", "read RPC time", "rpcwritetime/divdiff=rpcwrite", "write RPC time", "rpcreadcachedtime/divdiff=rpcreadcached", "cached read RPC time", "rpcreaduncachedtime/divdiff=rpcreaduncached", "uncached read RPC time", "rpcwritenewtime/divdiff=rpcwritenew", "fresh write RPC time", "rpcwriteduptime/divdiff=rpcwritedup", "dup write RPC time", "sumreadbyte/diff", "checksum bytes/second", "dblockstall", "threads stalled: dblock", "dcachestall", "threads stalled: dcache", "icachestall", "threads stalled: icache", "lumpstall", "threads stalled: lump", "END" ) column0 = new Array( "column0", "!bandwidth", "*/iobw", "*/netbw", "rpcreadbyte/diff", "rpcwritebyte/diff", "*/diskbw", "isectreadbyte/diff", "isectwritebyte/diff", "apartreadbyte/diff", "apartwritebyte/diff", "sumreadbyte/diff", "!bloom filter", "bloomhit/pctdiff=bloomlookup", "bloomfalsemiss/pctdiff=bloomlookup", "bloomones/pct=bloombits", "END" ) column1 = new Array( "column1", "!icache", "icachedirty/pct=icachesize", "icachehit/pctdiff=icachelookup", "icachewrite/diff", "icacheprefetch/diff", "!dcache", "dcachedirty/pct=dcachesize", "dcachehit/pctdiff=dcachelookup", "dcachelookup/diff", "dcachewrite/diff", "!lump cache", "lcachehit/pctdiff=lcachelookup", "lcachewrite/diff", "END" ) column2 = new Array( "column2", "!stalls", "icachestall", "dcachestall", "dblockstall", "lumpstall", "!timings", "bloomlookuptime/divdiff=bloomlookup", "icachelookuptime/divdiff=icachelookup", "lcachelookuptime/divdiff=lcachelookup", "dcachelookuptime/divdiff=dcachelookup", "rpcreadtime/divdiff=rpcread", "rpcwritetime/divdiff=rpcwrite", "rpcreadcachedtime/divdiff=rpcreadcached", "rpcreaduncachedtime/divdiff=rpcreaduncached", "rpcwritenewtime/divdiff=rpcwritenew", "rpcwriteduptime/divdiff=rpcwritedup", "END" ) col0info = new Array(column0.length) col1info = new Array(column1.length) col2info = new Array(column2.length) function cleardebug() { var p = document.getElementById("debug") p.innerHTML = "" } function debug(s) { var p = document.getElementById("debug") if(p.innerHTML == "") p.innerHTML = "clear\n" p.innerHTML += "
"+s } function Ginfo(y, fill, name) { var g = new Object() g.y = y g.fill = fill g.name = name return g } function cleartable(t) { for(var i=t.rows.length-1; i>=0; i--) t.deleteRow(i) } function textofname(name) { for(var i=0; i"+textofname(name)+text+"" row.innerHTML = s } function graphcell(cell, name, dt, wid, ht, fill) { cell.vAlign = "bottom" cell.align = "center" cell.width = wid cell.height = ht } function redraw() { redrawgraphs() redrawsettings() } function redrawgraphs() { var t = document.getElementById("statgraphs") cleartable(t) for(var i=0; i<4; i++) t.insertRow(i) graphrow(t.rows[0], 3, biggraph, 86400, 900, 30, 0, " – showing 24 hours") debug("t.rows.length="+t.rows.length) graphrow(t.rows[1], 3, biggraph, 3600, 900, 30, 1, " – showing 1 hour") debug("t.rows.length="+t.rows.length) t.rows[2].innerHTML = "" var r = t.rows[3] graphtable(r.insertCell(0), column0, col0info, 0) graphtable(r.insertCell(1), column1, col1info, 2) graphtable(r.insertCell(2), column2, col2info, 4) } function graphtable(bigcell, list, infolist, fill) { bigcell.innerHTML = "
" bigcell.vAlign = "top" var t = document.getElementById(list[0]) t.onclick = columnclick for(var i=1; i 1){ r.innerHTML = "" r = t.insertRow(t.rows.length) } r.innerHTML = ""+name+"" }else{ graphrow(r, 1, name, 600, 300, 30, fill++, "") } } } function xpos(obj) { var x = 0 if(obj.fixedx) return obj.fixedx if(obj.offsetParent){ while(obj.offsetParent){ x += obj.offsetLeft obj = obj.offsetParent } }else if(obj.x) x = obj.x return x } function ypos(obj) { var y = 0 if(obj.fixedy) return obj.fixedy if(obj.offsetParent){ while(obj.offsetParent){ y += obj.offsetTop obj = obj.offsetParent } }else if(obj.y) y = obj.y return y } function scrollleft() { return document.body.scrollLeft } function scrolltop() { return document.body.scrollTop } function columnclick(e) { if(e.which && e.which != 1) return var g = findgraph(scrollleft()+e.clientX, scrolltop()+e.clientY) if(g && g.name.substring(0,1) != "!"){ biggraph = g.name var t = document.getElementById("statgraphs") graphrow(t.rows[0], 3, biggraph, 86400, 900, 30, 0, " – showing 24 hours") graphrow(t.rows[1], 3, biggraph, 3600, 900, 30, 1, " – showing 1 hour") } } function findgraph(x, y) { var g if(g = findgraphin(x, y, "column2", col2info)) return g if(g = findgraphin(x, y, "column1", col1info)) return g if(g = findgraphin(x, y, "column0", col0info)) return g return } function findgraphin(x, y, tname, info) { var t = document.getElementById(tname) if(x < xpos(t)) return y = y - ypos(t) for(var i=info.length-2; i>=1; i--) if(y > info[i].y) return info[i] return } function setof(name, val, list) { var s = "" for(var i=0; i"+val+"" else s = s+" "+list[i]+"" } return s } function loglinks(list) { var s = "" for(var i=0; i"+list[i]+"" } return s } first = 1 function redrawsettings() { if(first){ loadsettings() first = 0 } var s = "" s = s+"\n" s = s+"logging:"+setof("logging", logging, loggingchoices) s = s+"       " s = s+"stats:"+setof("stats", stats, statschoices) s = s+"\n

\n" s = s+"compression:"+setof("compress", compress, compresschoices1) s = s+"
"+setof("compress", compress, compresschoices2) s = s+"\n

\n" s = s+"index | storage | " s = s+"log:"+loglinks(logs) s = s+"" document.getElementById("settings").innerHTML = s } function set(name, value) { eval(name+"= \""+value+"\"") redrawsettings() // Works in FireFox, not in Safari parent.hidden.location.href = "/set/"+name+"/"+value }