Add support for ABATED alerts within CDAP TCA
[dcaegen2/analytics/tca.git] / dpo / tcaSpec.json
index 4b3a5c9..73276bb 100644 (file)
 {
-       "self": {
-               "name": "cdap.tca.hi.lo.app",
-               "version": "1.0.2",
-               "description": "cdap tca hi lo application",
-               "component_type": "cdap"
-       },
-       "streams": {
-               "subscribes": [{
-                               "config_key": "tca_handle_in",
-                               "format": "Common Event Format Definition",
-                               "version": "25.0.0",
-                               "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-tca",
-               "artifact_version": "1.1.0",
-               "programs": [{
-                               "program_type": "flows",
-                               "program_id": "TCAVESCollectorFlow"
-                       }, {
-                               "program_type": "workers",
-                               "program_id": "TCADMaaPMRSubscriberWorker"
-                       }, {
-                               "program_type": "workers",
-                               "program_id": "TCADMaaPMRPublisherWorker"
-                       }
-               ],
-               "namespace": "cdap_tca_hi_lo"
-       },
-       "artifacts": [{
-                       "uri": "${nexusproxy}/repository/dcae-dev-raw/jar_files/dcae-analytics-tca-1.1.0.jar",
-                       "type": "jar"
-               }
-       ],
-       "parameters": {
-               "app_config": [{
-                               "name": "appName",
-                               "description": "",
-                               "value": "dcae-tca"
-                       }, {
-                               "name": "appDescription",
-                               "description": "",
-                               "value": "DCAE Analytics Threshold Crossing Alert Application"
-                       }, {
-                               "name": "tcaSubscriberOutputStreamName",
-                               "description": "",
-                               "value": "TCASubscriberOutputStream"
-                       }, {
-                               "name": "thresholdCalculatorFlowletInstances",
-                               "description": "",
-                               "value": 2
-                       }, {
-                               "name": "tcaVESMessageStatusTableName",
-                               "description": "",
-                               "value": "TCAVESMessageStatusTable"
-                       }, {
-                               "name": "tcaVESMessageStatusTableTTLSeconds",
-                               "description": "",
-                               "value": 86400
-                       }, {
-                               "name": "tcaVESAlertsTableName",
-                               "description": "",
-                               "value": "TCAVESAlertsTable"
-                       }, {
-                               "name": "tcaVESAlertsTableTTLSeconds",
-                               "description": "",
-                               "value": 1728000
-                       }
-               ],
-               "app_preferences": [{
-                               "name": "subscriberContentType",
-                               "description": "",
-                               "value": "application/json"
-                       }, {
-                               "name": "subscriberConsumerId",
-                               "description": "",
-                               "value": "c12"
-                       }, {
-                               "name": "subscriberConsumerGroup",
-                               "description": "",
-                               "value": "OpenDCAE-c12"
-                       }, {
-                               "name": "subscriberTimeoutMS",
-                               "description": "",
-                               "value": -1
-                       }, {
-                               "name": "subscriberMessageLimit",
-                               "description": "",
-                               "value": -1
-                       }, {
-                               "name": "subscriberPollingInterval",
-                               "description": "",
-                               "value": 20000
-                       }, {
-                               "name": "publisherContentType",
-                               "description": "",
-                               "value": "application/json"
-                       }, {
-                               "name": "publisherMaxBatchSize",
-                               "description": "",
-                               "value": 10
-                       }, {
-                               "name": "publisherMaxRecoveryQueueSize",
-                               "description": "",
-                               "value": 100000
-                       }, {
-                               "name": "publisherPollingInterval",
-                               "description": "",
-                               "value": 20000
-                       }, {
-                               "name": "tca_policy",
-                               "description": "",
-                               "value":
-                               "'{\"domain\":\"measurementsForVfScaling\",\"metricsPerFunctionalRole\":[{\"functionalRole\":\"vFirewall\",\"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\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn\",\"thresholdValue\":4000,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\"},{\"closedLoopControlName\":\"CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn\",\"thresholdValue\":20000,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\"}]},{\"functionalRole\":\"vLoadBalancer\",\"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\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn\",\"thresholdValue\":500,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\"},{\"closedLoopControlName\":\"CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn\",\"thresholdValue\":5000,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\"}]}]}'"
-                       }
-               ],
-               "program_preferences": [],
-
-               "policy_parameters": [{
-                               "name": "domain",
-                               "description": "",
-                               "type": "string",
-                               "value": "measurementsForVfScaling",
-                               "constraints":
-                               [{
-                                               "equal": "measurementsForVfScaling"
-                                       }
-                               ]
-                       }, {
-                               "name": "metricsPerFunctionalRole",
-                               "description": "",
-                               "type": "list",
-                               "entry_schema":
-                               [{
-                                               "name": "functionalRole",
-                                               "description": "Function of the event source e.g., eNodeB, MME, PCRF",
-                                               "type": "string",
-                                               "value": ""
-                                       }, {
-                                               "name": "policyScope",
-                                               "description": "Policy Scope associated with this event.For example-resource=vFirewall;type=configuration",
-                                               "type": "string",
-                                               "value": ""
-                                       }, {
-                                               "name": "policyName",
-                                               "description": "Policy name/ID for this event",
-                                               "type": "string",
-                                               "value": "configuration.dcae.microservice.tca.xml"
-                                       }, {
-                                               "name": "policyVersion",
-                                               "description": "Policy Version",
-                                               "type": "string",
-                                               "value": "v0.0.1"
-                                       }, {
-                                               "name": "thresholds",
-                                               "description": "",
-                                               "type": "list",
-                                               "entry_schema":
-                                               [{
-                                                               "name": "closedLoopControlName",
-                                                               "description": "A UNIQUE string identifying the Closed Loop ID this event is for.",
-                                                               "type": "string",
-                                                               "value": ""
-                                                       }, {
-                                                               "name": "version",
-                                                               "description": "Version for the closed loop message",
-                                                               "type": "string",
-                                                               "value": ""
-                                                       }, {
-                                                               "name": "fieldPath",
-                                                               "description": "",
-                                                               "type": "string",
-                                                               "value": ""
-                                                       }, {
-                                                               "name": "thresholdValue",
-                                                               "description": "",
-                                                               "type": "number",
-                                                               "value": ""
-                                                       }, {
-                                                               "name": "direction",
-                                                               "description": "",
-                                                               "type": "string",
-                                                               "value": "",
-                                                               "constraints":
-                                                               [{
-                                                                               "valid_value":
-                                                                               ["LESS", "LESS_OR_EQUAL", "GREATER", "GREATER_OR_EQUAL"]
-                                                                       }
-                                                               ]
-                                                       }, {
-                                                               "name": "severity",
-                                                               "description": "event severity or priority",
-                                                               "value": "",
-                                                               "type": "string",
-                                                               "constraints":
-                                                               [{
-                                                                               "valid_value":
-                                                                               ["CRITICAL", "MAJOR", "MINOR", "WARNING", "NORMAL"]
-                                                                       }
-                                                               ]
-                                                       }
-                                               ]
-                                       }
-                               ]
-                       }
-               ]
-       }
+  "self": {
+    "name": "cdap.tca.hi.lo.app",
+    "version": "1.0.3",
+    "description": "cdap tca hi lo application",
+    "component_type": "cdap"
+  },
+  "streams": {
+    "subscribes": [
+      {
+        "config_key": "tca_handle_in",
+        "format": "Common Event Format Definition",
+        "version": "25.0.0",
+        "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"
+      },
+      {
+        "name": "tcaSubscriberOutputStreamName",
+        "description": "Name of Stream where TCA DMaaP Subscriber pushes incoming messages to TCA App for processing",
+        "value": "TCASubscriberOutputStream"
+      },
+      {
+        "name": "thresholdCalculatorFlowletInstances",
+        "description": "Number of instances for Threshold Calculator",
+        "value": 2
+      },
+      {
+        "name": "tcaVESMessageStatusTableName",
+        "description": "TCA Message Status Table Name where status of each TCA message is stored",
+        "value": "TCAVESMessageStatusTable"
+      },
+      {
+        "name": "tcaVESMessageStatusTableTTLSeconds",
+        "description": "Time to Live for entries in Message Status Table",
+        "value": 86400
+      },
+      {
+        "name": "tcaVESAlertsTableName",
+        "description": "Table where TCA generated alerts are temporarily stored before published to DMaaP MR topic",
+        "value": "TCAVESAlertsTable"
+      },
+      {
+        "name": "tcaVESAlertsTableTTLSeconds",
+        "description": "Time to Live for entries in Alerts Table",
+        "value": 1728000
+      },
+      {
+        "name" : "tcaAlertsAbatementTableName",
+        "description" : "Table where information to determine sending of Abatement Alerts is stored",
+        "value" : "TCAAlertsAbatementTable"
+      },
+      {
+        "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": "subscriberConsumerId",
+        "description": "Subscriber Consumer Id",
+        "value": "c12"
+      },
+      {
+        "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": [
+          {
+            "equal": "measurementsForVfScaling"
+          }
+        ]
+      },
+      {
+        "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"
+                ]
+              }
+            ]
+          },
+          {
+            "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": [
+                      "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": "severity",
+                "description": "Threshold Event Severity",
+                "value": "",
+                "type": "string",
+                "constraints": [
+                  {
+                    "valid_value": [
+                      "CRITICAL",
+                      "MAJOR",
+                      "MINOR",
+                      "WARNING",
+                      "NORMAL"
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      }
+    ]
+  }
 }
+