CINXE.COM

aprs2.net Status Monitor

<!DOCTYPE html> <html ng-app='aprs2status'> <head> <title>aprs2.net Status Monitor</title> <meta name="lang" content="en" /> <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="/aprs2status.css" /> <script src="angular.min.js"></script> </head> <body ng-controller="a2stat"> <!-- <div class='text-muted' style='position: fixed; bottom: 5px; right: 5px;'>seq {{ evq.seq }} / {{ evq.len }}</div> --> <div class='container'> <div class="row"> <div class="col-md-3 col-sm-3"> <div class="sprite_logo"></div> <div class="text-primary text-right" ng-cloak>Status Monitor <span ng-show='cfg'>@ {{ cfg.site_descr }}</span></div> </div> <div class="col-md-3 col-sm-4 col-xs-6" ng-repeat="net in nets"> <b>{{ net.name }} Status</b><br /> {{ net.servers_ok聽}}/{{ net.servers_count }} servers OK</br /> {{ net.clients }} clients<br /> {{ net.rate_out | number : 0 }} bytes/s out<br /> </div> </div> <div class="row" id='popup1-content' ng-show='shownServer.config' ng-cloak> <ul class="list-group"> <li class="list-group-item" ng:class="shownServer.status.status == 'ok' ? 'list-group-item-success' : 'list-group-item-danger'"><b><a target="_blank" rel="nofollow" href="http://{{ shownServer.config.ipv4 }}:14501/">{{ shownServer.config.id }}</a></b> <span ng:class="shownServer.status.status == 'ok' ? 'glyphicon glyphicon-ok' : 'glyphicon glyphicon-fire'"></span> <span>聽聽{{ shownServer.config.fqdn }}聽聽</span> <span ng-show="shownServer.status.props.score"> <span><span class='glyphicon glyphicon-stats'></span> score {{ shownServer.status.props.score | number : 1 }}</span></span> <span ng-show="shownServer.status.avail_30">聽聽availability {{ shownServer.status.avail_30 | number : 3 }} %/30 days, {{ shownServer.status.avail_3 | number : 3 }} %/3 days</span></span> <span ng-show="shownServer.config.out_of_service">聽聽<a href="#" class="btn btn-warning btn-xs active warning" role="button" style="cursor: default;">Out of service</a></span> <span class='pull-right'> <span class='glyphicon glyphicon-list' ng:click="showLog = !showLog"></span><span class='pull-right glyphicon glyphicon-remove' ng:click="shownServer = 0"></span> </span> </li> <li class="list-group-item" ng-show="shownServer.status.props.scorebase && ! shownServer.status.merged_scorebase"> <b>Scoring components</b> <table class='table table-condensed table-striped' style='width: auto;'> <tr><th ng-repeat="(k, v) in shownServer.status.props.scorebase">{{ k }}</th></tr> <tr><td ng-repeat="(k, v) in shownServer.status.props.scorebase">{{ v[1] }}</td></tr> <tr><td ng-repeat="(k, v) in shownServer.status.props.scorebase">+ {{ v[0] | number : 1 }}</td></tr> </table> </li> <li class="list-group-item" ng-show="shownServer.status.merged_scorebase"> <b>Scoring components</b> <table class='table table-condensed table-striped' style='width: auto;'> <tr><th>poller</th><th ng-repeat="k in shownServer.status.merged_score_keys">{{ k }}</th></tr> <tr ng-repeat="(p, a) in shownServer.status.merged_scorebase"><td>{{ p }}</td> <td ng-repeat="k in shownServer.status.merged_score_keys">{{ shownServer.status.merged_scorebase[p][k][1] }}<br /> + {{ shownServer.status.merged_scorebase[p][k][0] | number : 1 }}</td></tr> </table> </li> <li class="list-group-item" ng-show="rotatestat && shownServer.config.show_members"> <b>Rotates configured for this server, and their current members</b> <table class='table table-condensed table-striped' style='width: auto;'> <tr ng-repeat="r in shownServer.config.member"> <td>{{r}}</td> <td><span ng-repeat="id in rotateMem[r]" ng-class="{bold: id == shownServer.config.id}"> {{id}}</span></td> </tr> </table> </li> <li class="list-group-item list-group-item-danger" ng-show="shownServer.status.errors"><div ng-repeat="e in shownServer.status.errors">[{{ e[0] }}] {{ e[1] }}</div></li> <li class="list-group-item poll-log" ng-show="showLog && shownLog"><pre>{{ shownLog.log }}</pre></li> <li class="list-group-item" ng-show="shownServer.status.props.scorebase"> <img ng-src="//t2graph.aprs2.net/t2/server/{{ shownServer.config.id }}_perf.png"> <img ng-src="//t2graph.aprs2.net/t2/server/{{ shownServer.config.id }}_traffic.png"> </li> </ul> </div> <div class='row' ng-cloak> <div class='table-responsive'> <table class='table table-hover table-condensed' ng-repeat="group in groups"> <tr> <th ng:repeat="c in columns" ng:class="selectedCls(c[0])" ng:click="changeSorting(c[0])">{{c[1]}} <span ng:class="sortIndicator(c[0])"></span></th> </tr> <tr ng-repeat="s in group | orderBy : sort.column : sort.descending" ng-click="rowClick(s);" ng-class="{info: s.rotate==1, success: s.status.status=='ok', danger: s.status.status=='fail' && !s.config.out_of_service, warning: s.config.out_of_service, keydown: s.duration==-1}"> <td ng-class="{info: s.rotate_reg==1}"><a target="_blank" rel="nofollow" href="http://{{ s.config.ipv4 }}:14501/">{{ s.config.id }}</a></td> <td>{{ s.status.props.soft }} {{ s.status.props.vers }}</td> <td>{{ s.status.props.os }}</td> <td>{{ s.status.last_test | datetime }}</td> <td>{{ s.status.last_change | datetime }}</td> <td class="text-right">{{ s.status.props.clients | number : 0 }}</td> <td class="text-right">{{ s.status.props.worst_load | number : 1 }}</td> <td class="text-right">{{ s.status.props.rate_bytes_out | number : 0 }}</td> <td ng-show="cfg.master" class="text-right">{{ s.status.c }}</td> <td class="text-right">{{ s.status.props.score | number : 0 }}</td> <td class="text-right">{{ s.status.avail_3 | number : 2 }} %</td> <td><span ng-show="s.config.out_of_service">serviced </span><span ng-repeat="e in s.status.errors">{{ e[0] }} </span></td> </tr> </table> </div> </div> <div class='row text-center text-muted'> aprs2.net status monitor v2.0 by OH7LZB </div> </div> <script type='text/JavaScript' src='jquery.min.js'></script> <!--[if lte IE 8]><script type='text/JavaScript' src='excanvas.min.js'></script><![endif]--> <script type='text/JavaScript' src='jquery.flot.min.js'></script> <script type='text/JavaScript' src='a2stat.js'></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10