X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fsimulator-group%2Fsim-monitor.js;h=f993410fc510c454ce3c4550accd5bb3cdae39b3;hb=d2aeca8843fe3ffca2e73dec5b64daeef0dda938;hp=7d7ffdf80533bc1c381417b3ae61b07944fe468c;hpb=49f0e5ab01b51aee8713a17aed86cd6d229b40cc;p=nonrtric.git diff --git a/test/simulator-group/sim-monitor.js b/test/simulator-group/sim-monitor.js index 7d7ffdf8..f993410f 100644 --- a/test/simulator-group/sim-monitor.js +++ b/test/simulator-group/sim-monitor.js @@ -17,15 +17,16 @@ # */ -// Sim mon server - query the agent and the simulators for counters and other data +// Sim mon server - query the a1pms and the simulators for counters and other data // Presents a web page on localhost:9999/mon var LOCALHOST="http://127.0.0.1:" var MRSTUB_PORT="3905" -var AGENT_PORT="8081" +var A1PMS_PORT="8081" var CR_PORT="8090" -var ECS_PORT="8083" +var ICS_PORT="8083" var PRODSTUB_PORT="8092" +var RC_PORT="8680" var http = require('http'); @@ -69,7 +70,7 @@ function getSimCtr(url, index, cb) { } catch(err) { cb("no response", index); } -}; +} //Format a comma separated list of data to a html-safe string with fixed fieldsizes @@ -121,9 +122,9 @@ function formatIdRowCompact(commaList) { } //Pad a string upto a certain size using a pad string -function padding(val, fieldSize, pad) { +function padding(val, size, pad) { var s=""+val; - for(var i=s.length;i\' -f1 | sed \'s/[[-]]*$//\'', (err, stdout, stderr) => { + exec('docker ps --filter "name='+ricbasename+'" --filter "network=nonrtric-docker-net" --format "{{.Names}} {{.Ports}}" | sed s/0.0.0.0:// | cut -d \'>\' -f1 | sed \'s/[[-]]*$//\'', (err, stdout, stderr) => { var simulators = "" simulators=`${stdout}`.replace(/(\r\n|\n|\r)/gm," "); @@ -235,7 +244,7 @@ function fetchAllMetrics_pol() { var sims=simulators.split(" ") simnames=[] simports=[] - for(i=0;i { - if (checkFunctionFlag("ecs_stat")) { - getSimCtr(LOCALHOST+ECS_PORT+"/status", 0, function(data, index) { - ecs1="" - ecs2="" - ecs3="" - ecs4="" + if (checkFunctionFlag("ics_stat")) { + getSimCtr(LOCALHOST+ICS_PORT+"/status", 0, function(data, index) { try { var jd=JSON.parse(data); - ecs1=jd["status"] - ecs2=""+jd["no_of_producers"] - ecs3=""+jd["no_of_types"] - ecs4=""+jd["no_of_jobs"] + ics1=jd["status"] + ics2=""+jd["no_of_producers"] + ics3=""+jd["no_of_types"] + ics4=""+jd["no_of_jobs"] } catch (err) { - ecs1="error response" - ecs2="error response" - ecs3="error response" - ecs4="error response" + ics1="error response" + ics2="error response" + ics3="error response" + ics4="error response" } }); - - getSimCtr(LOCALHOST+ECS_PORT+"/ei-producer/v1/eitypes", 0, function(data, index) { - ecs_types="-" + clearFlag("ics_stat") + } + if (checkFunctionFlag("ics_types")) { + getSimCtr(LOCALHOST+ICS_PORT+"/ei-producer/v1/eitypes", 0, function(data, index) { + var tmp_ics_types="-" try { var jd=JSON.parse(data); for(var i=0;i { + + if (checkFunctionFlag("rc_stat")) { + getSimCtr(LOCALHOST+RC_PORT+"/services", 0, function(data, index) { + var tmp_serv="" + try { + var jd=JSON.parse(data); + for(var i=0;i 0) { + tmp_serv=tmp_serv+"," + } + tmp_serv=tmp_serv+jd[i]["name"] + } + + } + catch (err) { + tmp_serv="no_response" + } + rc_services=tmp_serv + }); + clearFlag("rc_stat") + } + fetchAllMetrics_rc(); + }, 500) +} + // Monitor for CR db app.get("/mon3",function(req, res){ - console.log("Creating CR DB page - timer: " + refreshCount_ecs) + console.log("Creating CR DB page - timer: " + refreshCount_ics) if (refreshCount_cr < 0) { refreshCount_cr=5 @@ -669,16 +779,16 @@ app.get("/mon3",function(req, res){ res.send(htmlStr); }) -// Monitor for ECS +// Monitor for ICS app.get("/mon2",function(req, res){ - console.log("Creating enrichment metrics - timer: " + refreshCount_ecs) + console.log("Creating information metrics - timer: " + refreshCount_ics) - if (refreshCount_ecs < 0) { - refreshCount_ecs=5 - fetchAllMetrics_ecs() + if (refreshCount_ics < 0) { + refreshCount_ics=5 + fetchAllMetrics_ics() } - refreshCount_ecs=5 + refreshCount_ics=5 var summary=req.query.summary @@ -691,56 +801,68 @@ app.get("/mon2",function(req, res){ "" + "" + ""+ //2 sec auto refresh - "Enrichment coordinator service and producer stub"+ + "information coordinator service and producer stub"+ "" + "" + "" if (summary == "false") { - htmlStr=htmlStr+"

