summaryrefslogtreecommitdiffstats
path: root/docs/sections/services/ves-http/architecture.rst
blob: 2e7a0039cf25a06e9f4f87d8697abf7cff792115 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. _ves-architecture:

VES Architecture
================

.. image:: ./ves-deployarch.png

VES Processing Flow
-------------------

1. Collector supports different URI based on single or batch event to be received.
2. Post authentication – events are validated against schema. At this point – appropriate return code is sent to client when validation fails.
3. Event Processor checks against transformation rules (if enabled) and handles VES output standardization (e.g. VES 7.x input to VES5.4 output).
4. Optional (activated by flag *collector.externalSchema.checkflag*) post authentication of stndDefined fields – specific fields are validated against schema. At this point – appropriate return code is sent to client when validation fails.
5. If no problems were detected during previous steps, success HTTP code is being returned.
6. Based on domain (or stndDefinedNamespace), events are asynchronously distributed to configurable topics.
    1. If topic mapping does not exist, event distribution is skipped.
    2. Post to outbound topic(s).
    3. If DMaaP publish is unsuccessful, messages will be queued per topic within VESCollector.

Note: As the collector is deployed as micro-service, all configuration parameters (including DMaaP topics) are passed to the collector dynamically. VEScollector refreshes the configuration from CBS every 5 minutes

.. image:: ./ves-processing-flow.png
..  This image has been created using online editor https://app.diagrams.net/ and can be easily edited there.
    Editable file version of this image is located in docs/sections/services/ves-http/ves-processing-flow.drawio
    and might be imported into editor.

VES Schema Validation
---------------------

VES Collector is configured to support below VES Version; the corresponding API uses VES schema definition for event validation.

===========     ================    ==================================
VES Version     API version         Schema Definition
===========     ================    ==================================
VES 1.2         eventListener/v1    `CommonEventFormat_Vendors_v25.json <https://git.onap.org/dcaegen2/collectors/ves/tree/etc/CommonEventFormat_Vendors_v25.json>`_
VES 4.1         eventListener/v4    `CommonEventFormat_27.2.json <https://git.onap.org/dcaegen2/collectors/ves/tree/etc/CommonEventFormat_27.2.json>`_
VES 5.4         eventListener/v5    `CommonEventFormat_28.4.1.json <https://git.onap.org/dcaegen2/collectors/ves/tree/etc/CommonEventFormat_28.4.1.json>`_
VES 7.2.1       eventListener/v7    `CommonEventFormat_30.2.1_ONAP.json <https://git.onap.org/dcaegen2/collectors/ves/tree/etc/CommonEventFormat_30.2.1_ONAP.json>`_
===========     ================    ==================================

Features Supported
------------------

- VES collector deployed as docker containers
- Acknowledgement to sender with appropriate response code  (both successful and failure)
- Authentication of the events posted to collector (support 2 types of authentication setting)
- Support single or batch JSON events input
- General schema validation (against standard VES definition)
- StndDefined fields schema validation
- Mapping of external schemas to local schema files during stndDefined validation
- Multiple schema support and backward compatibility 
- Configurable event transformation
- Configurable suppression 
- Publish events into Dmaap Topic (with/without AAF)

The collector can receive events via standard HTTP port (8080) or secure port (8443).  Depending on the install/configuration – either one or both can be supported (ports are also modifiable).

Dynamic configuration fed into Collector via DCAEPlatform
---------------------------------------------------------

- Outbound Dmaap/UEB topic 
- Schema version to be validated against
- Authentication account for VNF

POST requests result in standard HTTP status codes:

- 200-299  Success
- 400-499  Client request has a problem (data error)
- 500-599  Collector service has a problem