Deploy pm-mapper & configure filter

Deploy pm-mapper & configure filter

Some parts of this page are now out of date. Use together with more recent page for the latest release: e.g. Release M - Run in Kubernetes

This is a brief instruction on how to deploy pm-mapper in docker env and how to configure filters in pm-mapper

Prerequisite

  • Docker

  • make

  • bash

  • linux(ubuntu 18+)

Installation

copy pm-mapper repo from onap gerrit

clone pm-mapper repo
git clone "https://gerrit.onap.org/r/dcaegen2/services/pm-mapper"

go to sub-directory:

cd tools/development
cd tools/development

install dmaap-dr, cbs, consul, files-publisher and dmaap-mr:

install dmapp-dr, cbs, consul, files-publisher and dmaap-mr
make setup-local

install pm-mapper:

install pm-mapper
make run-pm-mapper

After successful installation, we should see the docker containers:

Config dmaap

config dmaap-dr to create a feed for pm-mapper to subscribe:

config dmaap
make config-dmaap

Subscribe to dmaap-dr feed

config dmaap to create a feed for pm-mapper to subscribe:

subscribe
make subscribe-pm-mapper

List files in container files-publisher

files-publisher is a micro-servive designed for test/demo purpose, it has some prepared files to publish to dmaap-dr:

list prepared files
make list-files

In real onap instance, files-publisher is replaced by Data-File-Collector.

Publish file to dmapp-dr

in the same sub-directory, there are two scripts to do this:

send-meas-collec.sh & send-meas-data.sh

we can pick one files from above list, eg:

publish file to dmaap-dr
./send-meas-collec.sh A20181002.0000-1000-0015-1000_5G.xml.gz

Check logs on dmaap-mr:

check logs
docker logs mr-simulator

We should be able to see a message like below:



After formatting:

pm counter
{ "event":{ "commonEventHeader":{ "domain":"perf3gpp", "eventId":"c1907362-1c65-41a1-b464-34b43fec7af1", "sequence":0, "eventName":"perf3gpp_gnb-Nokia_pmMeasResult", "sourceName":"oteNB5309", "reportingEntityName":"", "priority":"Normal", "startEpochMicrosec":951912000000, "lastEpochMicrosec":951912900000, "version":"4.0", "vesEventListenerVersion":"7.1", "timeZoneOffset":"UTC+05.00" }, "perf3gppFields":{ "perf3gppFieldsVersion":"1.0", "measDataCollection":{ "granularityPeriod":951912870000, "measuredEntityUserName":"RNC Telecomville", "measuredEntityDn":"SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1", "measuredEntitySoftwareVersion":"", "measInfoList":[ { "measInfoId":{ "sMeasInfoId":"" }, "measTypes":{ "sMeasTypesList":[ "attTCHSeizures", "succTCHSeizures", "attImmediateAssignProcs", "succImmediateAssignProcs" ] }, "measValuesList":[ { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-997", "suspectFlag":"false", "measResults":[ { "p":1, "sValue":"234" }, { "p":2, "sValue":"345" }, { "p":3, "sValue":"567" }, { "p":4, "sValue":"789" } ] }, { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-998", "suspectFlag":"false", "measResults":[ { "p":1, "sValue":"890" }, { "p":2, "sValue":"901" }, { "p":3, "sValue":"123" }, { "p":4, "sValue":"234" } ] }, { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-999", "suspectFlag":"true", "measResults":[ { "p":1, "sValue":"456" }, { "p":2, "sValue":"567" }, { "p":3, "sValue":"678" }, { "p":4, "sValue":"789" } ] } ] }, { "measInfoId":{ "sMeasInfoId":"ENodeBFunction" }, "measTypes":{ "sMeasTypesList":[ "attTCHSeizures1", "succTCHSeizures2", "attImmediateAssignProcs3", "succImmediateAssignProcs4" ] }, "measValuesList":[ { "measObjInstId":"ManagedElement=RNC-Gbg-1,ENodeBFunction=1", "suspectFlag":"false", "measResults":[ { "p":1, "sValue":"4" }, { "p":2, "sValue":"86,87,2,6,77,96,75,33,24" }, { "p":3, "sValue":"40" }, { "p":4, "sValue":"90" } ] } ] }, { "measInfoId":{ "sMeasInfoId":"" }, "measTypes":{ "sMeasTypesList":[ "attTCHSeizures5", "succTCHSeizures6", "attImmediateAssignProcs7", "succImmediateAssignProcs8" ] }, "measValuesList":[ { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-997", "suspectFlag":"false", "measResults":[ { "p":1, "sValue":"238" }, { "p":2, "sValue":"344" }, { "p":3, "sValue":"563" }, { "p":4, "sValue":"787" } ] }, { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-998", "suspectFlag":"false", "measResults":[ { "p":1, "sValue":"898" }, { "p":2, "sValue":"905" }, { "p":3, "sValue":"127" }, { "p":4, "sValue":"238" } ] }, { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-999", "suspectFlag":"true", "measResults":[ { "p":1, "sValue":"454" }, { "p":2, "sValue":"569" }, { "p":3, "sValue":"672" }, { "p":4, "sValue":"785" } ] } ] } ] } } } }

Pay attention to the "measTypes", we can see all four types now because we didn't configure any filters yet:

Configure filters

edit file "pm-mapper/tools/development/resources/config.json"

update the filters like below:

pm filters
"pm-mapper-filter": { "filters":[{ "pmDefVsn": "1.0", "nfType": "gnb", "vendor": "Nokia", "measTypes": ["succImmediateAssignProcs"] } ] }

This filter will only receive pm counters with type "succImmediateAssignProcs"

Make the filter effective:

filters
curl 'http://localhost:8500/v1/kv/pmmapper?dc=dc1' -X PUT -H 'Accept: application/^Con' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data @config.json

Wait for 60 seconds. pm-mapper reads the configuration from consul regularly every 60 seconds.

Then do the file publish again, and check logs:

subscribe
./send-meas-collec.sh A20181002.0000-1000-0015-1000_5G.xml.gz docker logs mr-simulator

Now we should see a different message like below:

After formatting:

pm-counter
{ "event":{ "commonEventHeader":{ "domain":"perf3gpp", "eventId":"8ecb373a-0fc2-4a80-9eda-2a128f3ac727", "sequence":0, "eventName":"perf3gpp_gnb-Nokia_pmMeasResult", "sourceName":"oteNB5309", "reportingEntityName":"", "priority":"Normal", "startEpochMicrosec":951912000000, "lastEpochMicrosec":951912900000, "version":"4.0", "vesEventListenerVersion":"7.1", "timeZoneOffset":"UTC+05.00" }, "perf3gppFields":{ "perf3gppFieldsVersion":"1.0", "measDataCollection":{ "granularityPeriod":951912870000, "measuredEntityUserName":"RNC Telecomville", "measuredEntityDn":"SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1", "measuredEntitySoftwareVersion":"", "measInfoList":[ { "measInfoId":{ "sMeasInfoId":"" }, "measTypes":{ "sMeasTypesList":[ "succImmediateAssignProcs" ] }, "measValuesList":[ { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-997", "suspectFlag":"false", "measResults":[ { "p":4, "sValue":"789" } ] }, { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-998", "suspectFlag":"false", "measResults":[ { "p":4, "sValue":"234" } ] }, { "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-999", "suspectFlag":"true", "measResults":[ { "p":4, "sValue":"789" } ] } ] } ] } } } }



Pay attention to the measTypes, we can only see the info with "succImmediateAssignProcs".

Clean env

clean env

clean env
make clean-env