Versions Compared

Key

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

...

This CDAP application is driven by the VES collector which outputs to Message Router.  This Message Router topic is the source for the CDAP application which will read each incoming message. If a message meets the Common Event Format (CEF, v28.3) as specified by the VES 5.3 standard (AttServiceSpecification-VesEventListener-v5.3.docx, Rev: 5.3, 6/22/17), it will be parsed and if it contains a message which matches the policy configuration for a given metric (denoted primarily by the "eventName" (NEW, 8/25/17) and the "fieldPath"), the value of the metric will be compared to the "thresholdValue".  If that comparison indicates that a Control Loop Event Message should be generated, the application will output the alarm to the Message Router Sink topic in a format that matches the interface spec defined in the ONAP Control Loop Operational Policy (see section titled "Control Loop Event Messages").

Assumptions:

NEW, 8/25/17

TCA output will be similar to R0 implementation, where CL event will be triggered each time threshold rules are met.

  • Support for ABATEMENT event is not strictly necessary in the vFW or vDNS/vLB use cases as the Policy team has an "ABATEMENT not expected" configuration setting.  In the context of the vCPE use case, the CLEAR event (aka ABATED event) is driven by a measured metric (i.e. packet loss equal to 0) rather than by the lapse of a threshold crossing event over some minimum number of measured intervals.  Thus, this requirement can be accommodated by use of the low threshold with a policy of "direction =  0".  Hence, for this release, the cdap-tca-hi-lo implementation will keep only the minimal state needed to correlate an ABATED event with the corresponding ONSET event.  This correlation will be indicated by the requestID in the Control Loop Event Message.

...

Public APIs:


MR Interface - Source

Data Flow Diagram, v1 - Flow 7b

The source interface to TCA is Message Router; the input topic is expected to contain CEF messages (v28.3) as defined in the VES specification.  Sample 1 and Sample 2 contain sample data based on the known schema in this spec as of 8/9/17.  This data can be used as a guide for planning and development, but should not be considered authoritative for any of the use cases.TODO:  update these samples to be consistent with sample policy and, if possible, to reflect data received from the VES collector in the ONAP lab.


Sample 1 - Sample data for vFW and vDNS use cases; ves5.3-measurement-vf5vdns.txt ves5.3-measurement-vf5vdns.txt    Expand source  expand source?

...

MR Interface - Sink (aka Control Loop Event Message)

...

The output TCA alert format is constructed as shown in Table 1.  (NEW, 8/25/17) The description field below is copied from the Control Loop Event Message section here.

Table 1: Format of the Output Alert from the cdapTable 1: Format of the Output Alert from the cdap-tca-hi-lo Microservice

JSON Field

JSON sub-field

Populate Using

Description

JSON Field

JSON sub-field

Populate Using

Description

