DCAE R8 KPI-Computation ms

Overview

KPI-computation-service is component that can do calucaltion based on PM data, and expose KPI result.
The features include:
    Subscribe original PM data from DMaaP
    Do KPI computation based on KPI formula which can be got from config policies and the formula can be configued dynamically.
    Publish KPI results on DMaaP
    Receive request for specific KPI computation (future scope) on specific ‘objects’ (e.g., S-NSSAI, Service)

Architecture Diagram

KPI flows:

1. KPI Computation MS will get PM data VES format from DMaaP
2. Other modules (e.g., SO/OOF/Slice Analysis MS) can also request KPI-MS for KPI calculation (Future scope beyond H-release).
3. KPI Computation can be triggered once PM data received. 
4. KPI Computation do calculation ,generate KPI result, publish the result to Dmaap. 

Current Status:

1. This ms provide a basic framework to support kpi computation, currently only support to do basic sum operation at present. more operation need to be extend in  the future.
2. This ms only support to do calculation base on the real-time pm data from dmaap which published by pm-mapper.
3. This ms can support to get formula from cbs.
4. KPI Computation do calculation ,generate KPI result, publish the result to Dmaap. 

Artifact

KPI ms can be dynamically deployed in DCAE’s Cloudify environment via its blueprint deployment artifact.

Βlueprint component file can be found in:

    https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-kpi-ms.yaml

 

Deployment Prerequisite/dependencies

  1. DCAE and DMaaP pods should be up and running. 

  2. Make sure that cfy is installed and configured to work with the Cloudify deployment.

  3. PM mapper service should be running.

Deployment Steps

a)Execute bash on the bootstrap Kubernetes pod.

 

b)Download the kpi blueprint and save to /blueprints directory.

c)Run Cloudify to install the kpi ms      

      cfy blueprints upload -b kpi-ms k8s-kpi-ms.yaml      cfy deployments create -b kpi-ms kpi-ms         cfy executions start -d kpi-ms install

Validation

Functional tests       

1.  create a data sample 3GPP based:

RAN.xml

2. the config from cbs like this below:

config.txt

3.  Follow the pm-mapper steps to publish a file to the PM-Mapper we can use the following example curl. 

curl -k -X PUT https://dcae-pm-mapper:8443/delivery/<filename> -H 'X-DMAAP-DR-META:{"productName": "AcmeNode","vendorName": "Acme","lastEpochMicrosec": "1538478000000","sourceName": "oteNB5309","startEpochMicrosec": "1538478900000","timeZoneOffset": "UTC+05:00","location": "ftpes://127.0.0.1:22/ftp/rop/A20161224.1045-1100.bin.gz","compression": "gzip","fileFormatType": "org.3GPP.32.435#measCollec","fileFormatVersion": "V9"}' -H "Content-Type:application/xml" --data-binary @<filename> -H 'X-ONAP-RequestID: 12345' -H 'X-DMAAP-DR-PUBLISH-ID: 12345'

 

4. curl the topic on Message Router to retrieve kpi event: 

  curl -k https://message-router.onap.svc.cluster.local:3905/events/unauthenticated.DCAE_KPI_OUTPUT/c1/g1

output.json

summary:

For this ms, a kpi formula is upload by configbinding service, the original pm data is retrived from dmaap which published by pm-mapper, the kpi ms do the calculation based on the the data and the formula.

Future Enhancement Planned:

The intention for kpi ms is to make this micro-service generic to be usable for other use cases also beyond E2E Network Slicing, and to add more capabilities., for R8 release, this ms will do KPI Computation once pm data received, and support some basic computation, For example, the indicator "Downstream throughput for Single Network Slice Instance", It is obtained by downstream throughput provided by N3 interface from all UPFs to NG-RAN which are related to the single network slice instance, the ms will support the operation to sum all the downstream throughput from all the UPFs, and generate the kpi result. also other simple computation like this will be supported.

Future extension to enable more flexibility and greater reusability: support other modules (e.g., SO/OOF/Slice Analysis MS) can request KPI-MS for KPI calculation,;can do calculation based on the data not only from dmaap but also other service such as database etc; support more complex operation. 

 

Creating KPI policy-type and policy-instance:

Earlier the kpi policy was given in the "application_config.yaml" file in the app-config folder as "kpi.policy" . Now for migrating the kpi policy to the policies module we are creating the new policy-type and the policy-instance and deploy the kpi policy. Then changes in the values.yaml file to fetch the policy with the "policy-id" with the help of policy sidecar container. Then get the kpi configs from the policies fetched and use in the computation of a Kpi.

Changes in values.yaml:

dcaePolicySyncImage: onap/org.onap.dcaegen2.deployments.dcae-services-policy-sync:1.0.1
policies:
    policyID:  |
         '["com.Config_KPIMS_CONFIG_POLICY"]'