Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

2. MSB Configuration

Register so-orchestrationTasks and so-serviceInstances datalake interface to MSB.

Interface registration can be done through portal.

...

  1. Build presto image and push the images to a exsting repository
    1. Download and extract presto package version v0.0.2: presto-v0.0.2.tar.gz
    2. docker build -t presto:v0.0.2 .
    3. docker tag presto:v0.0.2 registry.baidubce.com/onap/presto:v0.0.2
    4. docker push registry.baidubce.com/onap/presto:v0.0.2
    5. Note: Replace the repository path with your own repository.
  2. Install presto service
    1. kubectl -n onap run dl-presto --image=presto:v0.0.2 --env="MongoDB_IP=dcae-mongohost" --env="MongoDB_PORT=27017" --image-pull-policy=IfNotPresent
    2. kubectl expose pod dl-presto --name=dl-presto --port=9000 --target-port=9000 --type=NodePort -n onap
  3. Login to the dev-dcae-datalake-postgres-primary container and execute following sql commands:

    Code Block
    titledatalake-db init_data
    linenumberstrue
    collapsetrue
    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);


  4. 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 

...

  1.  curl -k --silent --user 'policyadmin:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes" -H "Accept: application/json" -H "Content-Type: application/json" -d @kpipolicytype.json
  2.  curl -k --silent --user 'policyadmin:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes/onap.policies.monitoring.docker.kpims.app/versions/1.0.0/policies" -H "Accept: application/json" -H "Content-Type: application/json" -d @kpipolicyinstance.json
  3. curl --silent -k --user 'policyadmin:zb!XztG34' -X POST "https://policy-pap:6969/policy/pap/v1/pdps/policies" -H "Accept: application/json" -H "Content-Type: application/json" -d @deploykpipolicy.json


deploykpipolicykpipolicytype.json

unmigratedelite-soft-wikijson-markupviewer
{
  "policy_types": {
    "onap.policies.monitoring.docker.kpims.app":[ {
     { "derived_from": "onap.policies.Monitoring:1.0.0",
       "policy-iddescription":"com.Config_KPIMS_CONFIG_POLICY",
   "KPI ms policy type",
      "policy-versionproperties":1 {
     }   "domain": ]
}

kpipolicytype.json

Wiki Markup
{{
   "policy_types": {     "onap.policies.monitoring.docker.kpims.app": {
      "derived_from": "onap.policies.Monitoring:1.0.0",
      "description": "KPI ms policy type",
      "properties": {
        "domain": {
          "required": true,
          "type": "string"
        },
		"methodForKpi":{
         "type":"list",
         "required":true,
         "entry_schema":{
         "type":"policy.data.methodForKpi_properties"
                    }
          }
       
      },
      "version": "1.0.0"
    }
  },
    "data_types": {
    "policy.data.methodForKpi_properties": {
      "derived_from": "tosca.nodes.Root",
      "properties": {
		     "eventName":{
                    "type":"string",
                    "required":true
                },
			 "controlLoopSchemaType":{
                    "type":"string",
                    "required":true
                },
			"policyScope":{
                    "type":"string",
                    "required":true
                },
			"policyName":{
                    "type":"string",
                    "required":true
                },
			"policyVersion":{
                    "type":"string",
                    "required":true
                },
			"kpis":{
                   "type":"list",
                   "required":true,
                   "entry_schema":{
                   "type":"policy.data.kpis_properties"
                    }
                }
		  
	  }
	},
	"policy.data.kpis_properties": {
      "derived_from": "tosca.nodes.Root",
      "properties": {
		     "measType":{
                    "type":"string",
                    "required":true
                },
			 "operation":{
                    "type":"string",
                    "required":true
                },
			"operands":{
                    "type":"string",
                    "required":true
                }
	  }
	}
	},
  "tosca_definitions_version": "tosca_simple_yaml_1_1_0"
}

kpipolicyinstance.json

...


Elite soft json viewer
{
  "name": "ToscaServiceTemplateSimple",
  "topology_template": {
    "policies": [
      {
        "com.Config_KPIMS_CONFIG_POLICY": {
		  "type": "onap.policies.monitoring.docker.kpims.app",
          "type_version": "1.0.0",
          "version": "1.0.0",
          "metadata": {
            "policy-id": "com.Config_KPIMS_CONFIG_POLICY",
            "policy-version": "1"
          },
          "name": "com.Config_KPIMS_CONFIG_POLICY",
          "properties": {
           "domain": "measurementsForKpi",
		   "methodForKpi": [
		   {
		   "eventName": "perf3gpp_CORE-AMF_pmMeasResult",
		   "controlLoopSchemaType": "SLICE",
		   "policyScope": "resource=networkSlice;type=configuration",
		   "policyName": "configuration.dcae.microservice.kpi-computation",
		   "policyVersion": "v0.0.1",
		     "kpis": [{
				 "measType": "AMFRegNbr",
				 "operation": "RATIO",
				 "operands": ["RM.RegisteredSubNbrMean"]}
				 ]
			}, 
			{
			 "eventName": "perf3gpp_RnNode-Slicing_pmMeasResult",
			 "controlLoopSchemaType": "SLICE",
			 "policyScope": "resource=networkSlice;type=configuration",
			 "policyName": "configuration.dcae.microservice.kpi-computation",
			 "policyVersion": "v0.0.1",
			 "kpis": [{
				 "measType": "PDUSessionEstSR",
				 "operation": "RATIO",
				 "operands": ["SM.PDUSessionSetupSucc","SM.PDUSessionSetupReq"]}
				 ]
			}
			]
        }
      }
	  }
    ]
     },
  "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
  "version": "1.0.0"
}

deploykpipolicy.json

Elite soft json viewer
{
   "policies":[
      {
         "policy-id":"com.Config_KPIMS_CONFIG_POLICY",
         "policy-version":1
      }
   ]
}


To create the dmaap topic - unauthenticated.DCAE_KPI_OUTPUT ::

...

  1. Clone the repo from : git clone https://gerrit.onap.org/r/integration/simulators/ran-simulator
  2. Import the latest SDNC certificate into ransim

    1. Download the SDNC cacerts from browser.

    2. 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

  3. 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
  4. 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
  5. 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 
  6. Setup honeycomb (Refer HONEYCOMB section)
  7. 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.
  8. Sample data to be loaded: ransim-intelligent-slicing-data.txt
  9. To view the CUCP honeycomb containers  logs:
    1. docker exec -ti cucpserver1 bash
    2. tail -f var/log/honeycomb/honeycomb.log
    3. docker exec -ti cucpserver2 bash
    4. tail -f var/log/honeycomb/honeycomb.log
  10. Check the folder(where SFTP setup is done) to view the generated PM data files.
  11. Access VES, data file collector, dmaap-dr, PM mapper, ml-prediction-ms and slice-analysis logs to verify.
  12. To manually generate PM data:
    1. curl -X POST -H "Content-Type:  text/plain" http://localhost:8081/ransim/api/GenerateIntelligentSlicingPmData -i
  13. To Stop PM data:
    1. curl -X POST -H "Content-Type:  text/plain" http://localhost:8081/ransim/api/stopIntelligentSlicingPmData -i

...