Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

(warning) Work in progress


Table of Contents
maxLevel2

...

Schema that can be used by Tosca Lab (SDC DCAE-D Tosca Lab) to generate Micro-service policy model (more info: MicroServices Onboarding)

Expand
Code Block
{
  "self": {
    "name": "cdap.tca.hi.lo.app",
    "version": "1.0.5",
    "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": "DCAE_CL_Output",
        "version": "1.0.1",
        "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": "https://nexus.onap.org/service/local/repositories/staging/content/org/onap/dcaegen2/analytics/tca/dcae-analytics-cdap-tca/2.0.0/dcae-analytics-cdap-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" :  "subscriberHostName",
        "description" :  "",
        "value" : "HOSTNAME"
      },
      {
        "name" :  "subscriberHostPort",
        "description" :  "",
        "value" : 1234
      },
      {
        "name" :  "subscriberTopicName",
        "description" :  "",
        "value" : "com.att.dcae.dmaap.mtnje2.DcaeTestVESSub"
      },
      {
        "name" :  "subscriberProtocol",
        "description" :  "",
        "value" : "https"
      },
      {
        "name" :  "subscriberUserName",
        "description" :  "",
        "value" : "USERNAME"
      },
      {
        "name" :  "subscriberUserPassword",
        "description" :  "",
        "value" : "PASSWORD"
      },
      {
        "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" :  "publisherHostName",
        "description" :  "",
        "value" : "HOSTNAME"
      },
      {
        "name" :  "publisherHostPort",
        "description" :  "",
        "value" : 1234
      },
      {
        "name" :  "publisherTopicName",
        "description" :  "",
        "value" : "com.att.dcae.dmaap.mtnje2.DcaeTestVESPub"
      },
      {
        "name" :  "publisherProtocol",
        "description" :  "",
        "value" : "https"
      },
      {
        "name" :  "publisherUserName",
        "description" :  "",
        "value" : "USERNAME"
      },
      {
        "name" :  "publisherUserPassword",
        "description" :  "",
        "value" : "PASSWORD"
      },
      {
        "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": "Enable output alert to be in CEF Format",
        "value": "false"
      },
      {
        "name": "enableAAIEnrichment",
        "description": "Enable A&AI Enrichment of generated TCA Alerts",
        "value": "true"
      },
      {
        "name": "aaiEnrichmentHost",
        "description": "A&AI Enrichment API Host name",
        "value": "123.123.123.123"
      },
      {
        "name": "aaiEnrichmentPortNumber",
        "description": "A&AI Enrichment API Host port number",
        "value": 8443
      },
      {
        "name": "aaiEnrichmentProtocol",
        "description": "A&AI Enrichment API protocol",
        "value": "https"
      },
      {
        "name": "aaiEnrichmentUserName",
        "description": "A&AI Enrichment API username",
        "value": "USERNAME"
      },
      {
        "name": "aaiEnrichmentUserPassword",
        "description": "A&AI Enrichment API password",
        "value": "PASSWORD"
      },
      {
        "name": "aaiEnrichmentIgnoreSSLCertificateErrors",
        "description": "A&AI Ignore SSL Certification Errors",
        "value": "true"
      },
      {
        "name": "aaiVNFEnrichmentAPIPath",
        "description": "A&AI VNF Enrichment API Path",
        "value": "/aai/v11/network/generic-vnfs/generic-vnf"
      },
      {
        "name": "aaiVMEnrichmentAPIPath",
        "description": "A&AI VM Enrichment API Path",
        "value": "/aai/v11/search/nodes-query"
      },
      {
        "name": "aaiEnrichmentProxyURL",
        "description": "A&AI Enrichment API Proxy URL",
        "value": "URL"
      },      
      {
        "name": "tca_policy",
        "description": "TCA Policy JSON",
        "value":"{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"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.vNicUsageArray[*].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.vNicUsageArray[*].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.vNicUsageArray[*].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\"}]}]}", 
        "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": "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_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_values": [
                      "LESS",
                      "LESS_OR_EQUAL",
                      "GREATER",
                      "GREATER_OR_EQUAL",
                      "EQUAL"
                ]
              }]
            }, {
              "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"
                ]
              }]
            }]
          }]
        }]
      }
    ],
    "program_preferences": []
  }
}

...

Schema that currently can by used by Policy to generate form to configure Micro-service policy

Expand
{
"MyTestModelNameConfiguration": {
"param1": "java.lang.String:defaultValue-NA:required-true:MANY-false",
"param2": "java.lang.String:defaultValue-NA:required-false:MANY-true",
"param3": "java.lang.String:defaultValue-NA:required-false:MANY-false",
"param4": "java.lang.String:defaultValue-NA:required-false:MANY-true",
"param5": "java.lang.String:defaultValue-NA:required-false:MANY-true",
"param6": "java.lang.String:defaultValue-NA:required-false:MANY-false"
}
}


Micro-service policy (instance)

...