1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | from flask import Flaskfrom flask import Response, request, abortimport urlparseimport requestsimport jsonapp = Flask(__name__)esUrl = "http://176.31.137.145:9200/"@app.route("/<app>", methods=["GET","POST"])def index(app): params = "?format=json&pretty" data = {} error = "" req = getattr(requests, request.method.lower()) if app == "es": arg = request.args["api"] if "search" in arg: params = params + "&size=0" url = urlparse.urljoin(esUrl, arg + params) # print url page = req(url) if request.method == "GET" else req(url, request.data) if page.ok: try: ret = page.json() except Exception as e: ret = page.content error = str(e) else: ret = "The url:%s request faild" % url error = "request faild" elif app == "zab": ret = [{"status":"ok"}] else: ret = "" error = "incorrect url" data["data"] = ret data["error"] = error resp = Response(json.dumps(data)) if error: abort(500) resp.headers["Content-Type"] = "application/json; charset=UTF-8" resp.headers["access-control-allow-origin"] = "*" return respif __name__ == "__main__": app.run(port=80,debug=True,host="0.0.0.0") |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <body ng-app="myops"> <ion-pane> <ion-nav-bar class="bar-positive"> <ion-nav-back-button></ion-nav-back-button> </ion-nav-bar> <ion-tabs class="tabs-icon-top"> <ion-tab title="Home" icon="ion-home" href="#/home"> <ion-nav-view name="tab-home"></ion-nav-view> </ion-tab> <ion-tab title="es" icon="ion-ionic" href="#/es"> <ion-nav-view name="tab-es"></ion-nav-view> </ion-tab> <ion-tab title="zabbix" icon="ion-ionic" href="#/zabbix"> <ion-nav-view name="tab-zabbix"></ion-nav-view> </ion-tab> </ion-tabs> </ion-pane> </body> |
1 2 3 4 5 | <ion-view view-title="{YOUR TITLE}"> <ion-content>{YOUR CONTENT} </ion-content></ion-view> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | app.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { $ionicConfigProvider.tabs.position('bottom'); $stateProvider .state("home", { url:"/home", views:{ "tab-home":{ controller:"homeCtrl", templateUrl: "tpls/home.html" } } }); $stateProvider .state("detail", { url:"/detail/:name", views:{ "tab-es":{ controller:"detailCtrl", templateUrl: "tpls/detail.html" } } }); $stateProvider .state("perf", { url:"/perf/:name", views:{ "tab-home":{ controller:"perfCtrl", templateUrl: "tpls/perf.html" } } }); $stateProvider .state("es", { url:"/es", views:{ "tab-es":{ controller:"esCtrl", templateUrl: "tpls/es.html" } } }); $stateProvider .state("zabbix", { url:"/zabbix", views:{ "tab-zabbix":{ controller:"zabbixCtrl", templateUrl: "tpls/zabbix.html" } } }); $urlRouterProvider.otherwise("/home");}) |
1 2 3 4 5 | $http.get(esUrl, {params:{api: "_cat/health"}}).then(function(resp){ $scope.data.status = resp.data.data[0].status; }, function(resp) { $scope.data.status = "something wrong"; }); |
1 2 3 4 5 6 7 8 9 10 11 | <ion-view view-title="Performance for {{name | uppercase}}"> <ion-content> <ion-list class="cards"> <ion-item>how many nodes: {{data.nodes}}</ion-item> <ion-item>how many shards: {{data.shards}}</ion-item> <ion-item>status:{{data.status}}</ion-item> <ion-item>how many indices: {{data.indices}}</ion-item> <ion-item>how many documnet:{{data.counts}}</ion-item> </ion-list> </ion-content></ion-view> |
1 | bower install angular-chart.js |
1 2 | <script src="lib/chart.js/dist/Chart.min.js"></script> <script src="lib/angular-chart.js/dist/angular-chart.min.js"></script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $http.post(esUrl, setData($scope.name), {params:{api:"_search"}}).then(function(resp) { var ret = resp.data.data.aggregations.top_tags.buckets; console.log(ret); $scope.labels = []; $scope.series = [$scope.name]; $scope.data = []; for (var i=0;i<ret.length;i++){ $scope.labels.push(ret[i]["key"]); $scope.data.push(ret[i]["doc_count"]); } },function(resp) { // console.log(resp.config); }) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <ion-view view-title="Detail for {{name}}"> <ion-content> <ion-list > <ion-item> <canvas id="bar" class="chart chart-bar" chart-data="data" chart-labels="labels"> chart-series="series" </canvas> </ion-item> <ion-item ng-repeat="label in labels"> <h2>{{label}}</h2> <p>{{data[$index]}}</p> </ion-item> </ion-list> </ion-content></ion-view> |
本文出自 “又耳笔记” 博客














