Overview
PM-Mapper provides ONAP Operators with the ability to define flexible, customizable Performance events. VES Events are generated from PM XML Files and are targeted for analytics applications in ONAP.
Bulk PM Flow:
- NF notifies VES Collector that a PM file is available for upload.
- Data File Collector downloads PM Files from the NF and publishes them to Data Router.
- PM-Mapper creates custom Performance events (VES) from the PM File data according to PM Mapping File.
- Analytics Applications use these performance events for targeted analysis of network operations.
Blueprint/model/image
pm-mapper image: (TBD) |
---|
Deployment Prerequisite/dependencies
DCAE and DMaaP pods should be up and running.
- DMaaP Bus Controller PostInstalls job should have completed successfully (executed as part of an OOM install).
- Make sure that cfy is installed and configured to work with the Cloudify deployment.
Deployment Steps
Execute bash on the Cloudify manager Kubernetes pod.
kubectl -n onap exec -it <dev-dcaegen2-dcae-cloudify-manager> bash
Download the pm-mapper blueprint.
- Create an inputs file (see the configuration section for more information).
Run the Cloudify Install command to install the pm-mapper with the recently downloaded blueprints, and the newly created inputs files.
cfy install --blueprint-id pm-mapper --deployment-id pm-mapper -i inputs.yaml <pm-mapper-blueprint-path>
Validation
curl <dcaegen2-dcae-healthcheck> and check if pm-mapper is in 'ready' state.
Verification
To verify that the PM-Mapper is working as it should, we can publish a 3GPP XML file to the PM-Mapper, and verify that the counters in the outputted VES match what we expect based on our filtering.
To publish a file to the PM-Mapper we can use the following example curl. Where <filename> Must begin with A or C and the file extension must be xml.
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'
Note
We can then check that the XML has been processed and published to Message Router as a VES event by curling the PM-Mapper topic on Message Router.
We first need to set up a subscriber to the PM-Mapper topic as this is not set up by default. We can do this with the following curl to Bus Controller:
curl -X POST http://dmaap-bc:8080/webapi/mr_clients -H "Content-Type:application/json" --data @sub-client.json
Once the subscriber is set up, we can curl the topic on Message Router to retrieve the published event:
curl -k https://message-router:3905/events/org.onap.dmaap.mr.PM_MAPPER -u 'dcae@dcae.onap.org:<dcae_password>'
This VES event can then be compared to the filter specified during configuration of the PM-Mapper to verify that only the specified counters have been published.
Using the example type A file above, and the example key/value configuration in consul, the PM Mapper will produce the following VES output, note that only counter "a" and "c" were mapped, as specified in the filter configuration.
Configuration
Configuration of the service consists of generating an inputs file which will be used as part of the Cloudify install. The PM-Mapper blueprints were designed with sane defaults for the majority of the fields.
Below you will find some examples of fields which can be configured, and some of the fields which must be configured.
Property | Sample Value | Description | Required |
---|---|---|---|
aaf_username | dcae@dcae.onap.org | In the Dublin release information about the AAF user must be provided to enable publishing to authenticated topics. | Yes |
aaf_password | <dcae_password> | This is the password for the given user e.g. Replace <dcae_password> with dcae@dcae.onap.org's password. | Yes |
enable_http | true | By default, the PM-Mapper will only allow inbound queries over HTTPS, however its possible to configure it to enable HTTP also. | No |
tag_version | nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:<version> | By default the latest Docker Images will be used when deploying the PM-Mapper. Replace <version> with the desired Docker image version. | No |
pm-mapper-filter | {"filters": [{"pmDefVsn":"targetVersion", "nfType":"targetNodeType", "vendor":"targetVendor", "measTypes":["targetMeasType"]}]} | The default behavior of the PM-Mapper is to map all measType in the received PM XML files, however, it's possible to provide filtering configuration which will reduce the VES event to the counters that the designer has expressed interest in. In this provided example a VES event containing the "targetMeasType" will only be generated and published if the following conditions are true:
Additional Information on the filter model can be found here. | No |