summaryrefslogtreecommitdiffstats
path: root/docs/sections/services/tca-cdap/functionality.rst
blob: 35515f97d7963f39cd76b6e6fc0e2e4e01eb7788 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Functionality
=============

TCA is CDAP application  driven by the VES collector events published into Message Router.  This Message Router topic is the source for the CDAP application which will read each incoming message. If a message meets the Common Event Format (CEF, v28.3) as specified by the VES 5.3 standard, it will be parsed and if it contains a message which matches the policy configuration for a given metric (denoted primarily by the "eventName" and the "fieldPath"), the value of the metric will be compared to the "thresholdValue".  If that comparison indicates that a Control Loop Event Message should be generated, the application will output the alarm to the Message Router  topic in a format that matches the interface spec defined for Control-Loop by ONAP-Policy 

Assumptions:

TCA output will be similar to R0 implementation, where CL event will be triggered each time threshold rules are met.
In the context of the vCPE use case, the CLEAR event (aka ABATED event) is driven by a measured metric (i.e. packet loss equal to 0) rather than by the lapse of a threshold crossing event over some minimum number of measured intervals.  Thus, this requirement can be accommodated by use of the low threshold with a policy of "direction =  0".  Hence, for this release, the cdap-tca-hi-lo implementation will keep only the minimal state needed to correlate an ABATED event with the corresponding ONSET event.  This correlation will be indicated by the requestID in the Control Loop Event Message.

CDAP Programming Paradigm

Since Amsterdam/ONAP R1, the code has been refactored to allow for delivery as either a flowlet or a batch pipeline.  Current implementation will stay with the flowlet version.


TCA is used multiple ONAP usecases since ONAP Amsterdam release. Single TCA instance can be deployed to support all 3 usecases.
- vFirewall
- vDNS
- vCPE


Following is default configuration set for TCA during deployment.

.. code-block:: json

    {
        "domain": "measurementsForVfScaling",
        "metricsPerEventName": [{
            "eventName": "measurement_vFirewall-Att-Linkdownerr",
            "controlLoopSchemaType": "VM",
            "policyScope": "DCAE",
            "policyName": "DCAE.Config_tca-hi-lo",
            "policyVersion": "v0.0.1",
            "thresholds": [{
                "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
                "version": "1.0.2",
                "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
                "thresholdValue": 300,
                "direction": "LESS_OR_EQUAL",
                "severity": "MAJOR",
                "closedLoopEventStatus": "ONSET"
            }, {
                "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
                "version": "1.0.2",
                "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
                "thresholdValue": 700,
                "direction": "GREATER_OR_EQUAL",
                "severity": "CRITICAL",
                "closedLoopEventStatus": "ONSET"
            }]
        }, {
            "eventName": "vLoadBalancer",
            "controlLoopSchemaType": "VM",
            "policyScope": "DCAE",
            "policyName": "DCAE.Config_tca-hi-lo",
            "policyVersion": "v0.0.1",
            "thresholds": [{
                "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
                "version": "1.0.2",
                "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
                "thresholdValue": 300,
                "direction": "GREATER_OR_EQUAL",
                "severity": "CRITICAL",
                "closedLoopEventStatus": "ONSET"
            }]
        }, {
            "eventName": "Measurement_vGMUX",
            "controlLoopSchemaType": "VNF",
            "policyScope": "DCAE",
            "policyName": "DCAE.Config_tca-hi-lo",
            "policyVersion": "v0.0.1",
            "thresholds": [{
                "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
                "version": "1.0.2",
                "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value",
                "thresholdValue": 0,
                "direction": "EQUAL",
                "severity": "MAJOR",
                "closedLoopEventStatus": "ABATED"
            }, {
                "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
                "version": "1.0.2",
                "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value",
                "thresholdValue": 0,
                "direction": "GREATER",
                "severity": "CRITICAL",
                "closedLoopEventStatus": "ONSET"
            }]
        }]
    }

For more details about the exact flows - please refer to usecases wiki