Set query param '?summary' to true to only show summary statistics

" + htmlStr=htmlStr+"

Set query param '?summary' to true to only show summary statistics.

" } else { htmlStr=htmlStr+"

Set query param '?summary' to false to only show full statistics

" } + if (ics_job_status.length > 10) { + htmlStr=htmlStr+"
Avoid running the server for large number of producers and/or jobs
" + } htmlStr=htmlStr+"
" + - "

Enrichment Coordinator Service

" + + "

Information Coordinator Service

" + "" + - "Status:..........." + formatDataRow(ecs1) + "
" + - "Producers:........" + formatDataRow(ecs2) + "
" + - "Types:............" + formatDataRow(ecs3) + "
" + - "Jobs:............." + formatDataRow(ecs4) + "
" + + "Status:..........." + formatDataRow(ics1) + "
" + + "Producers:........" + formatDataRow(ics2) + "
" + + "Types:............" + formatDataRow(ics3) + "
" + + "Jobs:............." + formatDataRow(ics4) + "
" + "
" if (summary == "false") { htmlStr=htmlStr+ "

Details

" + "" + - "Producer ids:....." + formatDataRow(ecs_producers) + "
" + - "Type ids:........." + formatDataRow(ecs_types) + "
" + + "Producer ids:....." + formatDataRow(ics_producers) + "
" + + "Type ids:........." + formatDataRow(ics_types) + "
" + "
"; - for(var i=0;i" + htmlStr=htmlStr+s + } + } + htmlStr=htmlStr+"
"; + for(i=0;i" + s = "Producer jobs....." + formatDataRow(ics_producer_jobs_arr[i]) + "
" htmlStr=htmlStr+s } } htmlStr=htmlStr+"
"; - for(var i=0;i" + s = "Producer status..." + formatDataRow(tmp) + "
" htmlStr=htmlStr+s } } htmlStr=htmlStr+"
"; - for(var i=0;i" + s = padding("Job", 18, ".") + formatDataRow(tmp) + "
" htmlStr=htmlStr+s } } htmlStr=htmlStr+"
"+"
" + "
" } + htmlStr=htmlStr+ "

Producer stub

" + "" + @@ -755,26 +877,26 @@ app.get("/mon2",function(req, res){ "Producer ids:....." + formatDataRow(ps_producers) + "
" + "Type ids:........." + formatDataRow(ps_types) + "
" + "
"; - for(var i=0;i" + s = "Producer types...." + formatDataRow(ps_producer_type_arr[i]) + "
" htmlStr=htmlStr+s } } htmlStr=htmlStr+"
"; - for(var i=0;i" + s = "Producer jobs....." + formatDataRow(ps_producer_jobs_arr[i]) + "
" htmlStr=htmlStr+s } } htmlStr=htmlStr+"
"; - for(var i=0;i" + s = "Producer delivery." + formatDataRow(ps_producer_delivery_arr[i]) + "
" htmlStr=htmlStr+s } } @@ -797,27 +919,37 @@ app.get("/mon",function(req, res){ } refreshCount_pol=5 + if (refreshCount_rc < 0) { + refreshCount_rc=5 + fetchAllMetrics_rc() + } + refreshCount_rc=5 + var bn=req.query.basename + a1pmsprefix=req.query.a1pmsprefix - if (bn == undefined) { + console.log("A1PMS"+a1pmsprefix) + if ((bn == undefined) || (a1pmsprefix == undefined)) { getCtr=0 - return res.redirect('/mon?basename=ricsim'); + return res.redirect('/mon?basename=ricsim&a1pmsprefix=/a1-policy/v2'); } else { ricbasename=bn } + //Build web page var htmlStr = "" + "" + "" + ""+ //2 sec auto refresh - "Policy Agent and simulator monitor"+ + "Policy Management Service and simulator monitor"+ "" + "" + "" + "

Change basename in url if other ric sim prefix is used

" + + "

Change a1pmsprefix in url if a1pms with other prefix is used

" + "
" + - "

Policy agent

" + + "

Policy Management Service

" + "" + "Status:..............................." + formatDataRow(ag1) + "
" + "Services:............................." + formatIdRowCompact(ag2) + "
" + @@ -834,13 +966,17 @@ app.get("/mon",function(req, res){ "Fetched responses.............................." + formatDataRow(mr5) + "
" + "Current responses waiting......................" + formatDataRow(mr6) + "
" + "
"+ - "

Callback receiver

" + + "

Callback|Notification receiver

" + "" + "Callbacks received:..................." + formatDataRow(cr1) + "
" + "Callbacks fetched:...................." + formatDataRow(cr2) + "
" + "Number of waiting callback messages:.." + formatDataRow(cr3) + "
" + "
" + - "

Near-RT RIC Simulators

" + + "

R-APP Catalogue

" + + "" + + "Services:............................." + formatIdRowCompact(rc_services) + "
" + + "
" + + "

Near-RT RIC | A1 Simulators

" + "" htmlStr=htmlStr+padding("Near-RT RIC Simulator name", 35," ") @@ -889,5 +1025,5 @@ var httpPort=9999; httpServer.listen(httpPort); console.log("Simulator monitor listening (http) at "+httpPort); console.log("Open the web page on localhost:9999/mon to view the policy statistics page.") -console.log("Open the web page on localhost:9999/mon2 to view the enrichment statistics page.") +console.log("Open the web page on localhost:9999/mon2 to view the information statistics page.") console.log("Open the web page on localhost:9999/mon3 to view CR DB in json.") \ No newline at end of file