TCA: Support for VES/A&AI enrichment
[dcaegen2/analytics/tca.git] / dpo / tcaSpec.json
index 9ffd687..c906395 100644 (file)
-{
-  "self": {
-    "name": "cdap.tca.hi.lo.app",
-    "version": "1.0.4",
-    "description": "cdap tca hi lo application",
-    "component_type": "cdap"
-  },
-  "streams": {
-    "subscribes": [
-      {
-        "config_key": "tca_handle_in",
-        "format": "VES_specification",
-        "version": "5.28.4",
-        "type": "message router"
-      }
-    ],
-    "publishes": [
-      {
-        "config_key": "tca_handle_out",
-        "format": "TCA Alert Definition",
-        "version": "1.0.0",
-        "type": "message router"
-      }
-    ]
-  },
-  "services": {
-    "calls": [],
-    "provides": []
-  },
-  "auxilary": {
-    "streamname": "TCASubscriberOutputStream",
-    "artifact_name": "dcae-analytics-cdap-tca",
-    "artifact_version": "2.0.0",
-    "namespace": "cdap_tca_hi_lo",
-    "programs": [
-      {
-        "program_type": "flows",
-        "program_id": "TCAVESCollectorFlow"
-      },
-      {
-        "program_type": "workers",
-        "program_id": "TCADMaaPMRSubscriberWorker"
-      },
-      {
-        "program_type": "workers",
-        "program_id": "TCADMaaPMRPublisherWorker"
-      }
-    ]
-  },
-  "artifacts": [
-    {
-      "uri": "${nexusproxy}/repository/dcae-dev-raw/jar_files/dcae-analytics-tca-2.0.0.jar",
-      "type": "jar"
-    }
-  ],
-  "parameters": {
-    "app_config": [
-      {
-        "name": "appName",
-        "description": "CDAP Application Name for TCA App",
-        "value": "dcae-tca"
-      },
-      {
-        "name": "appDescription",
-        "description": "CDAP Application Description for TCA App",
-        "value": "DCAE Analytics Threshold Crossing Alert Application"
+{\r
+  "self": {\r
+    "name": "cdap.tca.hi.lo.app",\r
+    "version": "1.0.5",\r
+    "description": "cdap tca hi lo application",\r
+    "component_type": "cdap"\r
+  },\r
+  "streams": {\r
+    "subscribes": [\r
+      {\r
+        "config_key": "tca_handle_in",\r
+        "format": "VES_specification",\r
+        "version": "5.28.4",\r
+        "type": "message router"\r
+      }\r
+    ],\r
+    "publishes": [\r
+      {\r
+        "config_key": "tca_handle_out",\r
+        "format": "TCA Alert Definition",\r
+        "version": "1.0.0",\r
+        "type": "message router"\r
+      }\r
+    ]\r
+  },\r
+  "services": {\r
+    "calls": [],\r
+    "provides": []\r
+  },\r
+  "auxilary": {\r
+    "streamname": "TCASubscriberOutputStream",\r
+    "artifact_name": "dcae-analytics-cdap-tca",\r
+    "artifact_version": "2.0.0",\r
+    "namespace": "cdap_tca_hi_lo",\r
+    "programs": [\r
+      {\r
+        "program_type": "flows",\r
+        "program_id": "TCAVESCollectorFlow"\r
+      },\r
+      {\r
+        "program_type": "workers",\r
+        "program_id": "TCADMaaPMRSubscriberWorker"\r
+      },\r
+      {\r
+        "program_type": "workers",\r
+        "program_id": "TCADMaaPMRPublisherWorker"\r
+      }\r
+    ]\r
+  },\r
+  "artifacts": [\r
+    {\r
+      "uri": "${nexusproxy}/repository/dcae-dev-raw/jar_files/dcae-analytics-tca-2.0.0.jar",\r
+      "type": "jar"\r
+    }\r
+  ],\r
+  "parameters": {\r
+    "app_config": [\r
+      {\r
+        "name": "appName",\r
+        "description": "CDAP Application Name for TCA App",\r
+        "value": "dcae-tca"\r
+      },\r
+      {\r
+        "name": "appDescription",\r
+        "description": "CDAP Application Description for TCA App",\r
+        "value": "DCAE Analytics Threshold Crossing Alert Application"\r
+      },\r
+      {\r
+        "name": "tcaSubscriberOutputStreamName",\r
+        "description": "Name of Stream where TCA DMaaP Subscriber pushes incoming messages to TCA App for processing",\r
+        "value": "TCASubscriberOutputStream"\r
+      },\r
+      {\r
+        "name": "thresholdCalculatorFlowletInstances",\r
+        "description": "Number of instances for Threshold Calculator",\r
+        "value": 2\r
+      },\r
+      {\r
+        "name": "tcaVESMessageStatusTableName",\r
+        "description": "TCA Message Status Table Name where status of each TCA message is stored",\r
+        "value": "TCAVESMessageStatusTable"\r
+      },\r
+      {\r
+        "name": "tcaVESMessageStatusTableTTLSeconds",\r
+        "description": "Time to Live for entries in Message Status Table",\r
+        "value": 86400\r
+      },\r
+      {\r
+        "name": "tcaVESAlertsTableName",\r
+        "description": "Table where TCA generated alerts are temporarily stored before published to DMaaP MR topic",\r
+        "value": "TCAVESAlertsTable"\r
+      },\r
+      {\r
+        "name": "tcaVESAlertsTableTTLSeconds",\r
+        "description": "Time to Live for entries in Alerts Table",\r
+        "value": 1728000\r
+      },\r
+      {\r
+        "name" : "tcaAlertsAbatementTableName",\r
+        "description" : "Table where information to determine sending of Abatement Alerts is stored",\r
+        "value" : "TCAAlertsAbatementTable"\r
+      },\r
+      {\r
+        "name" : "tcaAlertsAbatementTableTTLSeconds",\r
+        "description": "Time to Live for entries in  Alerts Abatement Table",\r
+        "value" : 1728000\r
+      }\r
+    ],\r
+    "app_preferences": [\r
+      {\r
+        "name": "subscriberContentType",\r
+        "description": "Subscriber Content Type",\r
+        "value": "application/json"\r
+      },\r
+      {\r
+        "name": "subscriberConsumerId",\r
+        "description": "Subscriber Consumer Id",\r
+        "value": "c12"\r
+      },\r
+      {\r
+        "name": "subscriberConsumerGroup",\r
+        "description": "Subscriber Group Id",\r
+        "value": "OpenDCAE-c12"\r
+      },\r
+      {\r
+        "name": "subscriberTimeoutMS",\r
+        "description": "Subscriber timeout in milliseconds",\r
+        "value": -1\r
+      },\r
+      {\r
+        "name": "subscriberMessageLimit",\r
+        "description": "Subscriber max message fetch limit",\r
+        "value": -1\r
+      },\r
+      {\r
+        "name": "subscriberPollingInterval",\r
+        "description": "Subscriber Polling Interval in milliseconds",\r
+        "value": 30000\r
+      },\r
+      {\r
+        "name": "publisherContentType",\r
+        "description": "Publisher Content Type",\r
+        "value": "application/json"\r
+      },\r
+      {\r
+        "name": "publisherMaxBatchSize",\r
+        "description": "Publisher max batch size",\r
+        "value": 1\r
+      },\r
+      {\r
+        "name": "publisherMaxRecoveryQueueSize",\r
+        "description": "Publisher Max Recovery Queue Size",\r
+        "value": 100000\r
+      },\r
+      {\r
+        "name": "publisherPollingInterval",\r
+        "description": "Publisher Polling Interval in milliseconds",\r
+        "value": 20000\r
+      },\r
+      {\r
+        "name": "enableAlertCEFFormat",\r
+        "description": "Enable output alert to be in CEF Format",\r
+        "value": "false"\r
       },
       {
-        "name": "tcaSubscriberOutputStreamName",
-        "description": "Name of Stream where TCA DMaaP Subscriber pushes incoming messages to TCA App for processing",
-        "value": "TCASubscriberOutputStream"
+        "name": "enableAAIEnrichment",
+        "description": "Enable A&AI Enrichment of generated TCA Alerts",
+        "value": "true"
       },
       {
-        "name": "thresholdCalculatorFlowletInstances",
-        "description": "Number of instances for Threshold Calculator",
-        "value": 2
+        "name": "aaiEnrichmentHost",
+        "description": "A&AI Enrichment API Host name",
+        "value": "123.123.123.123"
       },
       {
-        "name": "tcaVESMessageStatusTableName",
-        "description": "TCA Message Status Table Name where status of each TCA message is stored",
-        "value": "TCAVESMessageStatusTable"
+        "name": "aaiEnrichmentPortNumber",
+        "description": "A&AI Enrichment API Host port number",
+        "value": 8443
       },
       {
-        "name": "tcaVESMessageStatusTableTTLSeconds",
-        "description": "Time to Live for entries in Message Status Table",
-        "value": 86400
+        "name": "aaiEnrichmentProtocol",
+        "description": "A&AI Enrichment API protocol",
+        "value": "https"
       },
       {
-        "name": "tcaVESAlertsTableName",
-        "description": "Table where TCA generated alerts are temporarily stored before published to DMaaP MR topic",
-        "value": "TCAVESAlertsTable"
+        "name": "aaiEnrichmentUserName",
+        "description": "A&AI Enrichment API username",
+        "value": "DCAE"
       },
       {
-        "name": "tcaVESAlertsTableTTLSeconds",
-        "description": "Time to Live for entries in Alerts Table",
-        "value": 1728000
+        "name": "aaiEnrichmentUserPassword",
+        "description": "A&AI Enrichment API password",
+        "value": "DCAE"
       },
       {
-        "name" : "tcaAlertsAbatementTableName",
-        "description" : "Table where information to determine sending of Abatement Alerts is stored",
-        "value" : "TCAAlertsAbatementTable"
+        "name": "aaiEnrichmentIgnoreSSLCertificateErrors",
+        "description": "A&AI Ignore SSL Certification Errors",
+        "value": "true"
       },
       {
-        "name" : "tcaAlertsAbatementTableTTLSeconds",
-        "description": "Time to Live for entries in  Alerts Abatement Table",
-        "value" : 1728000
-      }
-    ],
-    "app_preferences": [
-      {
-        "name": "subscriberContentType",
-        "description": "Subscriber Content Type",
-        "value": "application/json"
+        "name": "aaiVNFEnrichmentAPIPath",
+        "description": "A&AI VNF Enrichment API Path",
+        "value": "/aai/v11/network/generic-vnfs/generic-vnf"
       },
       {
-        "name": "subscriberConsumerId",
-        "description": "Subscriber Consumer Id",
-        "value": "c12"
+        "name": "aaiVMEnrichmentAPIPath",
+        "description": "A&AI VM Enrichment API Path",
+        "value": "/aai/v11/search/nodes-query"
       },
       {
-        "name": "subscriberConsumerGroup",
-        "description": "Subscriber Group Id",
-        "value": "OpenDCAE-c12"
-      },
-      {
-        "name": "subscriberTimeoutMS",
-        "description": "Subscriber timeout in milliseconds",
-        "value": -1
-      },
-      {
-        "name": "subscriberMessageLimit",
-        "description": "Subscriber max message fetch limit",
-        "value": -1
-      },
-      {
-        "name": "subscriberPollingInterval",
-        "description": "Subscriber Polling Interval in milliseconds",
-        "value": 30000
-      },
-      {
-        "name": "publisherContentType",
-        "description": "Publisher Content Type",
-        "value": "application/json"
-      },
-      {
-        "name": "publisherMaxBatchSize",
-        "description": "Publisher max batch size",
-        "value": 1
-      },
-      {
-        "name": "publisherMaxRecoveryQueueSize",
-        "description": "Publisher Max Recovery Queue Size",
-        "value": 100000
-      },
-      {
-        "name": "publisherPollingInterval",
-        "description": "Publisher Polling Interval in milliseconds",
-        "value": 20000
-      },
-      {
-        "name": "enableAlertCEFFormat",
-        "description": "",
-        "value": "false"
-      },
-      {
-        "name": "tca_policy",
-        "description": "TCA Policy JSON",
-        "value": "{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"Mfvs_eNodeB_RANKPI\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"resource=vFirewall;type=configuration\",\"policyName\":\"configuration.dcae.microservice.tca.xml\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":4000,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\"},{\"closedLoopControlName\":\"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":20000,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\"},{\"closedLoopControlName\":\"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09\",\"closedLoopEventStatus\":\"ABATED\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"CRITICAL\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"resource=vLoadBalancer;type=configuration\",\"policyName\":\"configuration.dcae.microservice.tca.xml\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":500,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\"},{\"closedLoopControlName\":\"CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":5000,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\"}]}]}"
-      }
-    ],
-    "program_preferences": [],
-    "policy_schema": [
-      {
-        "name": "domain",
-        "description": "Domain name to which TCA needs to be applied",
-        "type": "string",
-        "value": "measurementsForVfScaling",
-        "constraints": [
-          {
+        "name": "aaiEnrichmentProxyURL",
+        "description": "A&AI Enrichment API Proxy URL",
+        "value": "http://username:password@proxyhost.com:8080"
+      },      \r
+      {\r
+        "name": "tca_policy",\r
+        "description": "TCA Policy JSON",\r
+        "value": "{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"Mfvs_eNodeB_RANKPI\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"resource=vFirewall;type=configuration\",\"policyName\":\"configuration.dcae.microservice.tca.xml\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":4000,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\"},{\"closedLoopControlName\":\"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":20000,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\"},{\"closedLoopControlName\":\"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09\",\"closedLoopEventStatus\":\"ABATED\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"CRITICAL\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"resource=vLoadBalancer;type=configuration\",\"policyName\":\"configuration.dcae.microservice.tca.xml\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":500,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\"},{\"closedLoopControlName\":\"CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B\",\"closedLoopEventStatus\":\"ONSET\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\",\"thresholdValue\":5000,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\"}]}]}",\r
+        "policy_editable": true,
+        "policy_schema": [{
+          "name": "domain",
+          "description": "Domain name to which TCA needs to be applied",
+          "type": "string",
+          "value": "measurementsForVfScaling",
+          "constraints": [{
             "equal": "measurementsForVfScaling"
-          }
-        ]
-      },
-      {
-        "name": "metricsPerEventName",
-        "description": "Contains eventName and threshold details that need to be applied to given eventName",
-        "type": "list",
-        "entry_schema": [
-          {
+          }]
+        }, {
+          "name": "metricsPerEventName",
+          "description": "Contains eventName and threshold details that need to be applied to given eventName",
+          "type": "list",
+          "entry_schema": [{
             "name": "eventName",
             "description": "Event name to which thresholds need to be applied",
             "type": "string",
             "value": ""
-          },
-          {
+          }, {
             "name": "controlLoopSchemaType",
             "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
             "type": "string",
             "value": "",
-            "constraints": [
-              {
-                "valid_value": [
-                  "VM",
-                  "VNF"
-                ]
-              }
-            ]
-          },
-          {
+            "constraints": [{
+              "valid_values": ["VM", "VNF"]
+            }]
+          }, {
             "name": "policyScope",
             "description": "TCA Policy Scope",
             "type": "string",
             "value": ""
-          },
-          {
+          }, {
             "name": "policyName",
             "description": "TCA Policy Scope Name",
             "type": "string",
             "value": ""
-          },
-          {
+          }, {
             "name": "policyVersion",
             "description": "TCA Policy Scope Version",
             "type": "string",
             "value": ""
-          },
-          {
+          }, {
             "name": "thresholds",
             "description": "Thresholds associated with eventName",
             "type": "list",
-            "entry_schema": [
-              {
-                "name": "closedLoopControlName",
-                "description": "Closed Loop Control Name associated with the threshold",
-                "type": "string",
-                "value": ""
-              },
-              {
-                "name": "version",
-                "description": "Version number associated with the threshold",
-                "type": "string",
-                "value": ""
-              },
-              {
-                "name": "fieldPath",
-                "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
-                "type": "string",
-                "value": ""
-              },
-              {
-                "name": "thresholdValue",
-                "description": "Threshold value for the field Path inside CEF message",
-                "type": "number",
-                "value": ""
-              },
-              {
-                "name": "direction",
-                "description": "Direction of the threshold",
-                "type": "string",
-                "value": "",
-                "constraints": [
-                  {
-                    "valid_value": [
+            "entry_schema": [{
+              "name": "closedLoopControlName",
+              "description": "Closed Loop Control Name associated with the threshold",
+              "type": "string",
+              "value": ""
+            }, {
+              "name": "version",
+              "description": "Version number associated with the threshold",
+              "type": "string",
+              "value": ""
+            }, {
+              "name": "fieldPath",
+              "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
+              "type": "string",
+              "value": ""
+            }, {
+              "name": "thresholdValue",
+              "description": "Threshold value for the field Path inside CEF message",
+              "type": "number",
+              "value": ""
+            }, {
+              "name": "direction",
+              "description": "Direction of the threshold",
+              "type": "string",
+              "value": "",
+              "constraints": [{
+                "valid_values": [
                       "LESS",
                       "LESS_OR_EQUAL",
                       "GREATER",
                       "GREATER_OR_EQUAL"
-                    ]
-                  }
                 ]
-              },
-              {
-                "name": "closedLoopEventStatus",
-                "description": "Closed Loop Event Status of the threshold",
-                "type": "string",
-                "value": "",
-                "constraints": [
-                  {
-                    "valid_value": [
-                      "ONSET",
-                      "ABATED"
-                    ]
-                  }
+              }]
+            }, {
+              "name": "closedLoopEventStatus",
+              "description": "Closed Loop Event Status of the threshold",
+              "type": "string",
+              "value": "",
+              "constraints": [{
+                "valid_values": ["ONSET", "ABATED"]
+              }]
+            }, {
+              "name": "severity",
+              "description": "Threshold Event Severity",
+              "value": "",
+              "type": "string",
+              "constraints": [{
+                "valid_values": [
+                  "CRITICAL",
+                  "MAJOR",
+                  "MINOR",
+                  "WARNING",
+                  "NORMAL"
                 ]
-              },
-              {
-                "name": "severity",
-                "description": "Threshold Event Severity",
-                "value": "",
-                "type": "string",
-                "constraints": [
-                  {
-                    "valid_value": [
-                      "CRITICAL",
-                      "MAJOR",
-                      "MINOR",
-                      "WARNING",
-                      "NORMAL"
-                    ]
-                  }
-                ]
-              }
-            ]
-          }
-        ]
+              }]
+            }]
+          }]
+        }]
       }
-    ]
+    ],
+    "program_preferences": []
   }
 }
-