Uploaded image for project: 'Policy Framework'
  1. Policy Framework
  2. POLICY-4317

PAP, PDP-X: Support DCAE tcagen2 monitoring app changes

XMLWordPrintable

      DCAE will change its interface to match this format:

      https://gerrit.onap.org/r/c/dcaegen2/analytics/tca-gen2/+/130051/3/dcae-analytics/dcae-analytics-test/src/main/resources/data/json/policy/tca_policy.json

      In this format, the domain/metrics data is a list.

      To support this new functionality PAP (supported policy types), and PDP-X should change.

      The models should have changes along these lines:

         onap.policies.Monitoring:
            derived_from: tosca.policies.Root
            version: 1.0.0
            name: onap.policies.Monitoring
         onap.policies.monitoring.tcagen2:
            derived_from: onap.policies.Monitoring
            version: 1.0.0
            name: onap.policies.monitoring.tcagen2
            properties:
               tca.policy:
                  type: list
                  description: TCA Policy JSON
                  required: true
                  entry_schema:
                     type: onap.datatypes.monitoring.tca_policy
      
        onap.datatypes.monitoring.tca_policy:
            derived_from: tosca.datatypes.Root
            properties:
                  domain:
                  type: string
                  required: true
                  description: Domain name to which TCA needs to be applied
                  default: measurementsForVfScaling
                  constraints:
                      -  equal: measurementsForVfScaling
                 metricsPerEventName:
                  type: list
                  required: true
                  description: Contains eventName and threshold details that need to be applied to given eventName
                  entry_schema:
                       type: onap.datatypes.monitoring.metricsPerEventName
      
      

      A policy would look something similar to this one (but would not necessarily use a different version as per Vijay's feedback, could reuse the existing version):

      {
          "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
          "topology_template": {
              "inputs": {},
              "policies": [
                  {
                      "onap.vfirewall.tca2": {
                          "type": "onap.policies.monitoring.tcagen2",
                          "type_version": "2.0.0",
                          "properties": {
                              "tca.policy": [
                                  {
                                      "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"
                                                  }
                                              ]
                                          },
                                          {
                                              "eventName": "virtualVMEventName",
                                              "controlLoopSchemaType": "VM",
                                              "policyScope": "resource=virtualVM;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"
                                                  }
                                              ]
                                          }
                                      ]
                                  },
                                  {
                                      "domain": "measurement",
                                      "metricsPerEventName": [
                                          {
                                              "eventName": "vFirewallBroadcastPackets",
                                              "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.measurementFields.nicPerformanceArray[*].receivedTotalPacketsDelta",
                                                      "thresholdValue": 300,
                                                      "direction": "LESS_OR_EQUAL",
                                                      "severity": "MAJOR",
                                                      "closedLoopEventStatus": "ABATED"
                                                  },
                                                  {
                                                      "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
                                                      "version": "1.0.2",
                                                      "fieldPath": "$.event.measurementFields.nicPerformanceArray[*].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.measurementFields.nicPerformanceArray[*].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.measurementFields.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.measurementFields.additionalMeasurements[*].arrayOfFields[0].value",
                                                      "thresholdValue": 0,
                                                      "direction": "GREATER",
                                                      "severity": "CRITICAL",
                                                      "closedLoopEventStatus": "ONSET"
                                                  }
                                              ]
                                          }
                                      ]
                                  }
                              ]
                          },
                          "name": "onap.vfirewall.tca2",
                          "version": "1.0.0",
                          "metadata": {
                              "policy-id": "onap.vfirewall.tca2",
                              "policy-version": "1.0.0"
                          }
                      }
                  }
              ]
          },
          "name": "ToscaServiceTemplateSimple",
          "version": "1.0.0"
      }
      

      The policy type would look something like this, although in the final version, may not necessarily use a different version (not necessary per DCAE feedback):

      tosca_definitions_version: tosca_simple_yaml_1_1_0
      policy_types:
         onap.policies.Monitoring:
            derived_from: tosca.policies.Root
            version: 1.0.0
            name: onap.policies.Monitoring
            description: a base policy type for all policies that govern monitoring provisioning
         onap.policies.monitoring.tcagen2:
            derived_from: onap.policies.Monitoring
            version: 2.0.0
            name: onap.policies.monitoring.tcagen2
            properties:
               tca.policy:
                  type: list
                  description: TCA Policy JSON
                  required: true
                  entry_schema:
                      type: onap.datatypes.monitoring.tca_policy
      data_types:
         onap.datatypes.monitoring.metricsPerEventName:
            derived_from: tosca.datatypes.Root
            properties:
               controlLoopSchemaType:
                  type: string
                  required: true
                  description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM
                  constraints:
                  -  valid_values:
                     - VM
                     - VNF
               eventName:
                  type: string
                  required: true
                  description: Event name to which thresholds need to be applied
               policyName:
                  type: string
                  required: true
                  description: TCA Policy Scope Name
               policyScope:
                  type: string
                  required: true
                  description: TCA Policy Scope
               policyVersion:
                  type: string
                  required: true
                  description: TCA Policy Scope Version
               thresholds:
                  type: list
                  required: true
                  description: Thresholds associated with eventName
                  entry_schema:
                     type: onap.datatypes.monitoring.thresholds
         onap.datatypes.monitoring.tca_policy:
            derived_from: tosca.datatypes.Root
            properties:
               domain:
                  type: string
                  required: true
                  description: Domain name to which TCA needs to be applied
                  default: measurementsForVfScaling
                  constraints:
                  -  equal: measurementsForVfScaling
               metricsPerEventName:
                  type: list
                  required: true
                  description: Contains eventName and threshold details that need to be applied to given eventName
                  entry_schema:
                     type: onap.datatypes.monitoring.metricsPerEventName
         onap.datatypes.monitoring.thresholds:
            derived_from: tosca.datatypes.Root
            properties:
               closedLoopControlName:
                  type: string
                  required: true
                  description: Closed Loop Control Name associated with the threshold
               closedLoopEventStatus:
                  type: string
                  required: true
                  description: Closed Loop Event Status of the threshold
                  constraints:
                  -  valid_values:
                     - ONSET
                     - ABATED
               direction:
                  type: string
                  required: true
                  description: Direction of the threshold
                  constraints:
                  -  valid_values:
                     - LESS
                     - LESS_OR_EQUAL
                     - GREATER
                     - GREATER_OR_EQUAL
                     - EQUAL
               fieldPath:
                  type: string
                  required: true
                  description: Json field Path as per CEF message which needs to be analyzed for TCA
                  constraints:
                  -  valid_values:
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait
                     - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage
                     - $.event.measurementsForVfScalingFields.meanRequestLatency
                     - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered
                     - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached
                     - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured
                     - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree
                     - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed
                     - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value
               severity:
                  type: string
                  required: true
                  description: Threshold Event Severity
                  constraints:
                  -  valid_values:
                     - CRITICAL
                     - MAJOR
                     - MINOR
                     - WARNING
                     - NORMAL
               thresholdValue:
                  type: integer
                  required: true
                  description: Threshold value for the field Path inside CEF message
               version:
                  type: string
                  required: true
                  description: Version number associated with the threshold
      

            jhh jhh
            jhh jhh
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: