Versions Compared

Key

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

...

CL Event Structure (From DCAE mS to Policy)

 


Fields

Required

Description

AAI

Yes

Contains the A&AI Node-Attribute list; dependent on successful enrichment of VNF/VM   type

closedLoopAlarmEnd

Yes - only for   ABATED

When the alarm was cleared. This field need only be present in the ABATED message.

closedLoopAlarmStart

Yes

When the alarm was first detected.

closedLoopControlName

Yes

This is 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.

closedLoopEventClient

No

For monitoring/logging/auditing purposes, if there is an instance ID of the DCAE micro service this field should be populated with it.

closedLoopEventStatus

Yes

This is the status of the closedLoopControlName/requestID pair. It can either ONSET or ABATED.

from

Yes

The ONAP platform component publishing this message. If DCAE, then it should be 'DCAE'.

policyName


The name of the Policy driving the DCAE micro service. Should be a part of the configuration policy setup by CLAMP and passed by DCAE controller

policyScope


The scope 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


The 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

requestID

Yes

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.

target

Yes

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.

target_type

Yes

The type of the target: VM or VNF. Future PNF

version

Yes

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


A&AI Enrichment APIs

...


VNF

Query generic-vnf object based on vnf-name (maps to event.commonEventHeader.sourceName in VES payload)

https://{aai}/aai/v11/network/generic-vnfs/generic-vnf?vnf-name={vnf-name}

Example  : https://aai.onap:8443/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=demofwl01fwl

Object Returned: v11-generic-vnf-object.docx

...


VM

Requires two step A&AI query

...

Object Returned: v11-vserver-object.docx

 


Based on the query parameters, the A&AI returned object can be received as json or xml. For JSON object – include ‘-H "Accept: application/json"’ in the request (default response is xml)


General

...

enrichment guidelines for CL flow

  1. If there is indication from VES event (based on A&AI naming convention) or control loop parameters for mS – then appropriate A&AI api’s can be invoked directly. In the absence of information, mS will be required to call more than single API to determine the correct object to query (depending on VNF or VM – different APi’s call are invoked as noted above).

  2. On Successful enrichment, CL event to Policy will be updated to set based on A&AI object 

...

Code Block
titleVNF CL Event Format
     "target_type":"VNF",
     "target":"generic-vnf.vnf-idname",   //modify to vnf-name instead? 
     "AAI": {       
             "generic-vnf.in-maint": value,
             "generic-vnf.is-closed-loop-disabled": value,
             "generic-vnf.orchestration-status": value,
             "generic-vnf.prov-status": value,
             "generic-vnf.resource-version": value,
             "generic-vnf.service-id": value,
             "generic-vnf.vnf-id": value,
             "generic-vnf.vnf-name": value,
             "generic-vnf.vnf-type": value
      }

...

Code Block
titleUnenriched VNF CL Event Format
	"target_type":"VNF",
	"target":"generic-vnf.vnf-idname",   //modify to vnf-name instead?
	"AAI": {
		"generic-vnf.vnf-idname":$event.commonEventHeader.sourceName 
 	} 

...

5. No enrichment necessary for Abatement event (per Pam/policy team)


VES Event

...

Flow - VNF Enrichment example


Code Block
titleVNF input
collapsetrue
{  
   "event":{  
      "commonEventHeader":{  
         "startEpochMicrosec":1500584201765465,
         "sourceId":"Dummy VM UUID - No Metadata available",
         "eventId":"11",
         "reportingEntityId":"No UUID available",
         "internalHeaderFields":{  
            "collectorTimeStamp":"Thu, 07 20 2017 08:56:52 GMT"
         },
         "eventType":"HTTP request rate",
         "priority":"Normal",
         "version":1.2,
         "reportingEntityName":"fwll",
         "sequence":11,
         "domain":"measurementsForVfScaling",
         "lastEpochMicrosec":1500584212017216,
         "eventName":"vnfScalingMeasurement",
         "sourceName":"vCPEInfraVNF13"
      },
      "measurementsForVfScalingFields":{  
         "cpuUsageArray":[  
            {  
               "percentUsage":0,
               "cpuIdentifier":"cpu1",
               "cpuIdle":100,
               "cpuUsageSystem":0,
               "cpuUsageUser":0
            }
         ],
         "measurementInterval":10,
         "requestRate":7832,
         "vNicUsageArray":[  
            {  
               "transmittedOctetsDelta":5680,
               "receivedTotalPacketsDelta":14,
               "vNicIdentifier":"eth0",
               "valuesAreSuspect":"true",
               "transmittedTotalPacketsDelta":31,
               "receivedOctetsDelta":1332
            }
         ],
         "measurementsForVfScalingVersion":2.1
      }
   }
}

