This is a brief instruction on how to deploy pm-mapper in docker env and how to configure filters in pm-mapper
copy pm-mapper repo from onap gerrit
git clone "https://gerrit.onap.org/r/dcaegen2/services/pm-mapper" |
go to sub-directory:
cd tools/development |
install dmaap-dr, cbs, consul, files-publisher and dmaap-mr:
make setup-local |
install pm-mapper:
make run-pm-mapper |
After successful installation, we should see the docker containers:
config dmaap-dr to create a feed for pm-mapper to subscribe:
make config-dmaap |
config dmaap to create a feed for pm-mapper to subscribe:
make subscribe-pm-mapper |
files-publisher is a micro-servive designed for test/demo purpose, it has some prepared files to publish to dmaap-dr:
make list-files |
In real onap instance, files-publisher is replaced by Data-File-Collector.
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:
./send-meas-collec.sh A20181002.0000-1000-0015-1000_5G.xml.gz |
docker logs mr-simulator |
We should be able to see a message like below:
After formatting:
{ "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:
edit file "pm-mapper/tools/development/resources/config.json"
update the filters like below:
"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:
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:
./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:
{ "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
make clean-env |