# Install KPI Monitoring & xApp RIC ## KPI Monitoring Overview ![image](https://hackmd.io/_uploads/B1Nil0eYC.png) LTE eNB and 5G NR gNB produce data that can be monitored and analyzed to measure the system’s effectiveness. The near Real-Time RIC can gather the radio and system Key Performance Indicators (KPI) from E2 Nodes and can utilize the metrics for closed-loop control. The KPI includes but not limited following; UE measurement, E2 Node Measurement, E2 Node Load-related measurement. The KPIMON xApp provides the first step towards the successful closed-loop control, through the monitoring E2 Node’s performance metrics, and writing it into Redis DB. With the near real-time reporting KPIs, the near Real-Time RIC can immediately control E2 Nodes. ## Dms-cli and helm commands ### Set up environment variables for CLI connection When using the dms-cli commands, we need to set up the environment variable "CHART_REPO_URL" ``` #Create a local helm repository with a port other than 8080 on host docker run --rm -u 0 -it -d -p 8090:8080 -e DEBUG=1 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts -v $(pwd)/charts:/charts chartmuseum/chartmuseum:latest ``` Set up the environment variables for CLI connection using the same port as used above. ``` #Set CHART_REPO_URL env variable export CHART_REPO_URL=http://0.0.0.0:8090 ``` ### Commands onboard/deploy/undeploy Dms_cli #### Commands of xApp onboarding ``` dms_cli onboard --config_file_path=<CONFIG_FILE_PATH> --shcema_file_path=<SCHEMA_FILE_PATH> ``` #### Commands of downloading the xApp helm charts ``` dms_cli download_helm_chart --xapp_chart_name=<XAPP_CHART_NAME> --version=<VERSION> --output_path=<OUTPUT_PATH> ``` to check version xapp: ``` head <CONFIG_FILE_PATH> ``` #### Deploy xApp by using helm chart of helm repository ``` dms_cli install --xapp_chart_name=<XAPP_CHART_NAME> --version=<VERSION> --namespace=<NAMESPACE> ``` #### Commands of xApp undeploying ``` dms_cli uninstall --xapp_chart_name=<XAPP_CHART_NAME> --namespace=<NAMESPACE> ``` #### Commands of xApp upgrading ``` dms_cli upgrade --xapp_chart_name=<XAPP_CHART_NAME> --old_version=<OLD_VERSION> --new_version=<NEW_VERSION> --namespace=<NAMESPACE> ``` #### Commands of xApp rollbacking ``` dms_cli rollback --xapp_chart_name=<XAPP_CHART_NAME> --new_version=<NEW_VERSION> --old_version=<OLD_VERSION> --namespace=<NAMESPACE> ``` #### Commands of xApp health checking ``` dms_cli health_check --xapp_chart_name=<XAPP_CHART_NAME> --namespace=<NAMESPACE> ``` #### Schema for xApp if you dont have file schema for xApp, you can follow this default configuration: ``` { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "#/controls", "type": "object", "title": "Controls Section Schema", "required": [ ], "properties": { } } ``` ## Installation Step ### Prerequisite Have install OSC RIC [I-Release] and Depedency Library, you can follow this guide: https://hackmd.io/@abdfikih/ByaUJytwR If you want to use code i have edited for this configuration works because in I-Release some component have upgrade and we need to change code in xApp, you can clone from my repository: E2SIM : ``` git clone https://github.com/Abdfikih/e2sim-version.git -b v2 ``` KPIMON : ``` git clone https://github.com/Abdfikih/kpimon-version.git ``` TS xApp : ``` git clone https://github.com/Abdfikih/trafficxapp-version.git ``` QP xApp : ``` git clone https://github.com/Abdfikih/qp-version.git ``` AD xApp : ``` git clone https://github.com/Abdfikih/ad-version.git ``` RC xApp : ``` git clone https://github.com/Abdfikih/rc-version.git ``` ### Clone Repository ``` git clone https://github.com/o-ran-sc/ric-app-kpimon-go.git cd ric-app-kpimon-go ``` ### Build Docker Image ``` docker run -d -p 5000:5000 --name my_registry registry:latest docker build . -t 127.0.0.1:5000/o-ran-sc/ric-app-kpimon-go:latest docker push 127.0.0.1:5000/o-ran-sc/ric-app-kpimon-go:latest ``` then modified config-file.json: ``` ( "xapp_name": "kpimon-go", "version": "2.0.2", "containers": [ { "name": "kpimon-go", "image": { "registry": "127.0.0.1:5000", "name": "o-ran-sc/ric-app-kpimon-go", "tag": "latest" }) ``` ### Onboard xApp via dms_cli ``` cd deploy dms_cli onboard --config_file_path=config.json --shcema_file_path=schema.json ``` :::success output ``` root@ubuntu:~/ric-app-kpimon-go/deploy# dms_cli onboard --config_file_path=config.json --shcema_file_path=schema.json { "status": "Created" } ``` ::: ``` dms_cli download_helm_chart kpimon-go 2.0.1 --output_path=/files/helm_xapp ``` :::success ``` root@ubuntu:~/ric-app-kpimon-go/deploy# dms_cli download_helm_chart kpimon-go 2.0.1 --output_path=/files/helm_xapp status: OK ``` ::: ``` dms_cli install --xapp_chart_name=kpimon-go --version=2.0.1 --namespace=ricxapp ``` :::success ``` root@ubuntu:~/ric-app-kpimon-go/deploy# dms_cli install --xapp_chart_name=kpimon-go --version=2.0.1 --namespace=ricxapp status: OK ``` ::: ### Deploy xApp via dms_cli #### Clone repository config xApp ``` cd ~ git clone "https://gerrit.o-ran-sc.org/r/ric-app/hw-go" git clone "https://gerrit.o-ran-sc.org/r/ric-app/ts" git clone "https://gerrit.o-ran-sc.org/r/ric-app/ad" git clone "https://gerrit.o-ran-sc.org/r/ric-app/qp" ``` #### Build Xapp hw-go with config file ``` cd ~/ric-app-hw-go/config dms_cli onboard --config_file_path=../../hw-go/config/config-file.json --shcema_file_path=../../hw-go/config/schema.json ``` :::success ``` root@ubuntu:~/ric-dep/bin# dms_cli onboard --config_file_path=../../hw-go/config/config-file.json --sh cema_file_path=../../hw-go/config/schema.json httpGet: path: '{{ index .Values "readinessProbe" "httpGet" "path" | toJson }}' port: '{{ index .Values "readinessProbe" "httpGet" "port" | toJson }}' initialDelaySeconds: '{{ index .Values "readinessProbe" "initialDelaySeconds" | toJson }}' periodSeconds: '{{ index .Values "readinessProbe" "periodSeconds" | toJson }}' httpGet: path: '{{ index .Values "livenessProbe" "httpGet" "path" | toJson }}' port: '{{ index .Values "livenessProbe" "httpGet" "port" | toJson }}' initialDelaySeconds: '{{ index .Values "livenessProbe" "initialDelaySeconds" | toJson }}' periodSeconds: '{{ index .Values "livenessProbe" "periodSeconds" | toJson }}' { "status": "Created" } ``` ::: ##### Download the xApp helm charts ``` dms_cli download_helm_chart hw-go 1.0.0 --output_path=/files/helm_xapp ``` :::success ``` root@ubuntu:~/ric-dep/bin# dms_cli download_helm_chart hw-go 1.0.0 --output_path=/files/helm_xapp status: OK ``` ::: :::info You can use : **head config.json** to see version from xapp when to configuration. ::: ##### Install the xApp hw-go ``` dms_cli install --xapp_chart_name=hw-go --version=1.0.0 --namespace=ricxapp ``` :::success ``` root@ubuntu:~/ric-dep/bin# dms_cli install --xapp_chart_name=hw-go --version=1.0.0 --namespace=ricxapp status: OK ``` ::: :::info Build ts, ad, and qp with command above like build hw-go. ::: :::danger ###### Problem pods HW-GO not running You can follow this section: ``` kubectl get deploy -A kubectl edit deploy <name-deploy-hw-go> -n <namespace> ``` after this **edit version HW-GO to 1.1.2 from 1.1.1** ::: ##### Install the xApp TS ``` cd ~/ts docker build . -t 127.0.0.1:5000/o-ran-sc/ric-app-ts:latest ``` :::success output: ``` root@ubuntu:~/ts# docker build . Sending build context to Docker daemon 770.6kB Step 1/27 : FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu20-c-go:1.0.0 as buildenv 1.0.0: Pulling from o-ran-sc/bldr-ubuntu20-c-go 7b1a6ab2e44d: Pull complete fa71893429cb: Pull complete 04d0e85b5cd0: Pull complete . . . Step 27/27 : CMD [ "/usr/local/bin/ts_xapp" ] ---> Running in 43da0fb4492d Removing intermediate container 43da0fb4492d ---> 76bfe8867640 Successfully built 76bfe8867640 ``` ::: ``` docker push 127.0.0.1:5000/o-ran-sc/ric-app-ts:latest ``` ``` root@ubuntu:~/ts# docker push 127.0.0.1:5000/o-ran-sc/ric-app-ts:latest The push refers to repository [127.0.0.1:5000/o-ran-sc/ric-app-ts] 531eb0557c30: Pushed 73c9feaa2c7e: Pushed 70323cf7da8f: Pushed 4c0912ab2806: Pushed dbd6a6b3f0ef: Pushed 3f9a114a572d: Pushed 3ec3ded77c0c: Pushed latest: digest: sha256:dacda165621b198ef62bf0f3412c03893bc359da0157eaa731ea8af005385874 size: 1783 ``` ``` cd xapp_descriptor nano config-file.json ``` change to this: ![image](https://hackmd.io/_uploads/HkaSygTdR.png) ``` dms_cli onboard --config_file_path=config-file.json --shcema_file_path=schema.json ``` :::success ``` root@ubuntu:~/ts/xapp-descriptor# dms_cli onboard --config_file_path=config-file.json --shcema_file_path=schema.json { "status": "Created" } ``` ::: ``` dms_cli download_helm_chart trafficxapp 1.2.5 --output_path=/files/helm_xapp ``` :::success ``` root@ubuntu:~/ts/xapp-descriptor# dms_cli download_helm_chart trafficxapp 1.2.5 --output_path=/files/helm_xapp status: OK ``` ::: ``` dms_cli install --xapp_chart_name=trafficxapp --version=1.2.5 --namespace=ricxapp ``` :::success ``` root@ubuntu:~/ts/xapp-descriptor# dms_cli install --xapp_chart_name=trafficxapp --version=1.2.5 --name space=ricxapp status: OK ``` ::: ##### Install the xApp AD ``` cd ~/ad docker build . -t 127.0.0.1:5000/o-ran-sc/ric-app-ad:latest ``` :::success output: ``` root@ubuntu:~/ad# docker build -t ad:v1 . Sending build context to Docker daemon 18.55MB Step 1/19 : FROM continuumio/miniconda3:23.10.0-1 23.10.0-1: Pulling from continuumio/miniconda3 0bc8ff246cb8: Pull complete e87dc284eda5: Pull complete f1fbf9532e5b: Pull complete . . . Step 18/19 : COPY src/ /src ---> 0e4945b7eab0 Step 19/19 : CMD PYTHONPATH=/src:/usr/lib/python3.11/site-packages/:$PYTHONPATH run-src.py ---> Running in 22d35f7ee2a7 Removing intermediate container 22d35f7ee2a7 ---> 97691144716d Successfully built 97691144716d Successfully tagged ad:v1 ``` ::: ``` docker run 127.0.0.1:5000/o-ran-sc/ric-app-ts:latest ``` :::success root@ubuntu:~/ad# docker run ad:v1 1720494772966 7/RMR [INFO] ric message routing library on SI95 p=4560 mv=3 flg=02 id=a (a1be12a 4.9.0 built: Feb 14 2023) {"ts": 1720494772967, "crit": "DEBUG", "id": "ricxappframe.xapp_rmr", "mdc": {}, "msg": "Waiting for rmr to init on port 4560.."} {"ts": 1720494773067, "crit": "DEBUG", "id": "ricxappframe.xapp_rmr", "mdc": {}, "msg": "Starting loop thread"} {"ts": 1720494773068, "crit": "DEBUG", "id": "ricxappframe.xapp_rmr", "mdc": {}, "msg": "Work loop starts"} {"ts": 1720494773094, "crit": "WARNING", "id": "ricxappframe.xapp_frame", "mdc": {}, "msg": "__init__: NOT watching any config file"} {"ts": 1720494773095, "crit": "ERROR", "id": "ricxappframe.xapp_frame", "mdc": {}, "msg": "__init__: Cannot Read config file for xapp Registration"} {"ts": 1720494773095, "crit": "DEBUG", "id": "src.main", "mdc": {}, "msg": "AD xApp starting"} {"ts": 1720494773100, "crit": "ERROR", "id": "database", "mdc": {}, "msg": "Failed to establish a new connection with InflulxDB, Please check your url/hostname"} 1720494773981 7/RMR [INFO] sends: ts=1720494773 src=8e2451ef41c5:4560 target=service-ricxapp-trafficxapp-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494773981 7/RMR [INFO] sends: ts=1720494773 src=8e2451ef41c5:4560 target=service-ricplt-a1mediator-rmr.ricplt:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494804984 7/RMR [INFO] sends: ts=1720494804 src=8e2451ef41c5:4560 target=service-ricxapp-trafficxapp-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494804984 7/RMR [INFO] sends: ts=1720494804 src=8e2451ef41c5:4560 target=service-ricplt-a1mediator-rmr.ricplt:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494835987 7/RMR [INFO] sends: ts=1720494835 src=8e2451ef41c5:4560 target=service-ricxapp-trafficxapp-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494835987 7/RMR [INFO] sends: ts=1720494835 src=8e2451ef41c5:4560 target=service-ricplt-a1mediator-rmr.ricplt:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494866989 7/RMR [INFO] sends: ts=1720494866 src=8e2451ef41c5:4560 target=service-ricxapp-trafficxapp-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720494866990 7/RMR [INFO] sends: ts=1720494866 src=8e2451ef41c5:4560 target=service-ricplt-a1mediator-rmr.ricplt:4560 open=0 succ=0 fail=0 (hard=0 soft=0) ::: ``` docker push 127.0.0.1:5000/o-ran-sc/ric-app-ts:latest ``` change the config file : ![image](https://hackmd.io/_uploads/rJAwITWcC.png) ###### Create with dms_cli ``` dms_cli onboard --config_file_path=config.json --shcema_file_path=embedded-schema.json ``` :::success output: ``` root@ubuntu:~/ad/xapp-descriptor# dms_cli onboard --config_file_path=config.json --shcema_file_path=em bedded-schema.json { "status": "Created" } ``` ::: ##### Download the xApp helm charts ``` dms_cli download_helm_chart ad 1.0.2 --output_path=/files/helm_xapp ``` :::success ``` root@ubuntu:~/ad/xapp-descriptor# dms_cli download_helm_chart ad 1.0.2 --output_path=/files/helm_xapp status: OK ``` ::: ###### Install with dms_cli ``` head config.json dms_cli install ad 1.0.2 ricxapp ``` :::success ``` root@ubuntu:~/ad/xapp-descriptor# head config.json { "name": "ad", "version": "1.0.2", "containers": [ { "name": "ad", "image": { "registry": "nexus3.o-ran-sc.org:10002", "name": "o-ran-sc/ric-app-ad", "tag": "1.0.0" root@ubuntu:~/ad/xapp-descriptor# dms_cli install ad 1.0.2 ricxapp status: OK ``` ::: ##### Install the xApp QP ``` cd ~/qp docker build . -t 127.0.0.1:5000/o-ran-sc/ric-app-qp:latest ``` :::success ``` root@ubuntu:~/qp# docker build -t qp:v1 . Sending build context to Docker daemon 1.307MB Step 1/16 : FROM continuumio/miniconda3:23.10.0-1 ---> 6d17b7c0d4a8 Step 2/16 : RUN mkdir -p /opt/route/ ---> Using cache ---> ceb6cae73deb Step 3/16 : RUN apt update && apt install -y gcc musl-dev ---> Using cache . . . Step 15/16 : ENV PYTHONUNBUFFERED 1 ---> Running in e970f2a9b8b0 Removing intermediate container e970f2a9b8b0 ---> 684992075ff9 Step 16/16 : CMD PYTHONPATH=/src:/usr/lib/python3.11/site-packages/:$PYTHONPATH run-qp.py ---> Running in dcee19012ee3 Removing intermediate container dcee19012ee3 ---> aca7876c5e53 Successfully built aca7876c5e53 Successfully tagged qp:v1 ``` ::: ``` docker push 127.0.0.1:5000/o-ran-sc/ric-app-qp:latest ``` :::success ``` root@ubuntu:~/ric-app-qp# docker push 127.0.0.1:5000/o-ran-sc/ric-app-qp:latest The push refers to repository [127.0.0.1:5000/o-ran-sc/ric-app-qp] 85f179adb420: Pushed ad35c6d6f1c2: Pushed 1561063d0327: Pushed e481de449145: Pushed 522777a86dad: Pushed 80090e457115: Pushed d439a57c1d4e: Pushed fe6451826393: Pushed 3223e4260bc7: Pushed 1b4cc32a5b9d: Pushed d917f59154bf: Pushed 2274c4bfd58e: Pushed 74c0af6e0227: Pushed latest: digest: sha256:7ce6dcf2a9e586b3c44a03236e7fd84fd56f3b4fd99c905e909318cbfd51e4fa size: 3043 ``` ::: ##### Create with dms_cli ``` dms_cli onboard --config_file_path=config.json --shcema_file_path=embedded-schema-copy.json ``` :::success ``` root@ubuntu:~/qp/xapp-descriptor# dms_cli onboard --config_file_path=config.json --shcema_file_path=embedded-schema-copy.json { "status": "Created" } ``` ::: ##### Download the xApp helm charts ``` dms_cli download_helm_chart qp 0.0.6 --output_path=/files/helm_xapp ``` :::success ``` root@ubuntu:~/ad/xapp-descriptor# dms_cli download_helm_chart qp 0.0.6 --output_path=/files/helm_xapp status: OK ``` ::: ##### Install with dms_cli ``` dms_cli install qp 0.0.6 ricxapp ``` :::success ``` root@ubuntu:~/qp/xapp-descriptor# dms_cli install qp 0.0.6 ricxapp status: OK ``` ::: #### Check Status Pods ``` kubectl get pods -A ``` :::success ``` ricxapp ricxapp-ad-75b784b46c-8v7ql 1/1 Running 0 2m24s ricxapp ricxapp-hw-go-7d6c6cb7f4-gvd2j 1/1 Running 0 22h ricxapp ricxapp-kpimon-go-6b45897558-fvjgg 1/1 Running 0 52m ricxapp ricxapp-qp-569f895f65-vlbgz 1/1 Running 0 5m2s ricxapp ricxapp-trafficxapp-5c4894cd5f-4l9v7 1/1 Running 0 43m ``` ::: ### Check Subscription xApp to RIC platform #### KPI-Mon ##### KPI Logs ``` kubectl logs -f ricxapp-kpimon-go-df64648bb-hw66b -n ricxapp ``` :::success ``` service-ricplt-e2term-rmr-alpha.ricplt:38000 open=0 succ=0 fail=0 (hard=0 soft=0) 1720581104165 8/RMR [INFO] sends: ts=1720581104 src=service-ricxapp-kpimon-go-rmr.ricxapp:4560 target=service-ricplt-submgr-rmr.ricplt:4560 open=0 succ=0 fail=0 (hard=0 soft=0) 1720581104165 8/RMR [INFO] sends: ts=1720581104 src=service-ricxapp-kpimon-go-rmr.ricxapp:4560 target=service-ricplt-e2mgr-rmr.ricplt:3801 open=0 succ=0 fail=0 (hard=0 soft=0) 1720581104165 8/RMR [INFO] sends: ts=1720581104 src=service-ricxapp-kpimon-go-rmr.ricxapp:4560 target=10.110.221.177:38000 open=0 succ=0 fail=0 (hard=0 soft=0) 1720581104165 8/RMR [INFO] sends: ts=1720581104 src=service-ricxapp-kpimon-go-rmr.ricxapp:4560 target=service-ricplt-a1mediator-rmr.ricplt:4562 open=0 succ=0 fail=0 (hard=0 soft=0) {"ts":1720581113957,"crit":"DEBUG","id":"kpimon","mdc":{"CONTAINER_NAME":"","HOST_NAME":"","PID":"8","POD_NAME":"","SERVICE_NAME":"","SYSTEM_NAME":"","time":"2024-07-10T03:11:53"},"msg":"restapi: method=GET url=/ric/v1/health/alive"} {"ts":1720581113957,"crit":"DEBUG","id":"kpimon","mdc":{"CONTAINER_NAME":"","HOST_NAME":"","PID":"8","POD_NAME":"","SERVICE_NAME":"","SYSTEM_NAME":"","time":"2024-07-10T03:11:53"},"msg":"restapi: method=GET url=/ric/v1/health/ready"} {"ts":1720581128958,"crit":"DEBUG","id":"kpimon","mdc":{"CONTAINER_NAME":"","HOST_NAME":"","PID":"8","POD_NAME":"","SERVICE_NAME":"","SYSTEM_NAME":"","time":"2024-07-10T03:12:08"},"msg":"restapi: method=GET url=/ric/v1/health/ready"} {"ts":1720581128958,"crit":"DEBUG","id":"kpimon","mdc":{"CONTAINER_NAME":"","HOST_NAME":"","PID":"8","POD_NAME":"","SERVICE_NAME":"","SYSTEM_NAME":"","time":"2024-07-10T03:12:08"},"msg":"restapi: method=GET url=/ric/v1/health/alive"} ``` ::: ##### SubMgr Logs ``` kubectl logs -f deployment-ricplt-submgr-599754c984-f466m -n ricplt ``` :::success ``` 1720582492204 1/RMR [INFO] sends: ts=1720582492 src=service-ricplt-submgr-rmr.ricplt:4560 target=service-ricxapp-kpimon-go-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) ``` ::: ##### E2Mgr Logs ``` kubectl logs -f deployment-ricplt-e2mgr-b988db566-nkzjp -n ricplt ``` :::success ``` 1720582452200 7/RMR [INFO] sends: ts=1720582452 src=service-ricplt-e2mgr-rmr.ricplt:3801 target=service-ricxapp-kpimon-go-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) ``` ::: ##### E2term Logs ``` kubectl logs -f deployment-ricplt-e2term-alpha-75d8ccb646-m45xp -n ricplt ``` :::success ``` 1720581307174 22/RMR [INFO] sends: ts=1720581307 src=service-ricplt-e2term-rmr-alpha.ricplt:38000 target=10.244.0.24:43534 open=0 succ=5 fail=0 (hard=0 soft=0) 1720581307174 22/RMR [INFO] sends: ts=1720581307 src=service-ricplt-e2term-rmr-alpha.ricplt:38000 target=10.244.0.24:43978 open=0 succ=9 fail=0 (hard=0 soft=0) 1720581307174 22/RMR [INFO] sends: ts=1720581307 src=service-ricplt-e2term-rmr-alpha.ricplt:38000 target=10.244.0.24:43978 open=0 succ=0 fail=0 (hard=0 soft=0) ``` ::: :::danger ##### Problem KPI Mon Registration is not done yet ``` {"ts":1720579760123,"crit":"DEBUG","id":"kpimon","mdc":{"CONTAINER_NAME":"","HOST_NAME":"","PID":"8","POD_NAME":"","SERVICE_NAME":"","SYSTEM_NAME":"","time":"2024-07-10T02:49:20"},"msg":"App registration is not done yet, sleep 5s and check again"} ``` You can add this section to config.json ``` "livenessProbe": { "httpGet": { "path": "ric/v1/health/alive", "port": 8080 }, "initialDelaySeconds": 5, "periodSeconds": 15 }, "readinessProbe": { "httpGet": { "path": "ric/v1/health/ready", "port": 8080 }, "initialDelaySeconds": 5, "periodSeconds": 15 }, ``` ::: #### HW-GO ##### HW-GO Logs ``` kubectl logs -f ricxapp-hw-go-7d6c6cb7f4-gvd2j -n ricxapp ``` :::success ``` 1720582412201 7/RMR [INFO] sends: ts=1720582412 src=service-ricxapp-hw-go-rmr.ricxapp:4560 target=localhost:4591 open=0 succ=0 fail=0 (hard=0 soft=0) 1720582412201 7/RMR [INFO] sends: ts=1720582412 src=service-ricxapp-hw-go-rmr.ricxapp:4560 target=service-ricxapp-kpimon-go-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) ``` ::: ##### SubMgr Logs ``` kubectl logs -f deployment-ricplt-submgr-599754c984-f466m -n ricplt ``` :::success ``` 1720581589179 1/RMR [INFO] sends: ts=1720581589 src=service-ricplt-submgr-rmr.ricplt:4560 target=service-ricxapp-hw-go-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) ``` ::: ##### E2Mgr Logs ``` kubectl logs -f deployment-ricplt-e2mgr-b988db566-nkzjp -n ricplt ``` :::success ``` 1720583054220 7/RMR [INFO] sends: ts=1720583054 src=service-ricplt-e2mgr-rmr.ricplt:3801 target=service-ricxapp-hw-go-rmr.ricxapp:4560 open=0 succ=0 fail=0 (hard=0 soft=0) ``` ::: ##### E2Term Logs ``` kubectl logs -f deployment-ricplt-e2term-alpha-75d8ccb646-m45xp -n ricplt ``` :::success ``` 1720583113227 22/RMR [INFO] sends: ts=1720583113 src=service-ricplt-e2term-rmr-alpha.ricplt:38000 target=10.244.0.24:43574 open=0 succ=15 fail=0 (hard=0 soft=0) ``` ::: :::success ### Check Connection for use case KPIMON (SUCCESS) #### Logs E2SIM ![image](https://hackmd.io/_uploads/BJ0ubp2_0.png) #### Logs SubMgr ![image](https://hackmd.io/_uploads/SkXoq27dR.png) #### Logs KPIMON ![image](https://hackmd.io/_uploads/ByRUZp2_C.png) #### E2Mgr ![image](https://hackmd.io/_uploads/S1jlTnmu0.png) ![image](https://hackmd.io/_uploads/r1zGThQd0.png) #### Tshark ![image](https://hackmd.io/_uploads/BJOmET3uA.png) ::: ### Create Ploicy for TS ``` nano ts-policy-type-20008.json ``` ``` { "name": "tspolicy", "description": "tsa parameters", "policy_type_id": 20008, "create_schema": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "TS Policy", "description": "TS policy type", "type": "object", "properties": { "threshold": { "type": "integer", "default": 0 } }, "additionalProperties": false } } ``` ``` curl -v -X PUT "http://${Your_KONG_IP}:32080/a1mediator/A1-P/v2/policytypes/20008" -H "accept: application/json" -H "Content-Type: application/json" -d @./ts-policy-type-20008.json ``` ![image](https://hackmd.io/_uploads/ry0ygfzqC.png) ``` curl -X PUT --header "Content-Type: application/json" --data "{\"threshold\" : 5}" http://10.109.206.158:32080/a1mediator/A1-P/v2/policytypes/20008/poli cies/"tsapolicy145" ``` ![image](https://hackmd.io/_uploads/Hkv0effcA.png)