{   
closedLoopControlName 

closedLoopControlName included in the DCAE configuration Policy

The unique ID for the Control Loop. It is created by the CLAMP platform during Control Loop design.

The DCAE Micro service that publishes this event structure MUST include this ID.

version 

version included in the DCAE configuration Policy

The version of the Control Loop event message. Should be '1.0.2'.
requestID 

Generate a UUID for this output message

For the control loop, when an instance of the Control Loop occurs, this unique ID must be created. The same ID

must be forwarded for both the ONSET and the ABATED control loop messages.

closedLoopAlarmStart commonEventHeader.startEpochMicrosec from the received VES measurementsForVfScaling messageWhen the alarm was first detected.
closedLoopEventClient Concatenate name of this DCAE instance and name for this TCA instance, separated by "."For monitoring/logging/auditing purposes, if there is an instance ID of the DCAE micro service this field should be populated with it.
target_type "VNF"The type of the target: VM or VNF. Future PNF(?).
target "generic-vnf.vnf-id" or "vserver.vserver-name"

This is the name of the field within the A&AI sub-tag that indicates the actual entity Node details. There should be a matching node field within the A&AI subtag holding this value.

AAI{ Contains the A&AI Node-Attribute list.
 

generic-vnf.vnf-id

commonEventHeader.reportingEntityName from the received VES measurementsForVfScaling message (value for the data element used in A&AI)

 
 }  
from "DCAE"The ONAP platform component publishing this message. If DCAE, then it should be 'DCAE'.
policyScope policyScope included in the DCAE configuration PolicyThe version of the Policy driving the DCAE Micro service. Should be a part of the configuration policy setup by CLAMP and passed by DCAE controller.
policyName policyName included in the DCAE configuration PolicyThe version of the Policy driving the DCAE Micro service. Should be a part of the configuration policy setup by CLAMP and passed by DCAE controller.
policyVersion policyVersion included in the DCAE configuration PolicyThe version of the Policy driving the DCAE Micro service. Should be a part of the configuration policy setup by CLAMP and passed by DCAE controller.
closedLoopEventStatus "ONSET" 

TODO, 8/25/17 - review the ABATED proposal for ONAP R1 and determine whether we need to add closedLoopAlarmEnd, assume yes.

TODO, 8/25/17 - review, with Ron S, the notion of separate closedLoopControlNames for high and low thresholds as shown in our sample policy; is this actually how a control loop would be configured?  Our expectation is that for the vCPE use case the closedLoopControlName will be the same since the ABATED event would need to be correlated to the ONSET event for that same CL.

...

and passed by DCAE controller.
closedLoopEventStatus "ONSET" 

 


For the vFW demo, a sample output alert sent to MR is as shown in Sample 3.  Note, this output will correspond to a control loop where the config policy contains:

...

JSON Field

JSON sub-field

Description

Notes

JSON Field

JSON sub-field

Description

Notes

{   
domain the domain datatype of the VES messageMust be measurementsForVfScaling
metricsPerEventName[ {an array that describes parameters associating a closed loop flow to the policy governing this TCA instance 
 eventNamea unique identifier that represents an event name that this TCA instance will act onFrom VES 5.3 spec: 

"It should be understood that events are well structured packages of information, identified by an eventName, which are asynchronously communicated to subscribers who are interested in the eventName.  Events can convey measurements, faults, syslogs, threshold crossing alerts and others types of information.  Events are simply a way of communicating well-structured packages of information to one or more instances of an Event Listener service."

 controlLoopSchemaTypethis is a field which will be used to derive the schema of the Control Loop Event MessageValid values for the Amsterdam release:  VM | VNF
 policyScopethe scope of this policy message 
 policyNamea name identifying this policy message 
 policyVersiona version identifying this policy message 
 thresholdsan array of one or more thresholds that are managed as part of a given closed loop 
 closedLoopControlNamethe name that specifies which control loop this TCA instance is a part of 
 versionthe version of the control loop 
 fieldPatha value used to derive the metric within VES message that this TCA will apply toexpected to be part of a measurementsForVfScaling domain event message
 thresholdValuethe value of the metric which will trigger this thresholdmust be numeric
 direction  
 severityan identifier specifying the precendence of this threshold evalution; thresholds will be evaluated from highest severity (CRITICAL) to lowest (NORMAL); a given VES message will only trigger one threshold

expected values: CRITICAL | MAJOR | MINOR | WARNING| NORMAL

 closedLoopEventStatusan identifier used to describe whether this threshold should be associated with a control loop ONSET action or whether it would describe a condition that indicates such a condition has ended (i.e. the condition has ABATED).  Note that ABATED alerts will be correlated to ONSET events based on the following key fields (9/11/17, TODO:  add key fields here).expected values:  ONSET | ABATED

...

Expand

{

  "domain": "measurementsForVfScaling",

 

  "metricsPerEventName": [

    {

      "eventName": "vFirewallBroadcastPackets",

      "policyScope": "DCAE",

      "policyName": "DCAE.Config_tca-hi-lo",

      "policyVersion": "v0.0.1",

 

      "thresholds": [

        {

          "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",

          "controlLoopSchemaType": "VNF",

          "version": "1.0.2",

          "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",

          "thresholdValue": 4000,

          "direction": "LESS_OR_EQUAL",

          "severity": "MAJOR",

          "closedLoopEventStatus": "ONSET"

        },

        {

          "closedLoopControlName": "CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09",

          "controlLoopSchemaType": "VNF",

          "version": "1.0.2",

          "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",

          "thresholdValue": 20000,

          "direction": "GREATER_OR_EQUAL",

          "severity": "CRITICAL",

          "closedLoopEventStatus": "ONSET"

        }

      ]

    },

 

    {

      "eventName": "vLoadBalancer",

      "policyScope": "DCAE",

      "policyName": "DCAE.Config_tca-hi-lo",

      "policyVersion": "v0.0.1",

      "thresholds": [

        {

          "closedLoopControlName": "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A",

          "controlLoopSchemaType": "VM",

          "version": "1.0.2",

          "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",

          "thresholdValue": 500,

          "direction": "LESS_OR_EQUAL",

          "severity": "MAJOR",

          "closedLoopEventStatus": "ONSET"

        },

        {

          "closedLoopControlName": "CL-LBAL-HIGH-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B",

          "controlLoopSchemaType": "VM",

          "version": "1.0.2",

          "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",

          "thresholdValue": 5000,

          "direction": "GREATER_OR_EQUAL",

          "severity": "CRITICAL",

          "closedLoopEventStatus": "ONSET"

        }

      ]

    }

 

    {

      "eventName": "vCPEvGMUXPacketLoss",

      "policyScope": "DCAE",

      "policyName": "DCAE.Config_tca-hi-lo",

      "policyVersion": "v0.0.1",

      "thresholds": [

        {

          "closedLoopControlName": "CL-vCPEvGMUX-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241ABA1",

          "controlLoopSchemaType": "VM",

          "version": "1.0.2",

          "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",

          "thresholdValue": 0,

          "direction": "EQUAL",

          "severity": "MAJOR",

          "closedLoopEventStatus": "ABATED"

        },

        {

          "closedLoopControlName": "CL-vCPEvGMUX-HIGH-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BCB2",

          "controlLoopSchemaType": "VM",

          "version": "1.0.2",

          "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",

          "thresholdValue": 1000,

          "direction": "GREATER_OR_EQUAL",

          "severity": "CRITICAL",

          "closedLoopEventStatus": "ONSET"

        }

      ]

    }

    

  ]

 

}


SME(s):

Alexei Nekrassov

Priya Singh

Cheryl Barthelmes

Vijay Venkatesh Kumar

Roohi Verma

Sandeep Singh

Lusheng Jiour team's working notes


Business Sponsor(s):

provide contact information for the sponsor of this microservice.  This should be the individual or organizations that are providing funding and/or are otherwise responsible for the lifecycle of the application code.

...