...

Code Block
titleCL Event Ouput
collapsetrue
{  
   "closedLoopEventClient":"DCAE_INSTANCE_ID.dcae-tca",
   "policyVersion":"1.0.0.5",
   "policyName":"vFirewall",
   "policyScope":"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
   "target_type":"VNF",
   "AAI":{  
      "generic-vnf.in-maint":false,
      "generic-vnf.is-closed-loop-disabled":false,
      "generic-vnf.orchestration-status":"Created",
      "generic-vnf.prov-status":"PREPROV",
      "generic-vnf.resource-version":"value1504896046185",
      "generic-vnf.service-id":"e8cb8968-5411-478b-906a-f28747de72cd",
      "generic-vnf.vnf-id":"63b31229-9a3a-444f-9159-04ce2dca3be9",
      "generic-vnf.vnf-name":"vCPEInfraVNF13",
      "generic-vnf.vnf-type":"vCPEInfraService10/vCPEInfraService10 0"
   },
   "closedLoopAlarmStart":1484855291527925,
   "closedLoopEventStatus":"ONSET",
   "closedLoopControlName":"CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
   "version":"1.0.2",
   "target":"generic-vnf.vnf-id",
   "requestID":"8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc",
   "from":"DCAE"
}  


VES Event Flow

...

- VM Enrichment example


Code Block
titleVES Input
collapsetrue
       "event": {
              "commonEventHeader": {
                     "startEpochMicrosec": 1500584201765465,
                     "sourceId": "Dummy VM UUID - No Metadata available",
                     "eventId": "11",
                     "reportingEntityId": "No UUID available",
                     "internalHeaderFields": {
                           "collectorTimeStamp": "Thu, 07 20 2017 08:56:52 GMT"
                     },
                     "eventType": "HTTP request rate",
                     "priority": "Normal",
                     "version": 1.2,
                     "reportingEntityName": "vLB",
                     "sequence": 10,
                     "domain": "measurementsForVfScaling",
                     "lastEpochMicrosec": 1500584212017216,
                     "eventName": "vLoadBalancer",
                     "sourceName": "vserver-name-val-2"
              },
              "measurementsForVfScalingFields": {
                     "cpuUsageArray": [{
                           "percentUsage": 0,
                           "cpuIdentifier": "cpu1",
                           "cpuIdle": 100,
                           "cpuUsageSystem": 0,
                           "cpuUsageUser": 0
                     }],
                     "measurementInterval": 10,
                     "requestRate": 7832,
                     "vNicUsageArray": [{
                           "transmittedOctetsDelta": 5680,
                           "receivedTotalPacketsDelta": 14,
                           "vNicIdentifier": "eth0",
                           "valuesAreSuspect": "true",
                           "transmittedTotalPacketsDelta": 31,
                           "receivedOctetsDelta": 1332
                     }],
                     "measurementsForVfScalingVersion": 2.1
              }
       }
 }

...

DCAE TCA design for Enrichment

 


Besides configuration for TCA processing, TCA configuration model will be enhanced to support following new configuration

    • RESTProxyHost, RESTProxyPort, RESTProxyPor    (this will be defined part of TCA app_config to indicate A&AI host/port (or MSB host/port) to be used for enrichment. This value will be preset into blueprint for demo setup)
    • AppId, AppPwd (to match as provisioned in A&AI)
    • Configurable cache time (to avoid repeated A&AI query)
    • Per CL flow
      • controlLoopSchemaType = VM|VNF
      • closedLoopEventStatus= ONSET | ABATED

...

    • Use configuration model identified “controlLoopSchemaType” to set CL event (structure as we have currently)

...



Reference

Policy - https://wiki.onap.org/display/DW/Control+Loop+Operational+Policy?focusedCommentId=10782165#comment-10782165

...