PREREQUISITES: Clone the OAM simulator from https://gerrit.o-ran-sc.org/r/admin/repos/oam. RUN THE SIMULATOR: a. Change directory to folder /oam/solution/dev/client-scripts-ves-v7.
Edit the "config" file and update value of properties as mentioned below. urlVes=http://<IP address of the host>:9999/eventListener/v7/events
basicAuthVes=user:password
b. run ./_example.sh. It will generate few events each of pnf, fault, threshold and measurement domains.
c. To generate events of Heartbeat domain, edit config.yaml file and update configuration as mentioned below.
vesEndpoint:
url: http://<IP address of the host>:9999/eventListener/v7/events
username: user
password: password
d. Execute sendVesHeartbeat.py to generate heartbeat events. Example: python3 sendVesHeartbeat.py
42 Comments
Brand Lu
One question, after device send the PNF registeration to ves collector, does SMO will trigger the O1 connection with device(netconf server) automaticly?
Vishal Varvate
Ideally ,it should be handled by O1 itself since O1 have dmaap-listener running there
Mahesh Jethanandani
We will be adding this capability in the G-release. To be able to test this, we will need the PNF to send the event. How do we simulate that?
Vishal Varvate
I believe in ONAP PNF PnP use case is already implemented and ONAP uses SDNC and Dmaap for it. So in the same way it can be achievable.
Brand Lu
How to distinguish the different node in the ves event?
Mahesh Jethanandani
I am not sure I understand the question. What do you mean by different node in the VES event? Do you mean which Network Function (NF) in the RAN core send the event?
p.s. I do not know why this message posted in March is showing up now in my mailbox.
Syama Nair
Hi, is there any simulated node capable of generating Performance data to be transferred over O1? Tried NF Simulator — onap master documentation - but it seems there are some build issues.
Mahesh Jethanandani
Isn't performance data supposed to transferred over the O1/VES interface?
Syama Nair
Yes. Is there any simulated node which can act as the MnS Provider capable of producing PM files, to be transferred over O1/VES?
Mahesh Jethanandani
You might want to look at the SIM project and talk to Alexandru Stancuabout using a simulator to run PM events.
Syama Nair
Thank you for the suggestion.
Syama Nair
While running _example.sh we are getting curl: (52) Empty reply from server - is this the expected response?
Mahesh Jethanandani
Assuming this is for the O1/VES interface. Adding santanu deto the thread.
santanu de
Syama Nair , have you set correct information of below keys in config file?
urlVes=https://localhost:9999/eventListener/v7/events
basicAuthVes=user:password
Syama Nair
Hi, yes that is set correctly. The ves-collector is running on port 9999 as well.
santanu de
Could you share which collector you are running? If you have expected payload handy, you can compare the expected one with the actual one.
Syama Nair
Hi santanu de , I am running the ves-collector available here "https://gerrit.o-ran-sc.org/r/smo/ves". Could you also please let me know what the expected response is from the collector, after running _example.sh?
santanu de
You suppose to get 202 as response. Here is sample response .....
################################################################################
# send 15min performance values
eventType: O_RAN_COMPONENT
pnfId:
controllerName: ORAN-DEV
intervalStartTime: Fri, 25 Nov 2022 09:30:00 +0000
model:
eventId: _1669369500_PM15min
collectionEndTime: 1669369500000000
granularity: PM15min
intervalEndTime: Fri, 25 Nov 2022 09:45:00 +0000
vendor:
domain: measurement
eventTime: 2022-11-25T09:48:05.305108Z
collectionStartTime: 1669368600000000
type: 1OSF
timestamp: 1669369685305108
interface:
HTTP/1.1 202 Accepted
Date: Fri, 25 Nov 2022 09:48:05 GMT
Transfer-Encoding: chunked
Syama Nair
Thank you.
Syama Nair
I recloned the latest version of the OAM repo, but still getting curl: (52) Empty reply from server while running _eample.sh as well as other scripts.
santanu de
Syama Nair
Could you share how are you running OAM simulator? If you attach any screenshot it would be great.
Syama Nair
Hi, I am trying to execute the steps mentioned in the beginning of this page - change config files and then execute _example.sh as well as send15minpm.sh. I am using WSL.
santanu de
There are 2 possibilities for getting "curl: (52) Empty reply from server"
Syama Nair
Hi, santanu de
1.The url https://[IP or hostname]:9999/eventListener/v7/events is not accessible (running locally).
2. urlVes is "http" in the config file.
santanu de
It indicates that the collector is not running on https. Check this page https://docs.o-ran-sc.org/projects/o-ran-sc-smo-ves/en/latest/installation-guide.html regarding how to create self signed certificates.
Once done, collector should be accessible via https:// , then rectify the "urlVes" in config file of the OAM simulator.
Syama Nair
Sure. Thank you so much for your help.
Syama Nair
santanu desend15minpm.sh receiving 202 success response. Thank you so much for your help.
Marrrchia
Hi, when I was running the _example.sh, some events get 500 Internal server errors and some events get 401 unauthorized. I have set the URL and basicAuthVes in the config file. And also checked the ves collector is also listening with port 9999.
Also, if I used curl in the terminal directly, I got a response with 400 bad request. Is there any suggestion that I need to check or fix to post it successfully?
Thanks
santanu de
Could you share which collector you are running on port 9999 ? Error code 400 indicates that the payload send by VES Simulator is different that what collector is expected.
Marrrchia
Hi santanu de,
Thanks for your reply. I just follow this website to install the collector. Here is the link that I downloaded the collector.
Here is the URL I used and the JSON I sent. If you need more information, please let me know. Thank you so much.
URL: https://192.168.1.224:9999/eventListener/v7/events
JSON:
santanu de
Are you using older version of OAM simulator? I compare the payload of Fault event with what I am running. I notice lot's of difference in payload. For example, your version is 3.0 where as mine is 4.1.
{
"event": {
"commonEventHeader": {
"domain": "fault",
"eventId": "ORAN-DEV_northbound-interface_connectionLossNe",
"eventName": "fault_ONAP_SDNR_Controller_Alarms_connectionLossNe",
"eventType": "ONAP_SDNR_Controller_Alarms",
"lastEpochMicrosec": 1669371523576057,
"nfNamingCode": "SDNR",
"nfVendorName": "ONAP",
"priority": "High",
"reportingEntityId": "",
"reportingEntityName": "ORAN-DEV",
"sequence": 0,
"sourceId": "",
"sourceName": "ORAN-DEV",
"startEpochMicrosec": 1669371523576057,
"timeZoneOffset": "+00:00",
"version": "4.1",
"vesEventListenerVersion": "7.2.1"
},
"faultFields": {
"alarmAdditionalInformation": {
"equipType": "SDNR",
"eventTime": "2022-11-25T10:18:43.576057Z",
"model": "ONAP Controller for Radio",
"vendor": "ONAP"
},
"alarmCondition": "connectionLossNe",
"alarmInterfaceA": "northbound-interface",
"eventSeverity": "MAJOR",
"eventSourceType": "ONAP_SDNR_Controller",
"faultFieldsVersion": "4.0",
"specificProblem": "connectionLossNe",
"vfStatus": "Active"
}
}
}
Marrrchia
Hi, santanu de,
I used your JSON format and try it again and I got a different response after I tried. Usually, I just used curl to send the VES collector a request. Here is the command I used.
$ curl -i -u admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U -X POST -d @event.json --header "Content-Type: application/json" https://192.168.1.224:9999/eventListener/v5 -k
The event.json is a JSON file as same as yours. And after I send a request. I got a response which is 401 Unauthorized. So, I am wondering if my command is wrong or not. Or I should change the user and password in the -u parameters?
Thanks & Regards
Marrrchia
Hi, santanu de
I found that my user and password are wrong. After I changed it, it worked and I received 202 Accepted. But when I executed the ./_example.sh, some responses I got 202 but I also got 500 internal server errors. The figure is a result I executed the ./_example.sh. Is that a normal situation or do I need to config some files?
Another question is once I send a request and got an accepted response, why it doesn't show the message the fault on the ONAP platform? Should I connect to another service so that I can see the message I send on the ONAP platform?
Thanks & Regards
santanu de
Hi Marrrchia ,
Glad to know that you able to send event to the O1/Ves interface. When you execute _example.sh, it sends different kind of events to the collector. You are getting 505 error for standardDefined event where as rest of events are perfect. If you are not worried about standardDefined event then you can ignore this error.
I don't have any idea about ONAP project. I won't able to answer your question.
Marrrchia
Thanks for your help. Regards
Rani Borusu
Hi santanu de
Could you please help how to save data in historicalperformance15min-v6 or historicalperformance24h-v6 indexes. I am sending measurements(./oam/solution/dev/client-scripts-ves-v7/send15minPm.sh) to ves-collector and ves collector successfully sent event to onap-dmaap but I am not seeing any data in SDNR db for performance measurement events.
could you please help me how to save data in sndr for performance measurement data.
Thanks,
Rani
santanu de
Hi Rani Borusu ,
I am not sure about save data in historicalperformance15min-v6 or historicalperformance24h-v6 indexes. However collector saves event data in InfluxDB. You can access those data via API of InfluxDB, for example: http://smo-influxdb:8086/query?u=root&p=root&db=eventsdb&q=SELECT%20moving_average(%22cpuUsageUser%22,%205)%20FROM%20%22measurementcpuusage%22%20WHERE%20(%22system%22%20=~%20/^(unknown|ORAN-DEV)$/)%20AND%20time%20%3E=%20now()%20-%205m%20GROUP%20BY%20%22system%22,%20%22cpuIdentifier%22
Syama Nair
Hi santanu de Alexandru Stancu ,
I was trying to send ves-pm-file-ready notifications from simulated RU/DU using ODLUX GUI to the ves-collector running at localhost:9999. But, the server is constantly sending an error status back. Could you please kindly help me with this? Thanks in advance.
santanu de
Syama Nair
Could you share the payload you are sending to the ves-collector?
Syama Nair
Sure. We are using a sample json file from the OAM project. It is kept at in a ftp server setup at local machine , which is given as the file location in the file ready notification.
{
"event": {
"commonEventHeader": {
"domain": "measurement",
"eventId": "_1671443100_PM15min",
"eventName": "measurement_O_RAN_COMPONENT_PM15min",
"eventType": "O_RAN_COMPONENT_PM15min",
"sequence": 0,
"priority": "Low",
"reportingEntityId": "",
"reportingEntityName": "WSL-349.Aspire.lan",
"sourceId": "",
"sourceName": "",
"startEpochMicrosec": 1671442200000000,
"lastEpochMicrosec": 1671443100000000,
"internalHeaderFields": {
"intervalStartTime": "Mon, 19 Dec 2022 09:30:00 +0000",
"intervalEndTime": "Mon, 19 Dec 2022 09:45:00 +0000"
},
"version": "4.1",
"vesEventListenerVersion": "7.2.1"
},
"measurementFields": {
"additionalFields": {},
"additionalMeasurements": [{
"name": "-1",
"hashMap": {
"es": "0",
"ses": "1",
"cses": "0",
"unavailability": "0"
}
},
{
"name": "-2",
"hashMap": {
"es": "0",
"ses": "1",
"cses": "0",
"unavailability": "0"
}
}
],
"networkSliceArray": [
{
"DRB.UEThpDl.SNSSAI": 5000,
"DRB.UEThpUl.SNSSAI": 4500,
"networkSliceIdentifier": "255FFFFFF"
},
{
"DRB.UEThpDl.SNSSAI": 4500,
"DRB.UEThpUl.SNSSAI": 5000,
"networkSliceIdentifier": "001FFFFFA"
}
],
"additionalObjects": [],
"codecUsageArray": [],
"concurrentSessions": 2,
"configuredEntities": 2,
"cpuUsageArray": [],
"diskUsageArray": [],
"featureUsageArray": {
"https://www.itu.int/rec/T-REC-G.841": "true"
},
"filesystemUsageArray": [],
"hugePagesArray": [],
"ipmi": {},
"latencyDistribution": [],
"loadArray": [],
"machineCheckExceptionArray": [],
"meanRequestLatency": 1000,
"measurementInterval": 234,
"measurementFieldsVersion": "4.0",
"memoryUsageArray": [],
"numberOfMediaPortsInUse": 234,
"requestRate": 23,
"nfcScalingMetric": 3,
"nicPerformanceArray": [],
"processStatsArray": []
}
}
}
santanu de
Syama Nair ,
Payload is looking good. What's the error you are getting from ves-collector?
I am assuming that ves-collector is running on HTTPS ( https://HOST:9999/eventListener/v7/events) and you put correct url in simulator.
Syama Nair
The ves event has not reached the ves-collector (running on HTTPS and succesfully receiving events from OAM repo and displaying on grafana). The error is originating from the simulated node itself. The simulator allows configuration of the ipaddress and port of ves endpoint, but I could not find any options for configuring the ves-url.