summaryrefslogtreecommitdiffstats
path: root/docs/sections/services/tca-cdap
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sections/services/tca-cdap')
-rw-r--r--docs/sections/services/tca-cdap/development_info.rst71
-rw-r--r--docs/sections/services/tca-cdap/functionality.rst92
-rw-r--r--docs/sections/services/tca-cdap/index.rst27
-rw-r--r--docs/sections/services/tca-cdap/installation.rst51
4 files changed, 241 insertions, 0 deletions
diff --git a/docs/sections/services/tca-cdap/development_info.rst b/docs/sections/services/tca-cdap/development_info.rst
new file mode 100644
index 00000000..afb240ef
--- /dev/null
+++ b/docs/sections/services/tca-cdap/development_info.rst
@@ -0,0 +1,71 @@
+Compiling TCA
+=============
+
+TCA code is maintained under https://gerrit.onap.org/r/#/admin/projects/dcaegen2/analytics/tca
+To build just the TCA component, run the following maven command
+`mvn clean install`
+
+
+Maven GroupId:
+==============
+
+org.onap.dcaegen2.analytics.tca
+
+Maven Parent ArtifactId:
+----------------
+dcae-analytics
+
+Maven Children Artifacts:
+------------------------
+1. dcae-analytics-test: Common test code for all DCAE Analytics Modules
+2. dcae-analytics-model: Contains models (e.g. Common Event Format) which are common to DCAE Analytics
+3. dcae-analytics-common: Contains Components common to all DCAE Analytics Modules - contains high level abstractions
+4. dcae-analytics-dmaap: DMaaP(Data Movement as a Platform) MR (Message Router)API using AAF(Authentication and Authorization Framework)
+5. dcae-analytics-tca: DCAE Analytics TCA (THRESHOLD CROSSING ALERT) Core
+6. dcae-analytics-cdap-common: Common code for all cdap modules
+7. dcae-analytics-cdap-tca: CDAP Flowlet implementation for TCA
+8. dcae-analytics-cdap-plugins: CDAP Plugins
+9. dcae-analytics-cdap-it: Cucumber and CDAP Pipeline integration tests
+
+
+API Endpoints
+=============
+# create namespace
+curl -X PUT http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo
+
+# load artifact
+curl -X POST --data-binary @/c/usr/tmp/dcae-analytics-cdap-tca-2.0.0-SNAPSHOT.jar http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/artifacts/dcae-analytics-cdap-tca
+
+# create app
+curl -X PUT -d @/c/usr/docs/ONAP/tca_app_config.json http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca
+
+# load preferences
+curl -X PUT -d @/c/usr/docs/ONAP/tca_app_preferences.json http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/preferences
+
+# start program
+curl -X POST http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRPublisherWorker/start
+curl -X POST http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRSubscriberWorker/start
+curl -X POST http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/flows/TCAVESCollectorFlow/start
+
+# check status
+curl http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRPublisherWorker/status
+curl http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRSubscriberWorker/status
+curl http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/flows/TCAVESCollectorFlow/status
+
+# Delete namespace (and all its content)
+# curl -X DELETE http://<k8s-clusterIP>:11015/v3/unrecoverable/namespaces/cdap_tca_hi_lo
+
+# Delete artifact
+# curl -X DELETE http://<k8s-clusterIP>:11015/v3/namespaces/cdap_tca_hi_lo/artifacts/dcae-analytics-cdap-tca/versions/2.0.0.SNAPSHOT
+
+
+TCA CDAP Container
+=================
+
+If new jar is generated, corresponding version should be updated into https://git.onap.org/dcaegen2/deployments/tree/tca-cdap-container.
+
+Following files should be revised
+- tca_app_config.json
+- tca_app_preferences.json
+- restart.sh
+
diff --git a/docs/sections/services/tca-cdap/functionality.rst b/docs/sections/services/tca-cdap/functionality.rst
new file mode 100644
index 00000000..35515f97
--- /dev/null
+++ b/docs/sections/services/tca-cdap/functionality.rst
@@ -0,0 +1,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
diff --git a/docs/sections/services/tca-cdap/index.rst b/docs/sections/services/tca-cdap/index.rst
new file mode 100644
index 00000000..9d184f5b
--- /dev/null
+++ b/docs/sections/services/tca-cdap/index.rst
@@ -0,0 +1,27 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+=================================
+Threshold Crossing Analytics (TCA)
+=================================
+
+
+.. contents::
+ :depth: 3
+..
+
+Overview
+========
+
+The TCA (cdap-tca-hi-lo) app was first delivered as part of ONAP R0. In that release, it was intended to be an application that established a software architecture for building CDAP applications that demonstrate sufficient unit test coverage and reusable libraries for ingesting DMaaP MR feeds formatted according to the VES standard. Functionally, it performs a comparison of an incoming performance metric(s) against both a high and low threshold defined and generates CL events when threshold are exceeded.
+
+In Amsterdam release, TCA was deployed into 7 node CDAP cluster. However since Beijin release as ONAP required application to be containerized and deployable into K8s, a wrapper TCA CDAP container was built using CDAP SDK base image on which TCA application is deployed.
+
+
+
+.. toctree::
+ :maxdepth: 1
+
+ ./installation
+ ./functionality
+ ./development_info
diff --git a/docs/sections/services/tca-cdap/installation.rst b/docs/sections/services/tca-cdap/installation.rst
new file mode 100644
index 00000000..84b4d1e6
--- /dev/null
+++ b/docs/sections/services/tca-cdap/installation.rst
@@ -0,0 +1,51 @@
+Installation
+============
+
+TCA will be deployed by DCAE deployment among the bootstrapped services. This is more to facilitate automated deployment of ONAP regression test cases required services.
+
+As TCA jar is packaged into docker container, the container can be deployer standalone or via Cloudify Blueprint.
+
+
+
+Following are steps if manual deployment/undeployment required.
+
+Steps to deploy are shown below
+
+- Transfer blueprint component file in DCAE bootstrap POD under /blueprints directory. TCA Blueprint can be found under /blueprint directory. Same is also available on gerrit https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-tca.yaml-template
+
+- Modify blueprint inputs file in DCAE bootstrap POD under /inputs directory. Copy this file to / and update as necessary.
+
+
+- Enter the Bootstrap POD
+- Validate blueprint
+ .. code-block:: bash
+
+ cfy blueprints validate /blueprints/k8s-tca.yaml
+- Upload validated blueprint
+ .. code-block:: bash
+
+
+ cfy blueprints upload -b tca /blueprints/k8s-tca.yaml
+- Create deployment
+ .. code-block:: bash
+
+
+ cfy deployments create -b tca -i /k8s-tca-input.yaml tca
+- Deploy blueprint
+ .. code-block:: bash
+
+
+ cfy executions start -d tca install
+
+To undeploy TCA, steps are shown below
+
+- Uninstall running TCA and delete deployment
+ .. code-block:: bash
+
+
+ cfy uninstall tca
+- Delete blueprint
+ .. code-block:: bash
+
+
+ cfy blueprints delete tca \ No newline at end of file