...
- VES, PM mapper and DataFile Collector, dcae-mongodb, Datalake Extraction Service(DES) and Datalake-feeder services should be running.
...
4. DCAE-MONGO DB:
- Login to dcae-mongodb container and execute following commands to check if PM data was saved in DB:
- mongo
- use datalake
- db.unauthenticatedperformancemeasurements.find({})
to load sample data:
Code Block title mongodb sample data 1 linenumbers true collapse true db.unauthenticatedperformancemeasurements.insert({ "event": { "commonEventHeader": { "domain": "perf3gpp", "eventId": "dfe43a5c-0868-4275-b1c9-e45945b6a38c", "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult", "lastEpochMicrosec": 1610689590387, "priority": "Normal", "reportingEntityName": "", "sequence": 1, "sourceName": "cucpserver2", "startEpochMicrosec": 1610689590387, "version": 4, "vesEventListenerVersion": "7.1", "timeZoneOffset": "UTC+05:00" }, "perf3gppFields": { "perf3gppFieldsVersion": "1.0", "measDataCollection": { "granularityPeriod": 900, "measuredEntityUserName": "", "measuredEntityDn": "cucpserver2", "measuredEntitySoftwareVersion": "r0.1", "measInfoList": [ { "measInfoId": { "sMeasTypesList": "SLICE" }, "measTypes": { "sMeasTypesList": [ "PDUSessionEstSR.01-B989BD" ] }, "measValuesList": [ { "suspectFlag": false, "measResults": [ { "p": 1, "sValue": "166" } ] } ] } ] } } } })
Code Block title mongodb sample data 2 linenumbers true collapse true db.unauthenticatedperformancemeasurements.insert({ "event": { "commonEventHeader": { "domain": "perf3gpp", "eventId": "4ad683e3-40d0-47f5-8ba0-a8da51ff1ab5", "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult", "lastEpochMicrosec": 1606743157915, "priority": "Normal", "reportingEntityName": "", "sequence": 1, "sourceName": "cucpserver2", "startEpochMicrosec": 1606743157914, "version": 4, "vesEventListenerVersion": "7.1", "timeZoneOffset": "UTC+05:00" }, "perf3gppFields": { "perf3gppFieldsVersion": "1.0", "measDataCollection": { "granularityPeriod": 900, "measuredEntityUserName": "", "measuredEntityDn": "cucpserver2", "measuredEntitySoftwareVersion": "r0.1", "measInfoList": [ { "measInfoId": { "sMeasTypesList": "SLICE" }, "measTypes": { "sMeasTypesList": [ "PDUSessionEstSR.01-B989BD" ] }, "measValuesList": [ { "suspectFlag": false, "measResults": [ { "p": 1, "sValue": "188" } ] } ] } ] } } } })
Code Block title mongodb sample data 3 linenumbers true collapse true db.unauthenticatedperformancemeasurements.insert({ "event": { "commonEventHeader": { "domain": "perf3gpp", "eventId": "5105bf0e-f157-455f-b1eb-d686ddf39aa9", "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult", "lastEpochMicrosec": 1606753197538, "priority": "Normal", "reportingEntityName": "", "sequence": 1, "sourceName": "cucpserver2", "startEpochMicrosec": 1606753197537, "version": 4, "vesEventListenerVersion": "7.1", "timeZoneOffset": "UTC+05:00" }, "perf3gppFields": { "perf3gppFieldsVersion": "1.0", "measDataCollection": { "granularityPeriod": 900, "measuredEntityUserName": "", "measuredEntityDn": "cucpserver2", "measuredEntitySoftwareVersion": "r0.1", "measInfoList": [ { "measInfoId": { "sMeasTypesList": "SLICE" }, "measTypes": { "sMeasTypesList": [ "PDUSessionEstSR.01-B989BD" ] }, "measValuesList": [ { "suspectFlag": false, "measResults": [ { "p": 1, "sValue": "61" } ] } ] } ] } } } })
Code Block title mongodb sample data 4 linenumbers true collapse true db.unauthenticatedperformancemeasurements.insert({ "event": { "commonEventHeader": { "domain": "perf3gpp", "eventId": "24cf31f7-3def-43c1-85d8-4ad8041c5e08", "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult", "lastEpochMicrosec": 1610689590387, "priority": "Normal", "reportingEntityName": "", "sequence": 1, "sourceName": "cucpserver1", "startEpochMicrosec": 1610689590387, "version": 4.0, "vesEventListenerVersion": "7.1", "timeZoneOffset": "UTC+05:30" }, "perf3gppFields": { "perf3gppFieldsVersion": "1.0", "measDataCollection": { "granularityPeriod": 900, "measuredEntityUserName": "", "measuredEntityDn": "cucpserver1", "measuredEntitySoftwareVersion": "r0.1", "measInfoList": [{ "measInfoId": { "sMeasTypesList": "SLICE" }, "measTypes": { "sMeasTypesList": ["PDUSessionEstSR.01-497651"] }, "measValuesList": [{ "suspectFlag": false, "measResults": [{ "p": 1, "sValue": "228" }] }] }] } } } })
Code Block title mongodb sample data 5 linenumbers true collapse true db.unauthenticatedperformancemeasurements.insert({ "event": { "commonEventHeader": { "domain": "perf3gpp", "eventId": "22ad0df1-958b-4136-9053-57c3967a6207", "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult", "lastEpochMicrosec": 1606743157915, "priority": "Normal", "reportingEntityName": "", "sequence": 1, "sourceName": "cucpserver1", "startEpochMicrosec": 1606743157914, "version": 4.0, "vesEventListenerVersion": "7.1", "timeZoneOffset": "UTC+05:30" }, "perf3gppFields": { "perf3gppFieldsVersion": "1.0", "measDataCollection": { "granularityPeriod": 900, "measuredEntityUserName": "", "measuredEntityDn": "cucpserver1", "measuredEntitySoftwareVersion": "r0.1", "measInfoList": [{ "measInfoId": { "sMeasTypesList": "SLICE" }, "measTypes": { "sMeasTypesList": ["PDUSessionEstSR.01-497651"] }, "measValuesList": [{ "suspectFlag": false, "measResults": [{ "p": 1, "sValue": "137" }] }] }] } } } })
Code Block title mongodb sample data 6 linenumbers true collapse true db.unauthenticatedperformancemeasurements.insert({ "event": { "commonEventHeader": { "domain": "perf3gpp", "eventId": "c01bf72b-d4a3-42d6-a0bb-3d96bdacc503", "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult", "lastEpochMicrosec": 1606753197538, "priority": "Normal", "reportingEntityName": "", "sequence": 1, "sourceName": "cucpserver1", "startEpochMicrosec": 1606753197537, "version": 4.0, "vesEventListenerVersion": "7.1", "timeZoneOffset": "UTC+05:30" }, "perf3gppFields": { "perf3gppFieldsVersion": "1.0", "measDataCollection": { "granularityPeriod": 900, "measuredEntityUserName": "", "measuredEntityDn": "cucpserver1", "measuredEntitySoftwareVersion": "r0.1", "measInfoList": [{ "measInfoId": { "sMeasTypesList": "SLICE" }, "measTypes": { "sMeasTypesList": ["PDUSessionEstSR.01-497651"] }, "measValuesList": [{ "suspectFlag": false, "measResults": [{ "p": 1, "sValue": "199" }] }] }] } } } })
...
5. Datalake Extraction Service(DES):
- Build presto image and push the images to a exsting repository
- Download and extract presto package version v0.0.2: presto-v0.0.2.tar.gz
- docker build -t presto:v0.0.2 .
- docker tag presto:v0.0.2 registry.baidubce.com/onap/presto:v0.0.2
- docker push registry.baidubce.com/onap/presto:v0.0.2
- Note: Replace the repository path with your own repository.
- Install presto service
- kubectl -n onap run dl-presto --image=presto:v0.0.2 --env="MongoDB_IP=dcae-mongohost" --env="MongoDB_PORT=27017" --image-pull-policy=IfNotPresent
- kubectl expose pod dl-presto --name=dl-presto --port=9000 --target-port=9000 --type=NodePort -n onap
Login to the dev-dcae-datalake-postgres-primary container and execute following sql commands:
Code Block title datalake-db init_data linenumbers true collapse true psql -Udatalake -ddatalake \dt delete from map_db_topic; delete from map_db_design; delete from db; delete from data_exposure ; insert into db (id, db_type_id, enabled, encrypt, name,host,port,database_name) values (2, 'MONGO', true, true, 'MongoDB 1','dcae-mongohost',27017,'datalake'); insert into map_db_topic(db_id,topic_id) select db.id, topic.id from db_type, db, topic where db.db_type_id=db_type.id and db_type.tool=false; update kafka set secure=true, pass='admin_secret' where id=1; insert into topic_name (id) values ('unauthenticated.PERFORMANCE_MEASUREMENTS'); insert into data_exposure(id, note,sql_template,db_id) values ('pDUSessionEstSR','pm_message', 'SELECT event.perf3gppFields.measDataCollection.measInfoList[1].measValuesList[1].measResults[1].sValue AS pDUSessionEstSR, from_unixtime(event.commonEventHeader.startEpochMicrosec/1000) AS timeStamp FROM unauthenticatedperformancemeasurements WHERE any_match(event.perf3gppFields.measDataCollection.measInfoList[1].measTypes.sMeasTypesList, e -> e like ''${id}'') AND event.commonEventHeader.startEpochMicrosec >= ${timeStamp}',2);
- Execute below request to verify:
curl --header "Content-type: application/json" --request POST --data '{"hours":4,"id":"PDUSessionEstSR.00110010","timeStamp":"1606743157914"}' http://dl-des:1681/datalake/v1/exposure/pDUSessionEstSR -i
...
6. KPI - MS :
Deployment Prerequisite/dependencies
- DCAE and DMaaP pods should be up and running.
- PM mapper service should be running.
...
curl -k https://message-router.onap.svc.cluster.local:3905/events/unauthenticated.DCAE_KPI_OUTPUT/c1/g1
...
7. RANSIM :
Follow the steps below to setup the Ransim environment:
- Clone the repo from : git clone https://gerrit.onap.org/r/integration/simulators/ran-simulator
Import the latest SDNC certificate into ransim
Download the SDNC cacerts from browser.
Import the cacert file into the directory ran-simulator/ransim/docker/config/ransim/ and name it as 'jssecacerts'.(Sample step to import shown below)
keytool -import -noprompt -trustcacerts -alias SDNC -file <certsfile> -keystore /ransim/docker/config/ransim/jssecacerts -storepass changeit
- Go to the ran-simulator/ransim directory and build the project : JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn clean install -P docker
- From docker folder, run the following after building the image locally and updating the SDNR IP address in the docker-compose file : docker-compose up
Run the following command to start the RAN network slice simulation
curl -X POST http://localhost:8081/ransim/api/StartRanSliceSimulation -i
To access the logs:
docker exec –ti ransim bash
policy@ransim:/tmp/ransim-install$ tail -f /opt/app/policy/servers/ransim/logs/ransim-rest.log- Setup honeycomb (Refer HONEYCOMB section)
- You can update/add/delete data(throughput, PRBs, maxNoConns etc) in mariadb container(credentials in docker-compose file) if required before generation of PM data.
- Sample data to be loaded: ransim-intelligent-slicing-data.txt
- To view the CUCP honeycomb containers logs:
- docker exec -ti cucpserver1 bash
- tail -f var/log/honeycomb/honeycomb.log
- docker exec -ti cucpserver2 bash
- tail -f var/log/honeycomb/honeycomb.log
- Check the folder(where SFTP setup is done) to view the generated PM data files.
- Access VES, data file collector, dmaap-dr, PM mapper, ml-prediction-ms and slice-analysis logs to verify.
- To manually generate PM data:
- curl -X POST -H "Content-Type: text/plain" http://localhost:8081/ransim/api/GenerateIntelligentSlicingPmData -i
- curl -X POST -H "Content-Type: text/plain" http://localhost:8081/ransim/api/GenerateIntelligentSlicingPmData -i
- To Stop PM data:
- curl -X POST -H "Content-Type: text/plain" http://localhost:8081/ransim/api/stopIntelligentSlicingPmData -i
...
8. Honeycomb:
Repo URL: https://github.com/onap-oof-pci-poc/ran-sim
...