.. This work is licensed under a Creative Commons Attribution 4.0
   International License. http://creativecommons.org/licenses/by/4.0
   
.. _docs_realtime_pm:

5G - Real Time PM and High Stream Data Collection
-------------------------------------------------

Source files
~~~~~~~~~~~~

- Optional in case you want to use the xNF simulator: https://git.onap.org/integration/tree/test/mocks/hvvessimulator/hvves_sim.yaml

Description
~~~~~~~~~~~

Component and API descriptions can be found under:

- `High Volume VNF Event Streaming (HV-VES) Collector <https://onap.readthedocs.io/en/latest/submodules/dcaegen2.git/docs/sections/services/ves-hv/index.html>`_
- `HV-VES (High Volume VES) <https://onap.readthedocs.io/en/latest/submodules/dcaegen2.git/docs/sections/apis/ves-hv/index.html#hv-ves-high-volume-ves>`_

How to verif
~~~~~~~~~~~~~

Follow instructions in the links below to send data to HV-VES collector and verify messages published on Kafka topic:

- `HV-VES xNF simulator integration to ONAP <https://wiki.onap.org/display/DW/HV-VES+simulator#HV-VESsimulator-HV-VESxNFsimulatorintegrationtoONAP>`_
- `HV-VES xNF message simulation from shell <https://wiki.onap.org/display/DW/HV-VES+simulator#HV-VESsimulator-HV-VESxNFmessagesimulationfromshell>`_

Useful links
~~~~~~~~~~~~

- `5G - Real Time PM and High Volume Stream Data Collection <https://wiki.onap.org/display/DW/5G+-+Real+Time+PM+and+High+Volume+Stream+Data+Collection>`_
- `5G - Real Time PM and High Volume Stream Data Collection - Integration Test Cases <https://wiki.onap.org/display/DW/5G+-+Real+Time+PM+and+High+Volume+Stream+Data+Collection+-+Integration+Test+Cases>`_
