在机房的监控时,经常需要去查看某个机柜中的某一台服务器的各项指标,比如该台服务器的CPU的使用情况、该台服务器的硬盘的使用情况、以及网络的流量等等,以下我们将用TWaver 3D来实现一下该例子:
创建服务器上面显示的“磁盘空间”,“CPU占用率”,“内存空间”的函数:
function createPie(box, x,y,z, arc, color, text){ var innerNode=createPieNode(box, 22, 95, 360, \'white\', \'../images/transparent_blue.png\'); var outerNode=createPieNode(box, 25, 100, 1, color, \'../images/plastic01.png\'); outerNode.setClient(\'value\', arc); outerNode.setClient(\'type\',\'pie\'); innerNode.setParent(outerNode); outerNode.setPosition(x,y,z); outerNode.setRotationX(Math.PI/2); var persent = "("+parseInt(parseFloat((arc/360)*10000))/100+"%)"; var label = createLabelBillboard(text+persent); label.setPosition(0, 0, -120); label.setParent(outerNode); label.setSelectable(false); box.add(label); return outerNode; }
创建流量的柱状图的函数:
function createBar(box, x,y,z, value, color, text){ var innerNode=createPieNode(box, 200, 20, 360, \'white\', \'../images/transparent_blue.png\'); var outerNode=createPieNode(box, 1+Math.random()*199, 21, 360, color, \'../images/plastic01.png\'); outerNode.setClient(\'value\', value); outerNode.setClient(\'type\',\'bar\'); innerNode.setParent(outerNode); outerNode.setPosition(x,y,z); var label = createLabelBillboard(text); label.setPosition(0, 220, 0); label.setParent(outerNode); label.setSelectable(false); box.add(label); return outerNode; }
创建PathNode的函数:
function createLineChart(box, values){ var path=new mono.Path(); for(var i=0;i<values.length;i++){ var value=values[i]*2; var x=-200-i*130; if(i==0){ path.moveTo(400,value,x); }else{ path.lineTo(400,value,x); } } path=mono.PathNode.prototype.adjustPath(path,10,10); var node=new mono.PathNode(path, 20, 5, 100,\'plain\', \'plain\'); node.s({ \'m.repeat\': new mono.Vec2(20,1), \'m.texture.image\': \'../images/red.png\', \'m.type\': \'phong\', \'m.specularStrength\':10, }); node.setSelectable(false); node.setClient(\'value\', 100); node.setClient(\'type\',\'line\'); box.add(node); return node; }
以下全方位的展示该效果图:
正面展示效果:
斜侧面一展示效果:
斜侧面二展示效果:
其实也可以完全和机柜结合起来,当进入到具体的机柜后,点击某一服务器时,我们就显示出相关的参数,当点击另一个服务器时又显示另一堆参数。