From 4edf0fa48892bf38d0e3838d125e9bf2324b38e0 Mon Sep 17 00:00:00 2001 From: an4828 Date: Fri, 15 Sep 2017 15:28:53 -0400 Subject: Add support for ABATED alerts within CDAP TCA Change-Id: Iae560a2d0a47b30b41cd31206dc481a08e4930f7 Signed-off-by: an4828 Issue-ID: DCAEGEN2-107 Signed-off-by: an4828 --- dpo/commands | 4 +- dpo/dmaap.json | 32 ++-- dpo/tcaInput.json | 6 +- dpo/tcaOutput.json | 133 ++++++++------ dpo/tcaSpec.json | 529 +++++++++++++++++++++++++++++++---------------------- 5 files changed, 403 insertions(+), 301 deletions(-) (limited to 'dpo') diff --git a/dpo/commands b/dpo/commands index 29e8507..0c543c7 100644 --- a/dpo/commands +++ b/dpo/commands @@ -3,7 +3,7 @@ unset http_proxy; unset https_proxy dcae_cli data_format add --update tcaInput.json dcae_cli data_format add --update tcaOutput.json dcae_cli component add --update tcaSpec.json -dcae_cli component run --dmaap-file dmaap.json --force --additional-user USER cdap.tca.hi.lo.app +dcae_cli component run --dmaap-file dmaap.json --force cdap.tca.hi.lo.app # publish dcae_cli data_format publish "TCA Alert Definition" @@ -14,4 +14,4 @@ dcae_cli component undeploy cdap.tca.hi.lo.app # to inspect dcae_cli component show cdap.tca.hi.lo.app dcae_cli component list -dcae_cli component list --deployed \ No newline at end of file +dcae_cli component list --deployed diff --git a/dpo/dmaap.json b/dpo/dmaap.json index 8bb4dd5..76d111c 100644 --- a/dpo/dmaap.json +++ b/dpo/dmaap.json @@ -1,18 +1,18 @@ { - "tca_handle_in": { - "aaf_username": "USER", - "aaf_password": "PASSWORD", - "type": "message_router", - "dmaap_info": { - "topic_url": "https://HOSTNAME:3905/events/com.att.dcae.dmaap.mtnje2.DcaeTestVESSub" - } - }, - "tca_handle_out": { - "aaf_username": "USER", - "aaf_password": "PASSWORD", - "type": "message_router", - "dmaap_info": { - "topic_url": "https://HOSTNAME:3905/events/com.att.dcae.dmaap.mtnje2.DcaeTestVESPub" - } - } + "tca_handle_in": { + "aaf_username": "USER", + "aaf_password": "PASSWORD", + "type": "message_router", + "dmaap_info": { + "topic_url": "https://HOSTNAME:3905/events/com.att.dcae.dmaap.mtnje2.DcaeTestVESSub" + } + }, + "tca_handle_out": { + "aaf_username": "USER", + "aaf_password": "PASSWORD", + "type": "message_router", + "dmaap_info": { + "topic_url": "https://HOSTNAME:3905/events/com.att.dcae.dmaap.mtnje2.DcaeTestVESPub" + } + } } diff --git a/dpo/tcaInput.json b/dpo/tcaInput.json index 0d5a81a..aea9fcf 100644 --- a/dpo/tcaInput.json +++ b/dpo/tcaInput.json @@ -3,12 +3,12 @@ "name": "Common Event Format Definition", "version": "25.0.0", "description": "Common Event Format Definition" - + }, "dataformatversion": "1.0.0", "reference": { "name": "Common Event Format", "format": "JSON", "version": "25.0.0" - } -} \ No newline at end of file + } +} diff --git a/dpo/tcaOutput.json b/dpo/tcaOutput.json index 03c836f..3f2e16b 100644 --- a/dpo/tcaOutput.json +++ b/dpo/tcaOutput.json @@ -1,63 +1,78 @@ { - "self": { - "name": "TCA Alert Definition", - "version": "1.0.0", - "description": "The format of the output event from TCA" - }, - "dataformatversion": "1.0.0", - "jsonschema": { - "name": "TCA Alert", - "version": "1.0.0", - "properties": { - "closedLoopControlame": { - "type": "string" - }, - "version": { - "type": "string" - }, - "requestID": { - "type": "string" - }, - "closedLoopAlarmStart": { - "type": "string" - }, - "closedLoopEventClient": { - "type": "string" - }, - "target_type": { - "type": "string", - "enum": [ "VNF", "VM" ] - }, - "target": { - "type": "string", - "enum": [ "generic-vnf.vnf-id", "vserver.vserver-name" ] - }, - "AAI": {"anyOf": [ - {"generic-vnf.vnf-id": { + "self": { + "name": "TCA Alert Definition", + "version": "1.0.0", + "description": "The format of the output event from TCA" + }, + "dataformatversion": "1.0.0", + "jsonschema": { + "name": "TCA Alert", + "version": "1.0.0", + "properties": { + "closedLoopControlame": { + "type": "string" + }, + "version": { + "type": "string" + }, + "requestID": { + "type": "string" + }, + "closedLoopAlarmStart": { + "type": "string" + }, + "closedLoopEventClient": { + "type": "string" + }, + "target_type": { + "type": "string", + "enum": [ + "VNF", + "VM" + ] + }, + "target": { + "type": "string", + "enum": [ + "generic-vnf.vnf-id", + "vserver.vserver-name" + ] + }, + "AAI": { + "anyOf": [ + { + "generic-vnf.vnf-id": { "type": "string" - }}, - {"vserver.vserver-name" : { - "type": "string" - }}] - }, - "from": { - "type": "string", - "enum": [ "DCAE" ] - }, - "policyScope": { - "type": "string" + } }, - "policyName": { - "type": "string" - }, - "policyVersion": { - "type": "string" - }, - "closedLoopEventStatus": { - "type": "string", - "enum": [ "ONSET" ] + { + "vserver.vserver-name": { + "type": "string" + } } - - } - } -} \ No newline at end of file + ] + }, + "from": { + "type": "string", + "enum": [ + "DCAE" + ] + }, + "policyScope": { + "type": "string" + }, + "policyName": { + "type": "string" + }, + "policyVersion": { + "type": "string" + }, + "closedLoopEventStatus": { + "type": "string", + "enum": [ + "ONSET" + ] + } + } + } +} diff --git a/dpo/tcaSpec.json b/dpo/tcaSpec.json index 4b3a5c9..73276bb 100644 --- a/dpo/tcaSpec.json +++ b/dpo/tcaSpec.json @@ -1,223 +1,310 @@ { - "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" + ] + } + ] + } + ] + } + ] + } + ] + } } + -- cgit 1.2.3-korg