var CR_PORT="8090"
var ECS_PORT="8083"
var PRODSTUB_PORT="8092"
+var RC_PORT="8680"
var http = require('http');
var refreshCount_cr=-1
+var refreshCount_rc=-1
+
var ricbasename="ricsim"
+var rc_services=""
+
+var pmsprefix=""
+
function fetchAllMetrics_pol() {
console.log("Fetching policy metrics " + refreshCount_pol)
if (getCtr%3 == 0) {
//Extract the port numbers from the running simulators, for every 3 calls
const { exec } = require('child_process');
- exec('docker ps --filter "name='+ricbasename+'" --format "{{.Names}} {{.Ports}}" | sed s/0.0.0.0:// | cut -d \'>\' -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," ");
var jd=JSON.parse(data);
var jda=jd["supported_ei_types"]
for(var j=0;j<jda.length;j++) {
- row=""+row+jda[j]["ei_type_identity"]+" "
+ row=""+row+jda[j]+" "
+
}
tmp_ecs_producer_type_arr[idx]=row
}
}, 500)
}
+function fetchAllMetrics_rc() {
+
+ console.log("Fetching RC services - timer:" + refreshCount_ecs)
+
+ if (refreshCount_rc < 0) {
+ refreshCount_rc = -1
+ return
+ } else {
+ refreshCount_rc = refreshCount_rc - 1
+ }
+ setTimeout(() => {
+
+ 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<jd.length;i++) {
+ if (tmp_serv.length > 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){
htmlStr=htmlStr+"<br>";
for(i=0;i<ecs_job_status.length;i++) {
tmp=ecs_job_status[i]
- console.log("tmp")
if (tmp != undefined) {
s = padding("Job", 18, ".") + formatDataRow(tmp) + "<br>"
htmlStr=htmlStr+s
}
refreshCount_pol=5
+ if (refreshCount_rc < 0) {
+ refreshCount_rc=5
+ fetchAllMetrics_rc()
+ }
+ refreshCount_rc=5
+
var bn=req.query.basename
+ pmsprefix=req.query.pmsprefix
- if (bn == undefined) {
+ console.log("PMS"+pmsprefix)
+ if ((bn == undefined) || (pmsprefix == undefined)) {
getCtr=0
- return res.redirect('/mon?basename=ricsim');
+ return res.redirect('/mon?basename=ricsim&pmsprefix=/a1-policy/v2');
} else {
ricbasename=bn
}
+
//Build web page
var htmlStr = "<!DOCTYPE html>" +
"<html>" +
"<head>" +
"<meta http-equiv=\"refresh\" content=\"2\">"+ //2 sec auto refresh
- "<title>Policy Agent and simulator monitor</title>"+
+ "<title>Policy Management Service and simulator monitor</title>"+
"</head>" +
"<body>" +
"<font size=\"-3\" face=\"monospace\">" +
"<p>Change basename in url if other ric sim prefix is used</p>" +
+ "<p>Change pmsprefix in url if pms with other prefix is used</p>" +
"</font>" +
- "<h3>Policy agent</h3>" +
+ "<h3>Policy Management Service</h3>" +
"<font face=\"monospace\">" +
"Status:..............................." + formatDataRow(ag1) + "<br>" +
"Services:............................." + formatIdRowCompact(ag2) + "<br>" +
"Fetched responses.............................." + formatDataRow(mr5) + "<br>" +
"Current responses waiting......................" + formatDataRow(mr6) + "<br>" +
"</font>"+
- "<h3>Callback receiver</h3>" +
+ "<h3>Callback|Notification receiver</h3>" +
"<font face=\"monospace\">" +
"Callbacks received:..................." + formatDataRow(cr1) + "<br>" +
"Callbacks fetched:...................." + formatDataRow(cr2) + "<br>" +
"Number of waiting callback messages:.." + formatDataRow(cr3) + "<br>" +
"</font>" +
- "<h3>Near-RT RIC Simulators</h3>" +
+ "<h3>R-APP Catalogue</h3>" +
+ "<font face=\"monospace\">" +
+ "Services:............................." + formatIdRowCompact(rc_services) + "<br>" +
+ "</font>" +
+ "<h3>Near-RT RIC | A1 Simulators</h3>" +
"<font face=\"monospace\">"
htmlStr=htmlStr+padding("Near-RT RIC Simulator name", 35," ")