2 * Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
19 $id : "metricsController",
\r
20 routeTargetTitle:$.i18n.prop("org_openo_msb_route_content_title"),
\r
21 $metricsUrl : '/admin/metrics',
\r
22 metricsLoading:false,
\r
29 $dataTableLanguage: {
\r
30 "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span> Loadding...</span>",
\r
31 "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"),
\r
32 "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"),
\r
33 "sInfo": "<span class='seperator'> </span>" + $.i18n.prop("org_openo_msb_route-table-sInfo"),
\r
34 "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"),
\r
35 "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"),
\r
36 "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"),
\r
37 "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"),
\r
39 "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"),
\r
40 "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"),
\r
41 "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"),
\r
42 "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf")
\r
44 "sSearch": $.i18n.prop("org_openo_msb_route-table-search"),
\r
45 "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter")
\r
47 initMetrics : function() {
\r
54 success: function (resp) {
\r
56 var restJson = resp;
\r
57 // var restJson = metricsUtil.restJson;
\r
59 var testRestJson=restJson.timers;
\r
60 var gaugesJson=restJson.gauges;
\r
63 var jvmTime=gaugesJson["jvm.attribute.uptime"].value;
\r
65 vm.jvmTime=metricsUtil.formatSeconds(jvmTime);
\r
68 //Initialize the JVM memory usage
\r
69 var Eden_Space_usage;
\r
70 if(gaugesJson["jvm.memory.pools.Eden-Space.usage"]==null){
\r
71 if(gaugesJson["jvm.memory.pools.PS-Eden-Space.usage"]==null)
\r
76 Eden_Space_usage=gaugesJson["jvm.memory.pools.PS-Eden-Space.usage"].value;
\r
80 Eden_Space_usage=gaugesJson["jvm.memory.pools.Eden-Space.usage"].value;
\r
87 if(gaugesJson["jvm.memory.pools.Perm-Gen.usage"]==null){
\r
88 if(gaugesJson["jvm.memory.pools.PS-Perm-Gen.usage"]==null)
\r
93 Perm_Gen_usage=gaugesJson["jvm.memory.pools.PS-Perm-Gen.usage"].value;
\r
97 Perm_Gen_usage=gaugesJson["jvm.memory.pools.Perm-Gen.usage"].value;
\r
101 var Survivor_Space_usage;
\r
102 if(gaugesJson["jvm.memory.pools.Survivor-Space.usage"]==null){
\r
103 if(gaugesJson["jvm.memory.pools.PS-Survivor-Space.usage"]==null)
\r
105 Survivor_Space_usage=0;
\r
108 Survivor_Space_usage=gaugesJson["jvm.memory.pools.PS-Survivor-Space.usage"].value;
\r
112 Survivor_Space_usage=gaugesJson["jvm.memory.pools.Survivor-Space.usage"].value;
\r
116 var Tenured_Gen_usage;
\r
117 if(gaugesJson["jvm.memory.pools.Tenured-Gen.usage"]==null){
\r
118 if(gaugesJson["jvm.memory.pools.PS-Old-Gen.usage"]==null)
\r
120 Tenured_Gen_usage=0;
\r
123 Tenured_Gen_usage=gaugesJson["jvm.memory.pools.PS-Old-Gen.usage"].value;
\r
127 Tenured_Gen_usage=gaugesJson["jvm.memory.pools.Tenured-Gen.usage"].value;
\r
131 var memoryPieMetrics_data={
\r
132 CodeCache:(gaugesJson["jvm.memory.pools.Code-Cache.usage"].value*100).toFixed(1),
\r
133 EdenSpace:(Eden_Space_usage*100).toFixed(1),
\r
134 PermGen:(Perm_Gen_usage*100).toFixed(1),
\r
135 SurvivorSpace:(Survivor_Space_usage*100).toFixed(1),
\r
136 TenuredGen:(Tenured_Gen_usage*100).toFixed(1)
\r
138 metricsChart.memoryPieMetrics(memoryPieMetrics_data);
\r
140 // initialize the JVM memory map
\r
141 var heap_init=Math.round(gaugesJson["jvm.memory.heap.init"].value/1000000);
\r
142 var non_heap_init=Math.round(gaugesJson["jvm.memory.non-heap.init"].value/1000000);
\r
144 var heap_used=Math.round(gaugesJson["jvm.memory.heap.used"].value/1000000);
\r
145 var non_heap_used=Math.round(gaugesJson["jvm.memory.non-heap.used"].value/1000000);
\r
147 var heap_max=Math.round(gaugesJson["jvm.memory.heap.max"].value/1000000);
\r
148 var non_heap_max=Math.round(gaugesJson["jvm.memory.non-heap.max"].value/1000000);
\r
150 var memoryBarMetrics_data={
\r
154 non_heap_init+heap_init
\r
159 non_heap_used+heap_used
\r
164 non_heap_max+heap_max
\r
167 metricsChart.memoryBarMetrics(memoryBarMetrics_data);
\r
169 //Initializes the thread profile
\r
170 var threadsMetrics_data= [{value:gaugesJson["jvm.threads.runnable.count"].value, name:'Runnable'},
\r
171 {value:gaugesJson["jvm.threads.timed_waiting.count"].value, name:'Timed waiting'},
\r
172 {value:gaugesJson["jvm.threads.waiting.count"].value, name:'Waiting'},
\r
173 {value:gaugesJson["jvm.threads.blocked.count"].value, name:'Blocked'}];
\r
174 vm.threadNum=gaugesJson["jvm.threads.count"].value;
\r
175 metricsChart.threadsMetrics(threadsMetrics_data);
\r
177 //Initialize the Rest interface traffic map
\r
178 var restMetrics_data={restName:[],restCount:[]};
\r
179 $.each(testRestJson,function(name,value) {
\r
180 if(name=="io.dropwizard.jetty.MutableServletContextHandler.connect-requests") return false;
\r
181 var nameArray=name.split(".");
\r
183 restMetrics_data.restName.push(nameArray[nameArray.length-1]);
\r
184 restMetrics_data.restCount.push(value.count);
\r
189 metricsChart.restMetrics(restMetrics_data);
\r
192 //Initialize the HTTP traffic
\r
193 var requestsMetrics_data={get:"",post:"",put:"",delete:"",other:""};
\r
194 requestsMetrics_data.get=testRestJson["io.dropwizard.jetty.MutableServletContextHandler.get-requests"].count;
\r
195 requestsMetrics_data.post=testRestJson["io.dropwizard.jetty.MutableServletContextHandler.post-requests"].count;
\r
196 requestsMetrics_data.put=testRestJson["io.dropwizard.jetty.MutableServletContextHandler.put-requests"].count;
\r
197 requestsMetrics_data.delete=testRestJson["io.dropwizard.jetty.MutableServletContextHandler.delete-requests"].count;
\r
198 requestsMetrics_data.other=testRestJson["io.dropwizard.jetty.MutableServletContextHandler.other-requests"].count;
\r
199 metricsChart.requestsMetrics(requestsMetrics_data);
\r
201 //Initialize the HTTP access list in detail
\r
202 $.each(testRestJson,function(name,value) {
\r
203 if(name.indexOf("org.eclipse.jetty.server.HttpConnectionFactory") == 0) return true;
\r
206 vm.restArray.push(obj);
\r
209 $('#restTable').DataTable({
\r
212 "oLanguage": vm.$dataTableLanguage
\r
216 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r