Versions Compared

Key

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

...

Panel
borderColorwhite
borderWidth20


Expand
titleExample type A file
<?xml version="1.0" encoding="UTF-8"?>
<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
<fileHeader dnPrefix="some dnPrefix" vendorName="Acme Ltd"
fileFormatVersion="32.435 V10.0">
<fileSender localDn="Dublin"/>
<measCollec beginTime="2018-10-02T12:00:00+01:00"/>
</fileHeader>
<measData>
<managedElement swVersion="r0.1" localDn="Dublin"/>
<measInfo measInfoId="some measInfoId">
<job jobId="some Job Id"/>
<granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
<repPeriod duration="PT900S"/>
<measType p="1">a</measType>
<measType p="2">b</measType>
<measType p="3">c</measType>
<measValue measObjLdn="some measObjLdn">
<r p="1">86</r>
<r p="2">67</r>
<r p="3">14</r>
<suspect>false</suspect>
</measValue>
</measInfo>
</measData>
<fileFooter>
<measCollec endTime="2018-10-02T12:15:00+01:00"/>
</fileFooter>
</measCollecFile>

Anchor
pmMapperIncomingRequest
pmMapperIncomingRequest

Code Block
languagebash
themeEmacs
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
titleNote
The productName and vendorName specified in X-DMAAP-DR-META must match the nfType and vendor specified during configuration of the PM-Mapper

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:

Code Block
languagebash
themeEmacs
curl -X POST http://dmaap-bc:8080/webapi/mr_clients -H "Content-Type:application/json" --data @sub-client.json


Expand
titlesub-client.json

<= R4 release

Code Block
themeEmacs
{
"dcaeLocationName": "san-fransciscofrancisco",
"fqtn": "org.onap.dmaap.mr.PM_MAPPER",
"clientIdentity": "dcae@dcae.onap.org",
"action": "dcae@dcae.onap.org",
"action": "sub"
}

Once the subscriber is set up, we can curl the topic on Message Router to retrieve the published event:

"sub"
}


El Alto release:

Code Block
themeEmacs
{
"dcaeLocationName": "san-francisco",
"fqtn": "org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS",
"clientIdentity": "dcae@dcae.onap.org",
"action": "sub"
}


Once the subscriber is set up, we can curl the topic on Message Router to retrieve the published event:

Code Block
languagebash
themeEmacs
<= R4 release
curl -k https://message-router:3905/events/org.onap.dmaap.mr.PM_MAPPER -u 'dcae@dcae.onap.org:<dcae_password>'

El Alto release:
curl -k https://message-router:3905/events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS/$ConsumerGroup/$ID -u 'dcae@dcae.onap.org:<dcae_password>'
e.g. 
curl
Code Block
languagebash
themeEmacs
curl -k https://message-router:3905/events/org.onap.dmaap.mr.PM_MAPPERPERFORMANCE_MEASUREMENTS/1/1 -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.

Expand
titleExample key/value configuration in consul

Code Block
themeEmacs
{
  "pm-mapper-filter": {
    "filters": [
      {
        "pmDefVsn": "1.8",
        "nfType": "AcmeNode",
        "vendor": "Acme",
        "measTypes": [
          "a",
          "c"
        ]
      }
    ]
  },
  "trust_store_pass_path": "/opt/app/pm-mapper/etc/cert/trust.pass",
  "key_store_path": "/opt/app/pm-mapper/etc/cert/cert.jks.b64",
  "streams_subscribes": {
    "dmaap_subscriber": {
      "type": "data_router",
      "dmaap_info": {
        "username": "username",
        "password": "password",
        "location": "san-francisco",
        "delivery_url": "https://dcae-pm-mapper:8443/delivery",
        "subscriber_id": "1"
      }
    }
  },
  "trust_store_path": "/opt/app/pm-mapper/etc/cert/trust.jks.b64",
  "streams_publishes": {
    "dmaap_publisher": {
      "aaf_password": "password",
      "type": "message_router",
      "dmaap_info": {
        "topic_url": "http://message-router:3904/events/org.onap.dmaap.mr.PM_MAPPER",
        "client_role": "org.onap.dmaap.mr.PM_MAPPER.pub",
        "location": "san-francisco",
        "client_id": "dcae@dcae.onap.org"
      },
      "aaf_username": "username"
    }
  },
  "dmaap_dr_delete_endpoint": "https://dmaap-dr-node:8443/delete",
  "key_store_pass_path": "/opt/app/pm-mapper/etc/cert/jks.pass",
  "enable_http": false,
  "dmaap_dr_feed_name": "bulk_pm_feed"
}



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.

Expand
titleExample VES output based on above configuration


Code Block
themeEmacs
{
  "event": {
    "commonEventHeader": {
      "domain": "perf3gpp",
      "eventId": "f544c442-9dc1-41d4-8f0d-6567e1ea7729",
      "sequence": 0,
      "eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult",
      "sourceName": "oteNB5309",
      "reportingEntityName": "",
      "priority": "Normal",
      "startEpochMicrosec": 1538478000000,
      "lastEpochMicrosec": 1538478900000,
      "version": "4.0",
      "vesEventListenerVersion": "7.1",
      "timeZoneOffset": "UTC+05:00"
    },
    "perf3gppFields": {
      "perf3gppFieldsVersion": "1.0",
      "measDataCollection": {
        "granularityPeriod": 1538482500000,
        "measuredEntityUserName": "",
        "measuredEntityDn": "Dublin",
        "measuredEntitySoftwareVersion": "r0.1",
        "measInfoList": [
          {
            "measInfoId": {
              "sMeasInfoId": "some measInfoId"
            },
            "measTypes": {
              "sMeasTypesList": [
                "a",
                "c"
              ]
            },
            "measValuesList": [
              {
                "measObjInstId": "some measObjLdn",
                "suspectFlag": "false",
                "measResults": [
                  {
                    "p": 1,
                    "sValue": "86"
                  },
                  {
                    "p": 3,
                    "sValue": "14"
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  }
}


...

If you want to instantiate PM-Mapper (and Datafile Collector) they will need to be copied from a server with internet access to the ONAP deployment which doesnt.

OOM-2243 when completed will include the PM-Mapper and Datafile Collector packages in the offline deployment environment.

Create the docker image on a server which has internet access i.e.
# docker pull nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.2.0
1.2.0: Pulling from onap/org.onap.dcaegen2.services.pm-mapper
Digest: sha256:f6a9349b575d7a62525196fec4f610a773db0ec6ff49be0bc6d0b134fc52a76d
Status: Downloaded newer image for nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.2.0
nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.2.0
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper 1.2.0 2bb6a1b426ab 36 minutes ago 101MB
# docker save 2bb6a1b426ab > 1.2.0.mapper.tar

...