diff options
author | Chris Donley <christopher.donley@huawei.com> | 2018-08-08 12:41:37 -0700 |
---|---|---|
committer | Chris Donley <christopher.donley@huawei.com> | 2018-08-08 12:41:37 -0700 |
commit | a3e47baaf4c581367bcf2d1f0d921b453ac7a820 (patch) | |
tree | 293bc78e2935b791843dd3c7157169fde4bed720 /docs/files | |
parent | 85ed8842399b89eaa390850f67af995f4c2db1a1 (diff) |
Include VES 7.0.1 documentation
Issue-ID: VNFSDK-299
Change-Id: I8ea5cf2e2a6f0d20631d03e7ce605dd1364cf3b2
Signed-off-by: Chris Donley <christopher.donley@huawei.com>
Diffstat (limited to 'docs/files')
-rw-r--r-- | docs/files/VESEventListener_7_0_1.rst | 10443 | ||||
-rw-r--r-- | docs/files/VESEventRegistration_3_0.rst | 3131 |
2 files changed, 13574 insertions, 0 deletions
diff --git a/docs/files/VESEventListener_7_0_1.rst b/docs/files/VESEventListener_7_0_1.rst new file mode 100644 index 0000000..c8cd22f --- /dev/null +++ b/docs/files/VESEventListener_7_0_1.rst @@ -0,0 +1,10443 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017-2018 AT&T Intellectual Property, All rights reserved +.. Copyright 2017-2018 Huawei Technologies Co., Ltd. + +=================================== +Service: *VES Event Listener 7.0.1* +=================================== + +.. contents:: Table of Contents +Introduction +============ + +This document describes the RESTful interface for the VES Event +Listener. The VES acronym originally stood for Virtual-function Event +Streaming, but VES has been generalized to support network-function +event streaming, whether virtualized or not. The VES Event Listener is +capable of receiving any event sent in the VES Common Event Format. The +Common Event Format is expressed in JSON schema in section 4 of this +document. In the Common Event Format, an event consists of a required +Common Event Header block (i.e., object) accompanied by zero or more +event domain blocks. + +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 +other 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. + +This document describes a RESTful connectionless push event listener +that is capable of receiving single events or batches of events in the +Common Event Format. In future, additional documents may describe other +transports which make use of persistent TCP connections for high volumes +of streaming events. + +Event Registration +------------------ + +All events must be compliant with the common event format, but specific +events identified by their eventNames, may require that certain fields, +which are optional in the common event format, be present when they are +published. For example, a specific eventName may require that specific +name-value pairs be present in the extensible structures provided within +the Common Event Format. + +Events are registered using an extensible YAML format (defined in a +separate document), which specifies, for each eventName, the fields that +are required, what field values may be sent, and any special handling +that should be performed on those eventNames. + +Naming Standards for eventName +------------------------------ + +To prevent naming collisions, eventNames sent as part of the +commonEventHeader, should conform to the following naming convention +designed to summarize the purpose and type of the event, and to ensure +the uniqueness of the eventName: + + {DomainAbbreviation}_{PublisherName}_{Description} + +Each underscore-separated subfield above must start with a capital +letter and use camel-casing to separate words and acronyms. Acronyms +must capitalize only the first letter of the acronym. Spaces and +underscores should not appear within any subfield. + +The DomainAbbreviation subfield derives from the ‘domain’ field in the +commonEventHeader, as specified below: + +- ‘Fault’ for the fault domain + +- ‘Heartbeat’ for the heartbeat domain + +- ‘Measurement’ for the measurements domain + +- ‘MobileFlow’ for the mobileFlow domain + +- ‘Other’ for the other domain + +- ‘PnfReg’ for the pnfRegistration domain + +- ‘SipSignaling’ for the sipSignaling domain + +- ‘StateChange’ for the stateChange domain + +- ‘Syslog’ for the syslog domain + +- ‘Tca’ for the thresholdCrossingAlert domain + +- ‘VoiceQuality’ for the voiceQuality domain + +The PublisherName subfield describes the vendor product or application +publishing the event. This subfield conforms to the following +conventions: + +- Vendor products are specified as: + +{productName}-{vendorName} + + For example: Visbc-Metaswitch or Vdbe-Juniper, where a hyphen is used + to separate the productName and vendorName subfields. Note that the + productName and vendorName subfields must not include hyphens + themselves. + + Organizing the information in this way will cause an alphabetical + listing of eventNames to sort similar network functions together, + rather than to sort them by vendor. + + The productName subfield may describe a NF or a NFC. Where NFC names + may be reused across different NF’s, they should be specified as: + +{NfName}:{NfcName} + + where a colon is used to separate the NfName and NfcName subfields. + Note that the NfName and NfcName subfields must not include colons + themselves. + + The ProductName may also describe other types of vendor modules or + components such as a VM, application or hostname. As with NFs and + NFCs, parent:child relationships may be communicated using colon as a + subfield delimiter. + +- Service providers who adopt the VES Common Event Format for internal + use, may provide PublisherName without the vendorName subfield. They + would typically identify an application, system, service or + microservice publishing the event (e.g., ‘Policy’, ‘So’, + ‘MobileCallRecording’ or ‘Dkat’). As with NFs and NFCs, parent:child + relationships may be communicated using colon as a subfield delimiter + (e.g., ApplicationName:ApplicationComponent). + +The final subfield of the eventName name should describe, in a compact +camel case format the specific information being conveyed by the event. +In some cases, this final subfield may not be required (e.g., in the +case of certain heartbeats). + +Examples of eventNames following the naming standards are provided +below: + +- Tca_Vdbe-Ericsson_CpuThresholdExceeded + +- Heartbeat_Visbc:Mmc-Metaswitch + +- Syslog_Vdbe-Ericsson + +- Fault_MobileCallRecording_PilotNumberPoolExhaustion + +- Other_So:WanBonding_InstantiationPart1Complete + +EventId Use Cases Examples +-------------------------- + +[Author: Alok Gupta]: + +eventId Examples: + +Example 1: assumes a unique key for each domain consisting of domain +followed by an integer domainnnnnnn e.g. fault000001, heartbeat000001, +mfvs000005 + +Example 2: assumes an integer key for all events nnnnnnnnn: 000000001, +00000002, 000000003 + +Rules: + +1. All domains except Fault: each time a subsequent event is sent the + integer part of eventId will increment by 1. Repeat of eventId + assumes duplicate event. Sequence number is set to 0 for all domains + except fault. + +2. eventId construction for Fault Events: + + a. Most likely scenario + + i. The sourceName on each Fault event is the vNFC Name or VM + hostname. + + ii. The eventId on Fault events is the same every time a given + fault is raised (onset), re-raised at fixed time interval, + until it is cleared. Once the fault is cleared, a new eventId + is used. + + iii. The startEpochMicrosec value for the Fault event is the + timestamp for when that event is generated until a clear is + sent. + + iv. lastEpochMicrosec indicates the current event time. + + v. The sequence number for each Fault event is set to 1 when the + event is first raised, and increments each time the same + Fault event is raised, until a clear is sent. + + |image0| + + b. Alternative scenario: for vNF when fault event status is not + maintained. + + vi. The sourceName on each Fault event is the vNFC Name or VM + hostname. + + vii. The eventId on Fault events is the same every time a given + fault is raised or cleared, even if it is re-raised after it + had previously cleared. So, for example, if EMS loses + contact with a particular device then a Fault event might be + sent for a raise, re-raise (because EMS has re-tried and + still can’t contact the device), clear (because EMS has + re-tried and it can contact the device) and then raise again + (because EMS has lost contact with the device again). The + same eventId is used for all 4 of those Fault events. + + viii. The startEpochMicrosec value for each Fault event is the + timestamp for when that event is generated, not when the + fault first occurred. So all 4 of the Fault events in the + previous bullet point would have a different timestamp. + + ix. lastEpochMicrosec indicates the current event time. + + x. The sequence number for each Fault event is currently set to + 0 on a raise and 1 on a clear. We could change that so that + each Fault event is given a new monotonically increasing + sequence number whether it is a raise or a clear if that is + helpful (which is reset to 0 if the VM restarts) but they + won’t be consecutive. + +|image1| + +Measurement Expansion Fields +---------------------------- + +When expansion fields are used, the goal is to avoid custom development +by the service provider collecting the fields, since custom development +adds obvious cost, delay and resource overhead. In the domain of +measurements, it is expected that a high percentage (perhaps as high as +90 percent) of use cases for extensible fields can be satisfied by using +the additionalMeasurements arrayOfNamedHashMap data structure in +combination with a YAML registration file (provided at design time). The +YAML registration file conveys meta-information about the processing of +additionalMeasurements. For more information, please see the VES Event +Registration specification and in particular the aggregationRole, castTo +and isHomogeneous keywords. + +Syslogs +------- + +Syslog’s can be classified as either Control or Session/Traffic. They +differ by message content and expected volume: + +- Control logs are generally free-form human-readable text used for + reporting errors or warnings supporting the operation and + troubleshooting of NFs. The volume of these logs is typically less + than 2k per day. + +- Session logs use common structured fields to report normal NF + processing such as DNS lookups or firewall rules processed. The + volume of these logs is typically greater than 1k per hour (and + sometimes as high as 10k per second). + +VES supports both classes of syslog, however VES is only recommended for +control logs or for lower volume session logs, less than 60k per hour. +High volume session logging should use a file-based transport solution. + +Support for Protocols Other Than HTTPS +-------------------------------------- + +This API specification describes an HTTPS RESTful interface using the +JSON content-type. + +Alternative API specifications may be provided in future using Google +Protobuf, websockets, or Apache Avro. + +Versioning +---------- + +Three types of version numbers supported by this specification: + +- The API specification itself is versioned. Going forward, the major + number of the specification version will be incremented whenever any + change could break an existing client (e.g., a field name is deleted + or changed). All other changes to the spec (e.g., a field name is + added or text changes are made to the specification itself) will + increment only the minor number or patch number. Note that the major + number appears in REST resource URLs as v# (where ‘#’ is the major + number). Minor and patch numbers are communicated in HTTP headers. + For more information, see the API Versioning writeup in section 6.1. + +- The JSON schema is versioned. Going forward, the major number of the + JSON schema will be incremented whenever any change could break an + existing client (e.g., a field name is deleted or changed). All other + changes to the schema (e.g., a field name is added or text changes + are made to the field descriptions) will increment only the minor + number or patch number. + +- The field blocks are versioned. Field blocks include the + commonEventHeader and the domain blocks (e.g., the faultFields + block). Going forward, the major number of each field block will be + incremented whenever any change to that block could break an existing + client (e.g., a field name is deleted or changed). All other changes + to that block (e.g., a field name is added or text changes are made + to the field descriptions) will increment only the minor number. + +Field Block Versions +~~~~~~~~~~~~~~~~~~~~ + +A summary of the latest field block versions as of this version of the +API spec is provided below: + +- commonEventHeader version:4.0.1 + +- commonEventHeader vesEventListenerVersion: 7.0.1 + +- faultFieldsVersion:4.0 + +- heartbeatFieldsVersion: 3.0 + +- measurementFieldsVersion: 4.0 + +- mobileFlowFieldsVersion: 4.0 + +- notificationFieldsVersion: 2.0 + +- otherFieldsVersion: 3.0 + +- pnfRegistrationFieldsVersion: 2.0 + +- sigSignalingFieldsVersion: 3.0 + +- stateChangeFieldsVersion: 4.0 + +- syslogFieldsVersion: 4.0 + +- thresholdCrossingFieldsVersion: 4.0 + +- voiceQualityFieldsVersion: 4.0 + +Security +======== + +Event sources must identify themselves to the VES Event Listener. + +In the future, support for 2-way SSL certificate authentication (aka +mutual SSL) will be provided but for now, event source credentials are +passed using HTTP `Basic +Authentication <http://tools.ietf.org/html/rfc2617>`__. + +Credentials must not be passed on the query string. Credentials must be +sent in an Authorization header as follows: + +1. The username and password are formed into one string as + “username:password” + +2. The resulting string is Base64 encoded to produce the encoded + credential. + +3. The encoded credential is communicated in the header after the string + “Authorization: Basic “ + +Because the credentials are merely encoded but not encrypted, HTTPS +(rather than HTTP) should be used. HTTPS will also encrypt and protect +event contents. TLS 1.2 or higher must be used. + +Examples are provided below. + +Sample Request and Response +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Sample Request +^^^^^^^^^^^^^^ + ++---------------------------------------------------------------+ +| POST /eventListener/v7 HTTP/1.1 | +| | +| Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | +| | +| content-type: application/json | +| | +| | content-length: 12345 | +| | { | +| | +| "event": { | +| | +| "commonEventHeader": { | +| | +| "version": "4.0.1", | +| | +| "vesEventListenerVersion": "7.0.1", | +| | +| "domain": "heartbeat", | +| | +| "eventName": "Heartbeat_vIsbcMmc", | +| | +| "eventId": "heartbeat0000249", | +| | +| "sequence": 0, | +| | +| "priority": "Normal", | +| | +| "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", | +| | +| "reportingEntityName": "ibcx0001vm002oam001", | +| | +| "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014", | +| | +| "sourceName": "ibcx0001vm002ssc001", | +| | +| "nfVendorName": "Ericsson", | +| | +| "nfNamingCode": "ibcx", | +| | +| "nfcNamingCode": "ssc", | +| | +| "startEpochMicrosec": 1413378172000000, | +| | +| "lastEpochMicrosec": 1413378172000000, | +| | +| "timeZoneOffset": "UTC-05:30" | +| | +| } | +| | +| } | +| | +| } | ++---------------------------------------------------------------+ + +Sample Success Response +^^^^^^^^^^^^^^^^^^^^^^^ + ++------------------------+ +| HTTPS/1.1 202 Accepted | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.1 | ++------------------------+ + +Resource Structure +================== + +REST resources are defined with respect to a ServerRoot: + +ServerRoot = /{optionalRoutingtPath} + +The resource structure is provided below: + +|image2| + +Figure 1 – REST Resource Structure + +The {Domain} or FQDN above is typically provisioned into each +eventsource when it is instantiated. The {Port} above is typically 8443. + +Common Event Format +=================== + +A JSON schema describing the Common Event Format is provided below and +is reproduced in the tables that follow. + +Note on optional fields: + + If the event publisher collects a field that is identified as + optional in the data structures below, then the event publisher + *must* send that field. + +Note on extensible fields: + + VES contains various extensible structures (e.g., hashMap) that + enable event publishers to send information that has not been + explicitly defined in VES data structures. + +- Event publishers *must not* send information through extensible + structures where VES has explicitly defined fields for that + information. For example, event publishers *must not* send + information like cpuIdle, through an extensible structure, because + VES has explicitly defined a cpuUsage.cpuIdle field for the + communication of that information. + +- Keys sent through extensible fields must use camel casing to separate + words and acronyms; only the first letter of each acronym shall be + capitalized. + +Common Event Datatypes +---------------------- + +.. _common-event-datatypes-1: + +Common Event Datatypes +~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: arrayOfJsonObject +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The arrayOfJsonObject datatype provides an array of json objects, each +of which is described by name, schema and other meta-information. It +consists of the following fields: + ++-------------------+----------------+-----------+---------------------+ +| Field | Type | Required? | Description | ++===================+================+===========+=====================+ +| arrayOfJsonObject | jsonObject [ ] | Yes | Array of jsonObject | ++-------------------+----------------+-----------+---------------------+ + +Datatype: arrayOfNamedHashMap +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The arrayOfNamedHashMap datatype provides an array of hashMaps, each of +which is associated with a descriptive name. It consists of the +following fields: + ++---------------------+------------------+-----------+-----------------------+ +| Field | Type | Required? | Description | ++=====================+==================+===========+=======================+ +| arrayOfNamedHashMap | namedHashMap [ ] | Yes | Array of namedHashMap | ++---------------------+------------------+-----------+-----------------------+ + +Datatype: event +^^^^^^^^^^^^^^^ + +The event datatype consists of the following fields which constitute the +‘root level’ of the common event format: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| commonEventHead | commonEventHead | Yes | Fields common | +| er | er | | to all events | ++-----------------+-----------------+-----------------+-----------------+ +| faultFields | faultFields | No | Fields specific | +| | | | to fault events | ++-----------------+-----------------+-----------------+-----------------+ +| heartbeatFields | heartbeatFields | No | Fields specific | +| | | | to heartbeat | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| measurementFiel | measurementFiel | No | Fields specific | +| ds | ds | | to measurement | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| mobileFlowField | mobileFlowField | No | Fields specific | +| s | s | | to mobility | +| | | | flow events | ++-----------------+-----------------+-----------------+-----------------+ +| notificationFie | notificationFie | No | Fields specific | +| lds | lds | | to notification | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| otherFields | otherFields | No | Fields specific | +| | | | to other types | +| | | | of events | ++-----------------+-----------------+-----------------+-----------------+ +| pnfRegistration | pnfRegistration | No | Fields specific | +| Fields | Fields | | to | +| | | | pnfRegistration | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| sipSignalingFie | sipSignalingFie | No | Fields specific | +| lds | lds | | to sipSignaling | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| stateChangeFiel | stateChangeFiel | No | Fields specific | +| ds | ds | | to state change | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| syslogFields | syslogFields | No | Fields specific | +| | | | to syslog | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| thresholdCrossi | thresholdCrossi | No | Fields specific | +| ngAlertFields | ngAlertFields | | to threshold | +| | | | crossing alert | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ +| voiceQualityFie | voiceQualityFie | No | Fields specific | +| lds | lds | | to voiceQuality | +| | | | events | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: eventList +^^^^^^^^^^^^^^^^^^^ + +The eventList datatype consists of the following fields: + ++-----------+-----------+-----------+-----------------+ +| Field | Type | Required? | Description | ++===========+===========+===========+=================+ +| eventList | event [ ] | Yes | Array of events | ++-----------+-----------+-----------+-----------------+ + +Datatype: hashMap +^^^^^^^^^^^^^^^^^ + +The hashMap datatype is an ‘associative array’, which is an unordered +collection of key-value pairs of the form “key”: “value”, where each key +and value are strings. Keys must use camel casing to separate words and +acronyms; only the first letter of each acronym shall be capitalized. + +Datatype: jsonObject +^^^^^^^^^^^^^^^^^^^^ + +The jsonObject datatype provides a json object schema, name and other +meta-information along with one or more object instances that conform to +the schema: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| objectInstances | JsonObjectInsta | Yes | Contains one or | +| | nce | | more instances | +| | [ ] | | of the json | +| | | | object | ++-----------------+-----------------+-----------------+-----------------+ +| objectName | string | Yes | Name of the | +| | | | json object | ++-----------------+-----------------+-----------------+-----------------+ +| objectSchema | string | No | json schema for | +| | | | the object | ++-----------------+-----------------+-----------------+-----------------+ +| objectSchemaUrl | string | No | URL to the json | +| | | | schema for the | +| | | | object | ++-----------------+-----------------+-----------------+-----------------+ +| nfSubscribedObj | string | No | Name of the | +| ectName | | | object | +| | | | associated with | +| | | | the | +| | | | nfSubscriptionI | +| | | | d | ++-----------------+-----------------+-----------------+-----------------+ +| nfSubscriptionI | string | No | Identifies an | +| d | | | openConfig | +| | | | telemetry | +| | | | subscription on | +| | | | a network | +| | | | function, which | +| | | | configures the | +| | | | network | +| | | | function to | +| | | | send complex | +| | | | object data | +| | | | associated with | +| | | | the jsonObject | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: jsonObjectInstance +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The jsonObjectInstance datatype provides meta-information about an +instance of a jsonObject along with the actual object instance: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| jsonObject | jsonObject | No | Optional | +| | | | recursive | +| | | | specification | +| | | | of jsonObject | ++-----------------+-----------------+-----------------+-----------------+ +| objectInstance | object | No | Contains an | +| | | | instance | +| | | | conforming to | +| | | | the jsonObject | +| | | | schema | ++-----------------+-----------------+-----------------+-----------------+ +| objectInstanceE | number | No | the unix time, | +| pochMicrosec | | | aka epoch time, | +| | | | associated with | +| | | | this | +| | | | objectInstance- | +| | | | -as | +| | | | microseconds | +| | | | elapsed since 1 | +| | | | Jan 1970 not | +| | | | including leap | +| | | | seconds | ++-----------------+-----------------+-----------------+-----------------+ +| objectKeys | key [ ] | No | An ordered set | +| | | | of keys that | +| | | | identifies this | +| | | | particular | +| | | | instance of | +| | | | jsonObject | +| | | | (e.g., that | +| | | | places it in a | +| | | | hierarchy) | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: key +^^^^^^^^^^^^^ + +The key datatype is a tuple which provides the name of a key along with +its value and relative order; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| keyName | string | Yes | Name of the key | ++-----------------+-----------------+-----------------+-----------------+ +| keyOrder | Integer | No | Relative | +| | | | sequence or | +| | | | order of the | +| | | | key (with | +| | | | respect to | +| | | | other keys) | ++-----------------+-----------------+-----------------+-----------------+ +| keyValue | string | No | Value of the | +| | | | key | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: namedHashMap +^^^^^^^^^^^^^^^^^^^^^^ + +The namedHashMap datatype is a hashMap which is associated with and +described by a name; it consists of the following fields: + ++---------+---------+-----------+------------------------------------------------+ +| Field | Type | Required? | Description | ++=========+=========+===========+================================================+ +| name | string | Yes | Name associated with or describing the hashmap | ++---------+---------+-----------+------------------------------------------------+ +| hashMap | hashMap | Yes | One or more key:value pairs | ++---------+---------+-----------+------------------------------------------------+ + +Datatype: requestError +^^^^^^^^^^^^^^^^^^^^^^ + +The requestError datatype defines the standard request error data +structure: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| messageId | string | Yes | Unique message | +| | | | identifier of | +| | | | the format | +| | | | ‘ABCnnnn’ where | +| | | | ‘ABC’ is either | +| | | | ‘SVC’ for | +| | | | Service | +| | | | Exceptions or | +| | | | ‘POL’ for | +| | | | Policy | +| | | | Exception. | +| | | | Exception | +| | | | numbers may be | +| | | | in the range of | +| | | | 0001 to 9999 | +| | | | where 0001 to | +| | | | 2999 are | +| | | | defined by OMA | +| | | | (see section | +| | | | 5.1) and | +| | | | 3000-9999 are | +| | | | available and | +| | | | undefined. | ++-----------------+-----------------+-----------------+-----------------+ +| text | string | Yes | Message text, | +| | | | with | +| | | | replacement | +| | | | variables | +| | | | marked with %n, | +| | | | where n is an | +| | | | index into the | +| | | | list of | +| | | | <variables> | +| | | | elements, | +| | | | starting at 1 | ++-----------------+-----------------+-----------------+-----------------+ +| url | string | No | Hyperlink to a | +| | | | detailed error | +| | | | resource e.g., | +| | | | an HTML page | +| | | | for browser | +| | | | user agents | ++-----------------+-----------------+-----------------+-----------------+ +| variables | string | No | List of zero or | +| | | | more strings | +| | | | that represent | +| | | | the contents of | +| | | | the variables | +| | | | used by the | +| | | | message text | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: vendorNfNameFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The vendorNfNameFields provides vendor, nf and nfModule identifying +information: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| vendorName | string | Yes | Network | +| | | | function vendor | +| | | | name | ++-----------------+-----------------+-----------------+-----------------+ +| nfModuleName | string | No | Name of the | +| | | | nfModule | +| | | | generating the | +| | | | event | ++-----------------+-----------------+-----------------+-----------------+ +| nfName | string | No | Name of the | +| | | | network | +| | | | function | +| | | | generating the | +| | | | event | ++-----------------+-----------------+-----------------+-----------------+ + +‘Common Event Header’ Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: commonEventHeader +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The commonEventHeader datatype consists of the following fields common +to all events: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| domain | string | Yes | Event domain | +| | | | enumeration: | +| | | | ‘fault’, | +| | | | ‘heartbeat’, | +| | | | ‘measurement’, | +| | | | ‘mobileFlow’, | +| | | | ‘notification’, | +| | | | ‘other’, | +| | | | ‘pnfRegistratio | +| | | | n’, | +| | | | ‘sipSignaling’, | +| | | | ‘stateChange’, | +| | | | ‘syslog’, | +| | | | ‘thresholdCross | +| | | | ingAlert’, | +| | | | ‘voiceQuality’ | ++-----------------+-----------------+-----------------+-----------------+ +| eventId | string | Yes | Event key that | +| | | | is unique to | +| | | | the event | +| | | | source. | +| | | | The key must be | +| | | | unique within | +| | | | notification | +| | | | life cycle | +| | | | similar to | +| | | | EventID from | +| | | | 3GPP. It could | +| | | | be a sequential | +| | | | number, or a | +| | | | composite key | +| | | | formed from the | +| | | | event fields, | +| | | | such as | +| | | | domain_sequence | +| | | | . | +| | | | The eventId | +| | | | should not | +| | | | include | +| | | | whitespace. For | +| | | | fault events, | +| | | | eventId is the | +| | | | eventId of the | +| | | | initial alarm; | +| | | | if the same | +| | | | alarm is raised | +| | | | again for | +| | | | changed, | +| | | | acknowledged or | +| | | | cleared cases, | +| | | | eventId must be | +| | | | the same as the | +| | | | initial alarm | +| | | | (along with the | +| | | | same | +| | | | startEpochMicro | +| | | | sec | +| | | | but with a | +| | | | different | +| | | | sequence | +| | | | number). Note: | +| | | | see section 1.3 | +| | | | for eventId use | +| | | | case examples. | ++-----------------+-----------------+-----------------+-----------------+ +| eventName | string | Yes | Unique event | +| | | | name (see | +| | | | section 1.2 for | +| | | | more | +| | | | information) | ++-----------------+-----------------+-----------------+-----------------+ +| eventType | string | No | For example: | +| | | | ‘applicationNf’ | +| | | | , | +| | | | ‘guestOS’, | +| | | | ‘hostOS’, | +| | | | ‘platform’ | ++-----------------+-----------------+-----------------+-----------------+ +| internalHeader | internalHeader | No | Fields (not | +| Fields | Fields | | supplied by | +| | | | event sources) | +| | | | that the VES | +| | | | Event Listener | +| | | | service can use | +| | | | to enrich the | +| | | | event if needed | +| | | | for efficient | +| | | | internal | +| | | | processing. | +| | | | This is an | +| | | | empty object | +| | | | which is | +| | | | intended to be | +| | | | defined | +| | | | separately by | +| | | | each service | +| | | | provider (e.g., | +| | | | AT&T) | +| | | | implementing | +| | | | the VES Event | +| | | | Listener. | ++-----------------+-----------------+-----------------+-----------------+ +| lastEpochMicros | number | Yes | the latest unix | +| ec | | | time aka epoch | +| | | | time associated | +| | | | with the event | +| | | | from any | +| | | | component--as | +| | | | microseconds | +| | | | elapsed since 1 | +| | | | Jan 1970 not | +| | | | including leap | +| | | | seconds | ++-----------------+-----------------+-----------------+-----------------+ +| nfcNamingCode | string | No | Network | +| | | | function | +| | | | component type: | +| | | | 3 characters | +| | | | (aligned with | +| | | | vfc naming | +| | | | standards) | ++-----------------+-----------------+-----------------+-----------------+ +| nfNamingCode | string | No | Network | +| | | | function type: | +| | | | 4 characters | +| | | | (aligned with | +| | | | vnf and pnf | +| | | | naming | +| | | | standards) | ++-----------------+-----------------+-----------------+-----------------+ +| nfVendorName | string | No | Network | +| | | | function vendor | +| | | | name | ++-----------------+-----------------+-----------------+-----------------+ +| priority | string | Yes | Processing | +| | | | priority | +| | | | enumeration: | +| | | | ‘High’, | +| | | | ‘Medium’, | +| | | | ‘Normal’, ‘Low’ | ++-----------------+-----------------+-----------------+-----------------+ +| reportingEntity | string | No | UUID | +| Id | | | identifying the | +| | | | entity | +| | | | reporting the | +| | | | event or | +| | | | detecting a | +| | | | problem in | +| | | | another vnf/vm | +| | | | or pnf which is | +| | | | experiencing | +| | | | the problem. | +| | | | (Note: the AT&T | +| | | | internal | +| | | | enrichment | +| | | | process shall | +| | | | ensure that | +| | | | this field is | +| | | | populated). The | +| | | | reportingEntity | +| | | | Id | +| | | | is an id for | +| | | | the | +| | | | reportingEntity | +| | | | Name. | +| | | | See | +| | | | ‘reportingEntit | +| | | | yName’ | +| | | | for more | +| | | | information. | ++-----------------+-----------------+-----------------+-----------------+ +| reportingEntity | string | Yes | Name of the | +| Name | | | entity | +| | | | reporting the | +| | | | event or | +| | | | detecting a | +| | | | problem in | +| | | | another vnf/vm | +| | | | or pnf which is | +| | | | experiencing | +| | | | the problem. | +| | | | May be the same | +| | | | as the | +| | | | sourceName. For | +| | | | synthetic | +| | | | events | +| | | | generated by | +| | | | DCAE, it is the | +| | | | name of the app | +| | | | generating the | +| | | | event. | ++-----------------+-----------------+-----------------+-----------------+ +| sequence | integer | Yes | Ordering of | +| | | | events | +| | | | communicated by | +| | | | an event source | +| | | | instance (or 0 | +| | | | if not needed) | ++-----------------+-----------------+-----------------+-----------------+ +| sourceId | string | No | UUID | +| | | | identifying the | +| | | | entity | +| | | | experiencing | +| | | | the event | +| | | | issue, which | +| | | | may be detected | +| | | | and reported by | +| | | | a separate | +| | | | reporting | +| | | | entity (note: | +| | | | the AT&T | +| | | | internal | +| | | | enrichment | +| | | | process shall | +| | | | ensure that | +| | | | this field is | +| | | | populated). The | +| | | | sourceId is an | +| | | | id for the | +| | | | sourceName. See | +| | | | ‘sourceName’ | +| | | | for more | +| | | | information. | ++-----------------+-----------------+-----------------+-----------------+ +| sourceName | string | Yes | Name of the | +| | | | entity | +| | | | experiencing | +| | | | the event | +| | | | issue, which | +| | | | may be detected | +| | | | and reported by | +| | | | a separate | +| | | | reporting | +| | | | entity. The | +| | | | sourceName | +| | | | identifies the | +| | | | device for | +| | | | which data is | +| | | | collected. A | +| | | | valid | +| | | | sourceName must | +| | | | be inventoried | +| | | | in A&AI. If | +| | | | sourceName is a | +| | | | xNFC or VM, | +| | | | then the event | +| | | | must be | +| | | | reporting data | +| | | | for that | +| | | | particular xNFC | +| | | | or VM. If the | +| | | | sourceName is a | +| | | | xNF, comprised | +| | | | of multiple | +| | | | xNFCs, the data | +| | | | must be | +| | | | reported/aggreg | +| | | | ated | +| | | | at the xNF | +| | | | leveI. Data | +| | | | for individual | +| | | | xNFC must not | +| | | | be included in | +| | | | the xNF | +| | | | sourceName | +| | | | event. | ++-----------------+-----------------+-----------------+-----------------+ +| startEpochMicro | number | Yes | the earliest | +| sec | | | unix time aka | +| | | | epoch time | +| | | | associated with | +| | | | the event from | +| | | | any | +| | | | component--as | +| | | | microseconds | +| | | | elapsed since 1 | +| | | | Jan 1970 not | +| | | | including leap | +| | | | seconds. For | +| | | | measurements | +| | | | and heartbeats, | +| | | | where events | +| | | | are collected | +| | | | over predefined | +| | | | intervals, | +| | | | startEpochMicro | +| | | | sec | +| | | | shall be | +| | | | rounded to the | +| | | | nearest | +| | | | interval | +| | | | boundary (e.g., | +| | | | the epoch | +| | | | equivalent of | +| | | | 3:00PM, 3:10PM, | +| | | | 3:20PM, etc…). | +| | | | For fault | +| | | | events, | +| | | | startEpochMicro | +| | | | sec | +| | | | is the | +| | | | timestamp of | +| | | | the initial | +| | | | alarm; if the | +| | | | same alarm is | +| | | | raised again | +| | | | for changed, | +| | | | acknowledged or | +| | | | cleared cases, | +| | | | startEpoch | +| | | | Microsec must | +| | | | be the same as | +| | | | the initial | +| | | | alarm (along | +| | | | with the same | +| | | | eventId and an | +| | | | incremental | +| | | | sequence | +| | | | number). For | +| | | | devices with no | +| | | | timing source | +| | | | (clock), the | +| | | | default value | +| | | | will be 0 and | +| | | | the VES | +| | | | collector will | +| | | | replace it with | +| | | | Collector time | +| | | | stamp (when the | +| | | | event is | +| | | | received) | ++-----------------+-----------------+-----------------+-----------------+ +| timeZoneOffset | string | No | Offset to GMT | +| | | | to indicate | +| | | | local time zone | +| | | | for device | +| | | | formatted as | +| | | | ‘UTC+/-hh.mm’; | +| | | | see | +| | | | https://en.wiki | +| | | | pedia.org/wiki/ | +| | | | List_of_time_zo | +| | | | ne_abbreviation | +| | | | s | +| | | | for UTC offset | +| | | | examples | ++-----------------+-----------------+-----------------+-----------------+ +| version | string | Yes | Version of the | +| | | | event header as | +| | | | “#.#” where # | +| | | | is a digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| vesEventListene | string | Yes | Version of the | +| rVersion | | | ves event | +| | | | listener api | +| | | | spec that this | +| | | | event is | +| | | | compliant with | +| | | | (as “#” or | +| | | | “#.#” or | +| | | | “#.#.#” where # | +| | | | is a digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use). | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: internalHeaderFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The internalHeaderFields datatype is an undefined object which can +contain arbitrarily complex JSON structures. It is intended to be +defined separately by each service provider (e.g., AT&T) implementing +the VES Event Listener. The fields in internalHeaderFields are not +provided by any event source but instead are added by the VES Event +Listener service itself as part of an event enrichment process necessary +for efficient internal processing of events received by the VES Event +Listener. + +Technology Independent Datatypes +-------------------------------- + +‘Fault’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: faultFields +^^^^^^^^^^^^^^^^^^^^^ + +The faultFields datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| alarmAdditional | hashMap | No | Additional | +| Information | | | alarm | +| | | | information. | +| | | | | +| | | | - Note1: for | +| | | | SNMP mapping | +| | | | to VES, for | +| | | | hash key use | +| | | | OID of | +| | | | varbind, for | +| | | | value use | +| | | | incoming | +| | | | data for | +| | | | that | +| | | | varbind). | +| | | | | +| | | | - Note2: Alarm | +| | | | ID for 3GPP | +| | | | should be | +| | | | included (if | +| | | | applicable) | +| | | | in | +| | | | alarmAdditon | +| | | | alInformation | +| | | | as | +| | | | ‘alarmId’:’a | +| | | | larmIdValue’. | +| | | | | +| | | | Could contain | +| | | | managed object | +| | | | instance as | +| | | | separate | +| | | | key:value; | +| | | | could add | +| | | | probable cause | +| | | | as separate | +| | | | key:value. | ++-----------------+-----------------+-----------------+-----------------+ +| alarmCondition | string | Yes | Short name of | +| | | | the alarm | +| | | | condition/probl | +| | | | em, | +| | | | such as a trap | +| | | | name. Should | +| | | | not have white | +| | | | space (e.g., | +| | | | tpLgCgiNotInCon | +| | | | fig, | +| | | | BfdSessionDown, | +| | | | linkDown, etc…) | ++-----------------+-----------------+-----------------+-----------------+ +| alarmInterfaceA | string | No | Card, port, | +| | | | channel or | +| | | | interface name | +| | | | of the device | +| | | | generating the | +| | | | alarm. This | +| | | | could reflect | +| | | | managed object. | ++-----------------+-----------------+-----------------+-----------------+ +| eventCategory | string | No | Event category, | +| | | | for example: | +| | | | ‘license’, | +| | | | ‘link’, | +| | | | ‘routing’, | +| | | | ‘security’, | +| | | | ‘signaling’ | ++-----------------+-----------------+-----------------+-----------------+ +| eventSeverity | string | Yes | Event severity | +| | | | enumeration: | +| | | | ‘CRITICAL’, | +| | | | ‘MAJOR’, | +| | | | ‘MINOR’, | +| | | | ‘WARNING’, | +| | | | ‘NORMAL’. | +| | | | NORMAL is used | +| | | | to represent | +| | | | clear. | ++-----------------+-----------------+-----------------+-----------------+ +| eventSourceType | string | Yes | Examples: | +| | | | ‘card’, ‘host’, | +| | | | ‘other’, | +| | | | ‘port’, | +| | | | ‘portThreshold’ | +| | | | , | +| | | | ‘router’, | +| | | | ‘slotThreshold’ | +| | | | , | +| | | | ‘switch’, | +| | | | ‘virtualMachine | +| | | | ’, | +| | | | ‘virtualNetwork | +| | | | Function’. | +| | | | This could be | +| | | | managed object | +| | | | class. | ++-----------------+-----------------+-----------------+-----------------+ +| faultFieldsVers | string | Yes | Version of the | +| ion | | | faultFields | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| specificProblem | string | Yes | Description of | +| | | | the alarm or | +| | | | problem (e.g., | +| | | | ‘eNodeB 155197 | +| | | | in PLMN 310-410 | +| | | | with eNodeB | +| | | | name KYL05197 | +| | | | is lost’). 3GPP | +| | | | probable cause | +| | | | would be | +| | | | included in | +| | | | this field. | ++-----------------+-----------------+-----------------+-----------------+ +| vfStatus | string | Yes | Virtual | +| | | | function status | +| | | | enumeration: | +| | | | ‘Active’, | +| | | | ‘Idle’, | +| | | | ‘Preparing to | +| | | | terminate’, | +| | | | ‘Ready to | +| | | | terminate’, | +| | | | ‘Requesting | +| | | | Termination’ | ++-----------------+-----------------+-----------------+-----------------+ + +‘Heartbeat’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: heartbeatFields +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The heartbeatFields datatype is an optional field block for fields +specific to heartbeat events; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | expansion | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| heartbeatFields | string | Yes | Version of the | +| Version | | | heartbeatFields | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| heartbeatInterv | Integer | Yes | Current | +| al | | | heartbeatInterv | +| | | | al | +| | | | in seconds | ++-----------------+-----------------+-----------------+-----------------+ + + ‘Measurements’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Note: NFs are required to report exactly one Measurement event per +period per sourceName. + +Datatype: codecsInUse +^^^^^^^^^^^^^^^^^^^^^ + +The codecsInUse datatype consists of the following fields describing the +number of times an identified codec was used over the +measurementInterval: + ++----------------+---------+-----------+------------------------------+ +| Field | Type | Required? | Description | ++================+=========+===========+==============================+ +| codecIdentifer | string | Yes | Description of the codec | ++----------------+---------+-----------+------------------------------+ +| numberInUse | integer | Yes | Number of such codecs in use | ++----------------+---------+-----------+------------------------------+ + +Datatype: cpuUsage +^^^^^^^^^^^^^^^^^^ + +The cpuUsage datatype defines the usage of an identifier CPU and +consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| cpuCapacityCont | number | No | The amount of | +| ention | | | time the CPU | +| | | | cannot run due | +| | | | to contention, | +| | | | in milliseconds | +| | | | over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| cpuDemandAvg | number | No | The total CPU | +| | | | time that the | +| | | | NF/NFC/VM could | +| | | | use if there | +| | | | was no | +| | | | contention, in | +| | | | milliseconds | +| | | | over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| cpuDemandMhz | number | No | CPU demand in | +| | | | MHz | ++-----------------+-----------------+-----------------+-----------------+ +| cpuDemandPct | number | No | CPU demand as a | +| | | | percentage of | +| | | | the provisioned | +| | | | capacity | ++-----------------+-----------------+-----------------+-----------------+ +| cpuIdentifier | string | Yes | CPU Identifier | ++-----------------+-----------------+-----------------+-----------------+ +| cpuIdle | number | No | Percentage of | +| | | | CPU time spent | +| | | | in the idle | +| | | | task | ++-----------------+-----------------+-----------------+-----------------+ +| cpuLatencyAvg | number | No | Percentage of | +| | | | time the VM is | +| | | | unable to run | +| | | | because it is | +| | | | contending for | +| | | | access to the | +| | | | physical CPUs | ++-----------------+-----------------+-----------------+-----------------+ +| cpuOverheadAvg | number | No | The overhead | +| | | | demand above | +| | | | available | +| | | | allocations and | +| | | | reservations, | +| | | | in milliseconds | +| | | | over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| cpuSwapWaitTime | number | No | Swap wait time, | +| | | | in milliseconds | +| | | | over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageInterru | number | No | Percentage of | +| pt | | | time spent | +| | | | servicing | +| | | | interrupts | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageNice | number | No | Percentage of | +| | | | time spent | +| | | | running user | +| | | | space processes | +| | | | that have been | +| | | | niced | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageSoftIrq | number | No | Percentage of | +| | | | time spent | +| | | | handling soft | +| | | | irq interrupts | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageSteal | number | No | Percentage of | +| | | | time spent in | +| | | | involuntary | +| | | | wait which is | +| | | | neither user, | +| | | | system or idle | +| | | | time and is | +| | | | effectively | +| | | | time that went | +| | | | missing | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageSystem | number | No | Percentage of | +| | | | time spent on | +| | | | system tasks | +| | | | running the | +| | | | kernel | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageUser | number | No | Percentage of | +| | | | time spent | +| | | | running | +| | | | un-niced user | +| | | | space processes | ++-----------------+-----------------+-----------------+-----------------+ +| cpuWait | number | No | Percentage of | +| | | | CPU time spent | +| | | | waiting for I/O | +| | | | operations to | +| | | | complete | ++-----------------+-----------------+-----------------+-----------------+ +| percentUsage | number | Yes | Aggregate cpu | +| | | | usage of the | +| | | | virtual machine | +| | | | on which the | +| | | | xNFC reporting | +| | | | the event is | +| | | | running | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: diskUsage +^^^^^^^^^^^^^^^^^^^ + +The diskUsage datatype defines the usage of a disk and consists of the +following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| diskBusResets | number | No | Number of bus | +| | | | resets over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| diskCommandsAbo | number | No | Number of disk | +| rted | | | commands | +| | | | aborted over | +| | | | the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| diskCommandsAvg | number | No | Average number | +| | | | of commands per | +| | | | second over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| diskFlushReques | number | No | Total flush | +| ts | | | requests of the | +| | | | disk cache over | +| | | | the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| diskFlushTime | number | No | Milliseconds | +| | | | spent on disk | +| | | | cache flushing | +| | | | over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| diskIdentifier | string | Yes | Disk Identifier | ++-----------------+-----------------+-----------------+-----------------+ +| diskIoTimeAvg | number | No | Milliseconds | +| | | | spent doing | +| | | | input/output | +| | | | operations over | +| | | | 1 sec; treat | +| | | | this metric as | +| | | | a device load | +| | | | percentage | +| | | | where 1000ms | +| | | | matches 100% | +| | | | load; provide | +| | | | the average | +| | | | over the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskIoTimeLast | number | No | Milliseconds | +| | | | spent doing | +| | | | input/output | +| | | | operations over | +| | | | 1 sec; treat | +| | | | this metric as | +| | | | a device load | +| | | | percentage | +| | | | where 1000ms | +| | | | matches 100% | +| | | | load; provide | +| | | | the last value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskIoTimeMax | number | No | Milliseconds | +| | | | spent doing | +| | | | input/output | +| | | | operations over | +| | | | 1 sec; treat | +| | | | this metric as | +| | | | a device load | +| | | | percentage | +| | | | where 1000ms | +| | | | matches 100% | +| | | | load; provide | +| | | | the maximum | +| | | | value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskIoTimeMin | number | No | Milliseconds | +| | | | spent doing | +| | | | input/output | +| | | | operations over | +| | | | 1 sec; treat | +| | | | this metric as | +| | | | a device load | +| | | | percentage | +| | | | where 1000ms | +| | | | matches 100% | +| | | | load; provide | +| | | | the minimum | +| | | | value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedReadA | number | No | Number of | +| vg | | | logical read | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | read | +| | | | operations, | +| | | | e.g., two | +| | | | logical reads | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedReadL | number | No | Number of | +| ast | | | logical read | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | read | +| | | | operations, | +| | | | e.g., two | +| | | | logical reads | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | last value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedReadM | number | No | Number of | +| ax | | | logical read | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | read | +| | | | operations, | +| | | | e.g., two | +| | | | logical reads | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | maximum value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedReadM | number | No | Number of | +| in | | | logical read | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | read | +| | | | operations, | +| | | | e.g., two | +| | | | logical reads | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | minimum value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedWrite | number | No | Number of | +| Avg | | | logical write | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | write | +| | | | operations, | +| | | | e.g., two | +| | | | logical writes | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedWrite | number | No | Number of | +| Last | | | logical write | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | write | +| | | | operations, | +| | | | e.g., two | +| | | | logical writes | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | last value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedWrite | number | No | Number of | +| Max | | | logical write | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | write | +| | | | operations, | +| | | | e.g., two | +| | | | logical writes | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | maximum value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskMergedWrite | number | No | Number of | +| Min | | | logical write | +| | | | operations that | +| | | | were merged | +| | | | into physical | +| | | | write | +| | | | operations, | +| | | | e.g., two | +| | | | logical writes | +| | | | were served by | +| | | | one physical | +| | | | disk access; | +| | | | provide the | +| | | | minimum value | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsRead | number | No | Number of | +| Avg | | | octets per | +| | | | second read | +| | | | from a disk or | +| | | | partition; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsRead | number | No | Number of | +| | | | octets per | +| Last | | | second read | +| | | | from a disk or | +| | | | partition; | +| | | | provide the | +| | | | last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsRead | number | No | Number of | +| Max | | | octets per | +| | | | second read | +| | | | from a disk or | +| | | | partition; | +| | | | provide the | +| | | | maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsRead | number | No | Number of | +| Min | | | octets per | +| | | | second read | +| | | | from a disk or | +| | | | partition; | +| | | | provide the | +| | | | minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsWrite | number | No | Number of | +| Avg | | | octets per | +| | | | second written | +| | | | to a disk or | +| | | | partition; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsWrite | number | No | Number of | +| Last | | | octets per | +| | | | second written | +| | | | to a disk or | +| | | | partition; | +| | | | provide the | +| | | | last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsWrite | number | No | Number of | +| Max | | | octets per | +| | | | second written | +| | | | to a disk or | +| | | | partition; | +| | | | provide the | +| | | | maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOctetsWrite | number | No | Number of | +| Min | | | octets per | +| | | | second written | +| | | | to a disk or | +| | | | partition; | +| | | | provide the | +| | | | minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsReadAvg | number | No | Number of read | +| | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsReadLast | number | No | Number of read | +| | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsReadMax | number | No | Number of read | +| | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsReadMin | number | No | Number of read | +| | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsWriteAvg | number | No | Number of write | +| | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsWriteLas | number | No | Number of write | +| t | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsWrite | number | No | Number of write | +| Max | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskOpsWriteMin | number | No | Number of write | +| | | | operations per | +| | | | second issued | +| | | | to the disk; | +| | | | provide the | +| | | | minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskPendingOper | number | No | Queue size of | +| ationsAvg | | | pending I/O | +| | | | operations per | +| | | | second; provide | +| | | | the average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskPendingOper | number | No | Queue size of | +| ationsLast | | | pending I/O | +| | | | operations per | +| | | | second; provide | +| | | | the last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskPendingOper | number | No | Queue size of | +| ationsMax | | | pending I/O | +| | | | operations per | +| | | | second; provide | +| | | | the maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskPendingOper | number | No | Queue size of | +| ationsMin | | | pending I/O | +| | | | operations per | +| | | | second; provide | +| | | | the minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskReadCommand | number | No | Average number | +| sAvg | | | of read | +| | | | commands issued | +| | | | per second to | +| | | | the disk over | +| | | | the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTime | number | No | Nanoseconds | +| | | | spent on disk | +| | | | cache | +| | | | reads/writes | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeReadAvg | number | No | Milliseconds a | +| | | | read operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeRead | number | No | Milliseconds a | +| Last | | | read operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeRead | number | No | Milliseconds a | +| Max | | | read operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeRead | number | No | Milliseconds a | +| Min | | | read operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeWrite | number | No | Milliseconds a | +| Avg | | | write operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | average | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeWrite | number | No | Milliseconds a | +| Last | | | write operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | last | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeWrite | number | No | Milliseconds a | +| Max | | | write operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | maximum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTimeWrite | number | No | Milliseconds a | +| Min | | | write operation | +| | | | took to | +| | | | complete; | +| | | | provide the | +| | | | minimum | +| | | | measurement | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTotalReadLa | number | No | Average read | +| tencyAvg | | | time from the | +| | | | perspective of | +| | | | a Guest OS: sum | +| | | | of the Kernel | +| | | | Read Latency | +| | | | and Physical | +| | | | Device Read | +| | | | Latency in | +| | | | milliseconds | +| | | | over the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskTotalWriteL | number | No | Average write | +| atencyAvg | | | time from the | +| | | | perspective of | +| | | | a Guest OS: sum | +| | | | of the Kernel | +| | | | Write Latency | +| | | | and Physical | +| | | | Device Write | +| | | | Latency in | +| | | | milliseconds | +| | | | over the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| diskWeightedIoT | number | No | Measure in ms | +| imeAvg | | | over 1 sec of | +| | | | both I/O | +| | | | completion time | +| | | | and the backlog | +| | | | that may be | +| | | | accumulating. | +| | | | Value is the | +| | | | average within | +| | | | the collection | +| | | | interval. | ++-----------------+-----------------+-----------------+-----------------+ +| diskWeightedIoT | number | No | Measure in ms | +| imeLast | | | over 1 sec of | +| | | | both I/O | +| | | | completion time | +| | | | and the backlog | +| | | | that may be | +| | | | accumulating. | +| | | | Value is the | +| | | | last within the | +| | | | collection | +| | | | interval. | ++-----------------+-----------------+-----------------+-----------------+ +| diskWeightedIoT | number | No | Measure in ms | +| imeMax | | | over 1 sec of | +| | | | both I/O | +| | | | completion time | +| | | | and the backlog | +| | | | that may be | +| | | | accumulating. | +| | | | Value is the | +| | | | maximum within | +| | | | the collection | +| | | | interval. | ++-----------------+-----------------+-----------------+-----------------+ +| diskWeightedIoT | number | No | Measure in ms | +| imeMin | | | over 1 sec of | +| | | | both I/O | +| | | | completion time | +| | | | and the backlog | +| | | | that may be | +| | | | accumulating. | +| | | | Value is the | +| | | | minimum within | +| | | | the collection | +| | | | interval. | ++-----------------+-----------------+-----------------+-----------------+ +| diskWriteComman | number | No | Average number | +| dsAvg | | | of write | +| | | | commands issued | +| | | | per second to | +| | | | the disk over | +| | | | the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: filesystemUsage +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The filesystemUsage datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| filesystemName | string | Yes | File system | +| | | | name | ++-----------------+-----------------+-----------------+-----------------+ +| blockConfigured | number | Yes | Configured | +| | | | block storage | +| | | | capacity in GB | ++-----------------+-----------------+-----------------+-----------------+ +| blockIops | number | Yes | Block storage | +| | | | input-output | +| | | | operations per | +| | | | second | ++-----------------+-----------------+-----------------+-----------------+ +| blockUsed | number | Yes | Used block | +| | | | storage | +| | | | capacity in GB | ++-----------------+-----------------+-----------------+-----------------+ +| ephemeralConfig | number | Yes | Configured | +| ured | | | ephemeral | +| | | | storage | +| | | | capacity in GB | ++-----------------+-----------------+-----------------+-----------------+ +| ephemeralIops | number | Yes | Ephemeral | +| | | | storage | +| | | | input-output | +| | | | operations per | +| | | | second | ++-----------------+-----------------+-----------------+-----------------+ +| ephemeralUsed | number | Yes | Used ephemeral | +| | | | storage | +| | | | capacity in GB | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: hugePages +^^^^^^^^^^^^^^^^^^^ + +The hugePages datatype provides metrics on system hugePages; it consists +of the following fields: + ++---------------------+--------+-----------+-------------------------------------+ +| Field | Type | Required? | Description | ++=====================+========+===========+=====================================+ +| bytesFree | number | No | Number of free hugePages in bytes | ++---------------------+--------+-----------+-------------------------------------+ +| bytesUsed | number | No | Number of used hugePages in bytes | ++---------------------+--------+-----------+-------------------------------------+ +| hugePagesIdentifier | string | Yes | HugePages identifier | ++---------------------+--------+-----------+-------------------------------------+ +| percentFree | number | No | Number of free hugePages in percent | ++---------------------+--------+-----------+-------------------------------------+ +| percentUsed | number | No | Number of used hugePages in percent | ++---------------------+--------+-----------+-------------------------------------+ +| vmPageNumberFree | number | No | Number of free vmPages in numbers | ++---------------------+--------+-----------+-------------------------------------+ +| vmPageNumberUsed | number | No | Number of used vmPages in numbers | ++---------------------+--------+-----------+-------------------------------------+ + +Datatype: ipmi (Intelligent Platform Management Interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ipmi datatype provides intelligent platform management interface +metrics; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| exitAirTemperat | number | No | System fan exit | +| ure | | | air flow | +| | | | temperature in | +| | | | Celsius | ++-----------------+-----------------+-----------------+-----------------+ +| frontPanelTempe | number | No | Front panel | +| rature | | | temp in Celsius | ++-----------------+-----------------+-----------------+-----------------+ +| ioModuleTempera | number | No | Io module temp | +| ture | | | in Celsius | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiBaseboardTe | ipmiBaseboard | No | Array of | +| mperatureArray | Temperature [ ] | | ipmiBaseboard | +| | | | Temperature | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiBaseboardVo | ipmiBaseboard | No | Array of | +| ltageRegulator | VoltageRegulato | | ipmiBaseboard | +| Array | r | | VoltageRegulato | +| | [ ] | | r | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiBatteryArra | ipmiBattery [ ] | No | Array of | +| y | | | ipmiBattery | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiFanArray | ipmiFan [ ] | No | Array of | +| | | | ipmiFan objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiGlobalAggre | ipmiGlobalAggre | No | ipmi global | +| gateTemperature | gate | | aggregate | +| | | | temperature | +| MarginArray | TemperatureMarg | | margin | +| | in | | | +| | [ ] | | | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiHsbpArray | ipmiHsbp [ ] | No | Array of | +| | | | ipmiHsbp | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiNicArray | ipmiNic [ ] | No | Array of | +| | | | ipmiNic objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiPowerSupply | ipmiPowerSupply | No | Array of | +| Array | [ ] | | ipmiPowerSupply | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiProcessorAr | ipmiProcessor [ | No | Array of | +| ray | ] | | ipmiProcessor | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| systemAirflow | number | No | Airflow in | +| | | | cubic feet per | +| | | | minute (cfm) | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiBaseboardTemperature +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ipmiBaseboardTemperature datatype consists of the following fields +which describe ipmi baseboard temperature metrics: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| baseboardTemper | number | No | Baseboard | +| ature | | | temperature in | +| | | | celsius | ++-----------------+-----------------+-----------------+-----------------+ +| baseboardTemper | string | Yes | Identifier for | +| ature | | | the location | +| Identifier | | | where the | +| | | | temperature is | +| | | | taken | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiBaseboardVoltageRegulator +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ipmiBaseboardVoltageRegulator datatype consists of the following +fields which describe ipmi baseboard voltage regulator metrics: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| baseboardVoltag | string | Yes | Identifier for | +| e | | | the baseboard | +| RegulatorIdenti | | | voltage | +| fier | | | regulator | ++-----------------+-----------------+-----------------+-----------------+ +| voltageRegulato | number | No | Voltage | +| r | | | regulator | +| Temperature | | | temperature in | +| | | | celsius | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiBattery +^^^^^^^^^^^^^^^^^^^^^ + +The ipmiBattery datatype consists of the following fields which describe +ipmi battery metrics: + ++---------------------+--------+-----------+----------------------------+ +| Field | Type | Required? | Description | ++=====================+========+===========+============================+ +| batteryIdentifier | string | Yes | Identifier for the battery | ++---------------------+--------+-----------+----------------------------+ +| batteryType | string | No | Type of battery | ++---------------------+--------+-----------+----------------------------+ +| batteryVoltageLevel | number | No | Battery voltage level | ++---------------------+--------+-----------+----------------------------+ + +Datatype: ipmiFan +^^^^^^^^^^^^^^^^^ + +The ipmiFan datatype consists of the following fields which describe +ipmi fan metrics: + ++---------------+--------+-----------+-------------------------------------------+ +| Field | Type | Required? | Description | ++===============+========+===========+===========================================+ +| fanIdentifier | string | Yes | Identifier for the fan | ++---------------+--------+-----------+-------------------------------------------+ +| fanSpeed | number | No | Fan speed in revolutions per minute (rpm) | ++---------------+--------+-----------+-------------------------------------------+ + +Datatype: ipmiGlobalAggregateTemperatureMargin +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ipmiGlobalAggregateTemperatureMargin datatype consists of the +following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| globalAggregate | number | No | Temperature | +| TemperatureMarg | | | margin in | +| in | | | Celsius | +| | | | relative to a | +| | | | throttling | +| | | | thermal trip | +| | | | point | ++-----------------+-----------------+-----------------+-----------------+ +| globalAggregate | string | Yes | Identifier for | +| TemperatureMarg | | | the ipmi global | +| inIdentifier | | | aggregate | +| | | | temperature | +| | | | margin metrics | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiHsbp +^^^^^^^^^^^^^^^^^^ + +The ipmiHsbp datatype provides ipmi hot swap backplane power metrics; it +consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| hsbpIdentifier | string | Yes | Identifier for | +| | | | the hot swap | +| | | | backplane power | +| | | | unit | ++-----------------+-----------------+-----------------+-----------------+ +| hsbpTemperature | number | No | Hot swap | +| | | | backplane power | +| | | | temperature in | +| | | | celsius | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiNic +^^^^^^^^^^^^^^^^^ + +The ipmiNic datatype provides network interface control care metrics; it +consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| nicIdentifier | string | Yes | Identifier for | +| | | | the network | +| | | | interface | +| | | | control card | ++-----------------+-----------------+-----------------+-----------------+ +| nicTemperature | number | No | nic temperature | +| | | | in Celsius | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiPowerSupply +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ipmiPowerSupply datatype provides ipmi power supply metrics; it +consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| powerSupplyCurr | number | No | Current output | +| entOutput | | | voltage as a | +| Percent | | | percentage of | +| | | | the design | +| | | | specified level | ++-----------------+-----------------+-----------------+-----------------+ +| powerSupplyIden | string | Yes | Identifier for | +| tifier | | | the power | +| | | | supply | ++-----------------+-----------------+-----------------+-----------------+ +| powerSupplyInpu | number | No | Input power in | +| tPower | | | watts | ++-----------------+-----------------+-----------------+-----------------+ +| powerSupplyTemp | number | No | Power supply | +| erature | | | temperature in | +| | | | Celsius | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: ipmiProcessor +^^^^^^^^^^^^^^^^^^^^^^^ + +The ipmiProcessor datatype provides ipmi processor metrics; it consists +of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| processorDimmAg | processorDimm | No | Array of | +| gregate | AggregateTherma | | processorDimmAg | +| ThermalMarginAr | l | | gregate | +| ray | Margin [ ] | | ThermalMargin | +| | | | objects | ++-----------------+-----------------+-----------------+-----------------+ +| processorDtsThe | number | No | Front panel | +| rmalMargin | | | temperature in | +| | | | celsius | ++-----------------+-----------------+-----------------+-----------------+ +| processorIdenti | string | Yes | Identifier for | +| fier | | | the power | +| | | | supply | ++-----------------+-----------------+-----------------+-----------------+ +| pprocessorTherm | number | No | Io module | +| alControl | | | temperatue in | +| Percent | | | celsius | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: latencyBucketMeasure +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The latencyBucketMeasure datatype consists of the following fields which +describe the number of counts falling within a defined latency bucket: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| countsInTheBuck | number | Yes | Number of | +| et | | | counts falling | +| | | | within a | +| | | | defined latency | +| | | | bucket | ++-----------------+-----------------+-----------------+-----------------+ +| highEndOfLatenc | number | No | High end of | +| yBucket | | | bucket range | +| | | | (typically in | +| | | | ms) | ++-----------------+-----------------+-----------------+-----------------+ +| lowEndOfLatency | number | No | Low end of | +| Bucket | | | bucket range | +| | | | (typically in | +| | | | ms) | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: load +^^^^^^^^^^^^^^ + +The load datatype provides metrics on system cpu and io utilization +obtained using /proc/loadavg; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| longTerm | number | No | number of jobs | +| | | | in the run | +| | | | queue (state R, | +| | | | cpu | +| | | | utilization) or | +| | | | waiting for | +| | | | disk I/O (state | +| | | | D, io | +| | | | utilization) | +| | | | averaged over | +| | | | 15 minutes | +| | | | using | +| | | | /proc/loadavg | ++-----------------+-----------------+-----------------+-----------------+ +| midTerm | number | No | number of jobs | +| | | | in the run | +| | | | queue (state R, | +| | | | cpu | +| | | | utilization) or | +| | | | waiting for | +| | | | disk I/O (state | +| | | | D, io | +| | | | utilization) | +| | | | averaged over 5 | +| | | | minutes using | +| | | | /proc/loadavg | ++-----------------+-----------------+-----------------+-----------------+ +| shortTerm | number | No | number of jobs | +| | | | in the run | +| | | | queue (state R, | +| | | | cpu | +| | | | utilization) or | +| | | | waiting for | +| | | | disk I/O (state | +| | | | D, io | +| | | | utilization) | +| | | | averaged over 1 | +| | | | minute using | +| | | | /proc/loadavg | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: machineCheckException +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The machineCheckException datatype describes machine check exceptions; +it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| correctedMemory | number | No | Total hardware | +| Errors | | | errors that | +| | | | were corrected | +| | | | by the hardware | +| | | | (e.g. data | +| | | | corruption | +| | | | corrected via | +| | | | ECC) over the | +| | | | measurementInte | +| | | | rval. | +| | | | These errors do | +| | | | not require | +| | | | immediate | +| | | | software | +| | | | actions, but | +| | | | are still | +| | | | reported for | +| | | | accounting | +| | | | and predictive | +| | | | failure | +| | | | analysis | ++-----------------+-----------------+-----------------+-----------------+ +| correctedMemory | number | No | Total hardware | +| Errors | | | errors that | +| In1Hr | | | were corrected | +| | | | by the hardware | +| | | | over the last | +| | | | one hour | ++-----------------+-----------------+-----------------+-----------------+ +| processIdentifi | string | Yes | processIdentifi | +| er | | | er | ++-----------------+-----------------+-----------------+-----------------+ +| uncorrectedMemo | number | No | Total | +| ryErrors | | | uncorrected | +| | | | hardware errors | +| | | | that were | +| | | | detected by the | +| | | | hardware (e.g., | +| | | | causing data | +| | | | corruption) | +| | | | over the | +| | | | measurementInte | +| | | | rval. | +| | | | These errors | +| | | | require a | +| | | | software | +| | | | response. | ++-----------------+-----------------+-----------------+-----------------+ +| uncorrectedMemo | number | No | Total | +| ryErrors | | | uncorrected | +| In1Hr | | | hardware errors | +| | | | that were | +| | | | detected by the | +| | | | hardware over | +| | | | the last one | +| | | | hour | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: measurementFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The measurementFields datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | measurement | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| additionalMeasu | arrayOfNamedHas | No | Array of named | +| rements | hMap | | hashMap if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| additionalObjec | arrayOfJsonObje | No | Array of JSON | +| ts | ct | | objects | +| | | | described by | +| | | | name, schema | +| | | | and other | +| | | | meta-informatio | +| | | | n, | +| | | | if needed | ++-----------------+-----------------+-----------------+-----------------+ +| codecUsageArray | codecsInUse [] | No | Array of codecs | +| | | | in use | ++-----------------+-----------------+-----------------+-----------------+ +| concurrentSessi | integer | No | Peak concurrent | +| ons | | | sessions for | +| | | | the VM or xNF | +| | | | (depending on | +| | | | the context) | +| | | | over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ +| configuredEntit | integer | No | Depending on | +| ies | | | the context | +| | | | over the | +| | | | measurementInte | +| | | | rval: | +| | | | peak total | +| | | | number of | +| | | | users, | +| | | | subscribers, | +| | | | devices, | +| | | | adjacencies, | +| | | | etc., for the | +| | | | VM, or peak | +| | | | total number of | +| | | | subscribers, | +| | | | devices, etc., | +| | | | for the xNF | ++-----------------+-----------------+-----------------+-----------------+ +| cpuUsageArray | cpuUsage [] | No | Usage of an | +| | | | array of CPUs | ++-----------------+-----------------+-----------------+-----------------+ +| diskUsageArray | diskUsage [] | No | Usage of an | +| | | | array of disks | ++-----------------+-----------------+-----------------+-----------------+ +| featureUsageArr | hashMap | No | The hashMap key | +| ay | | | should identify | +| | | | the feature, | +| | | | while the value | +| | | | defines the | +| | | | number of times | +| | | | the identified | +| | | | feature was | +| | | | used | ++-----------------+-----------------+-----------------+-----------------+ +| filesystemUsage | filesystemUsage | No | Filesystem | +| Array | [ ] | | usage of the VM | +| | | | on which the | +| | | | xNFC reporting | +| | | | the event is | +| | | | running | ++-----------------+-----------------+-----------------+-----------------+ +| hugePagesArray | hugePages [ ] | No | Array of | +| | | | metrics on | +| | | | hugePages | ++-----------------+-----------------+-----------------+-----------------+ +| ipmiArray | ipmi [ ] | No | Array of | +| | | | intelligent | +| | | | platform | +| | | | management | +| | | | interface | +| | | | metrics | ++-----------------+-----------------+-----------------+-----------------+ +| latencyDistribu | latencyBucketMe | No | Array of | +| tion | asure | | integers | +| | [ ] | | representing | +| | | | counts of | +| | | | requests whose | +| | | | latency in | +| | | | milliseconds | +| | | | falls within | +| | | | per-xNF | +| | | | configured | +| | | | ranges; where | +| | | | latency is the | +| | | | duration | +| | | | between a | +| | | | service request | +| | | | and its | +| | | | fulfillment. | ++-----------------+-----------------+-----------------+-----------------+ +| loadArray | load [ ] | No | Array of system | +| | | | load metrics | ++-----------------+-----------------+-----------------+-----------------+ +| machineCheckExc | machineCheckExc | No | Array of | +| eptionArray | eption | | machine check | +| | [ ] | | exceptions | ++-----------------+-----------------+-----------------+-----------------+ +| meanRequestLate | number | No | Mean seconds | +| ncy | | | required to | +| | | | respond to each | +| | | | request for the | +| | | | VM on which the | +| | | | xNFC reporting | +| | | | the event is | +| | | | running | ++-----------------+-----------------+-----------------+-----------------+ +| measurementFiel | string | Yes | Version of the | +| dsVersion | | | measurementFiel | +| | | | ds | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| measurementInte | number | Yes | Interval over | +| rval | | | which | +| | | | measurements | +| | | | are being | +| | | | reported in | +| | | | seconds | ++-----------------+-----------------+-----------------+-----------------+ +| memoryUsageArra | memoryUsage [] | No | Memory usage of | +| y | | | an array of VMs | ++-----------------+-----------------+-----------------+-----------------+ +| nfcScalingMetri | integer | No | Represents | +| c | | | busy-ness of | +| | | | the network | +| | | | function from 0 | +| | | | to 100 as | +| | | | reported by the | +| | | | nfc | ++-----------------+-----------------+-----------------+-----------------+ +| nicPerformanceA | nicPerformance | No | Performance | +| rray | [ ] | | metrics of an | +| | | | array of | +| | | | network | +| | | | interface cards | ++-----------------+-----------------+-----------------+-----------------+ +| numberOfMediaPo | integer | No | Number of media | +| rtsInUse | | | ports in use | ++-----------------+-----------------+-----------------+-----------------+ +| processStatsArr | processStats [ | No | Array of | +| ay | ] | | metrics on | +| | | | system | +| | | | processes | ++-----------------+-----------------+-----------------+-----------------+ +| requestRate | number | No | Peak rate of | +| | | | service | +| | | | requests per | +| | | | second to the | +| | | | xNF over the | +| | | | measurementInte | +| | | | rval | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: memoryUsage +^^^^^^^^^^^^^^^^^^^^^ + +The memoryUsage datatype defines the memory usage of a virtual machine +and consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| memoryBuffered | number | No | Kibibytes of | +| | | | temporary | +| | | | storage for raw | +| | | | disk blocks | ++-----------------+-----------------+-----------------+-----------------+ +| memoryCached | number | No | Kibibytes of | +| | | | memory used for | +| | | | cache | ++-----------------+-----------------+-----------------+-----------------+ +| memoryConfigure | number | No | Kibibytes of | +| d | | | memory | +| | | | configured in | +| | | | the virtual | +| | | | machine on | +| | | | which the xNFC | +| | | | reporting the | +| | | | event is | +| | | | running | ++-----------------+-----------------+-----------------+-----------------+ +| memoryDemand | number | No | Host demand in | +| | | | kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| memoryFree | number | Yes | Kibibytes of | +| | | | physical RAM | +| | | | left unused by | +| | | | the system | ++-----------------+-----------------+-----------------+-----------------+ +| memoryLatencyAv | number | No | Percentage of | +| g | | | time the VM is | +| | | | waiting to | +| | | | access swapped | +| | | | or compressed | +| | | | memory | ++-----------------+-----------------+-----------------+-----------------+ +| memorySharedAvg | number | No | Shared memory | +| | | | in kilobytes | ++-----------------+-----------------+-----------------+-----------------+ +| memorySlabRecl | number | No | The part of the | +| | | | slab that can | +| | | | be reclaimed | +| | | | such as caches | +| | | | measured in | +| | | | kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| memorySlabUnrec | number | No | The part of the | +| l | | | slab that | +| | | | cannot be | +| | | | reclaimed even | +| | | | when lacking | +| | | | memory measure | +| | | | in kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| memorySwapInAvg | number | No | Amount of | +| | | | memory | +| | | | swapped-in from | +| | | | host cache in | +| | | | kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| memorySwapInRat | number | No | Rate at which | +| eAvg | | | memory is | +| | | | swapped from | +| | | | disk into | +| | | | active memory | +| | | | during the | +| | | | interval in | +| | | | kilobytes per | +| | | | second | ++-----------------+-----------------+-----------------+-----------------+ +| memorySwapOutAv | number | No | Amount of | +| g | | | memory | +| | | | swapped-out to | +| | | | host cache in | +| | | | kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| memorySwapOutRa | number | No | Rate at which | +| teAvg | | | memory is being | +| | | | swapped from | +| | | | active memory | +| | | | to disk during | +| | | | the current | +| | | | interval in | +| | | | kilobytes per | +| | | | second | ++-----------------+-----------------+-----------------+-----------------+ +| memorySwapUsedA | number | No | Space used for | +| vg | | | caching swapped | +| | | | pages in the | +| | | | host cache in | +| | | | kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| memoryUsed | number | Yes | Total memory | +| | | | minus the sum | +| | | | of free, | +| | | | buffered, | +| | | | cached and slab | +| | | | memory measured | +| | | | in kibibytes | ++-----------------+-----------------+-----------------+-----------------+ +| percentMemoryUs | number | No | Percentage of | +| age | | | memory usage; | +| | | | value = | +| | | | (memoryUsed / | +| | | | (memoryUsed + | +| | | | memoryFree) x | +| | | | 100 if | +| | | | denomintor is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| vmIdentifier | string | Yes | Virtual Machine | +| | | | identifier | +| | | | associated with | +| | | | the memory | +| | | | metrics | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: nicPerformance +^^^^^^^^^^^^^^^^^^^^^^^^ + +The nicPerformance datatype consists of the following fields which +describe the performance and errors of an of an identified virtual +network interface card: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| administrativeS | string | No | Administrative | +| tate | | | state: enum: | +| | | | ‘inService’, | +| | | | ‘outOfService’ | ++-----------------+-----------------+-----------------+-----------------+ +| nicIdentifier | string | Yes | Network | +| | | | interface card | +| | | | identifier | ++-----------------+-----------------+-----------------+-----------------+ +| operationalStat | string | No | Operational | +| e | | | state: enum: | +| | | | ‘inService’, | +| | | | ‘outOfService’ | ++-----------------+-----------------+-----------------+-----------------+ +| receivedBroadca | number | No | Cumulative | +| stPacketsAccumu | | | count of | +| lated | | | broadcast | +| | | | packets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedBroadca | number | No | Count of | +| stPacketsDelta | | | broadcast | +| | | | packets | +| | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedDiscard | number | No | Cumulative | +| edPacketsAccumu | | | count of | +| lated | | | discarded | +| | | | packets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedDiscard | number | No | Count of | +| edPacketsDelta | | | discarded | +| | | | packets | +| | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedErrorPa | number | No | Cumulative | +| cketsAccumulate | | | count of error | +| d | | | packets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedErrorPa | number | No | Count of error | +| cketsDelta | | | packets | +| | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedMultica | number | No | Cumulative | +| stPacketsAccumu | | | count of | +| lated | | | multicast | +| | | | packets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedMultica | number | No | Count of | +| stPacketsDelta | | | multicast | +| | | | packets | +| | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedOctetsA | number | No | Cumulative | +| ccumulated | | | count of octets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedOctetsD | number | No | Count of octets | +| elta | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedPercent | number | No | Percentage of | +| Discard | | | discarded | +| | | | packets | +| | | | received; value | +| | | | = | +| | | | (receivedDiscar | +| | | | dedPacketsDelta | +| | | | / | +| | | | receivedTotalPa | +| | | | cketsDelta) | +| | | | x 100, if | +| | | | denominator is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| receivedPercent | number | No | Percentage of | +| Error | | | error packets | +| | | | received; value | +| | | | = | +| | | | (receivedErrorP | +| | | | acketsDelta | +| | | | / | +| | | | receivedTotalPa | +| | | | cketsDelta) | +| | | | x 100, if | +| | | | denominator is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| receivedTotalPa | number | No | Cumulative | +| cketsAccumulate | | | count of all | +| d | | | packets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedTotalPa | number | No | Count of all | +| cketsDelta | | | packets | +| | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedUnicast | number | No | Cumulative | +| PacketsAccumula | | | count of | +| ted | | | unicast packets | +| | | | received as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedUnicast | number | No | Count of | +| PacketsDelta | | | unicast packets | +| | | | received within | +| | | | the measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| receivedUtiliza | number | No | Percentage of | +| tion | | | utilization | +| | | | received; value | +| | | | = | +| | | | (receivedOctets | +| | | | Delta | +| | | | / (speed x | +| | | | (lastEpochMicro | +| | | | sec | +| | | | - | +| | | | startEpochMicro | +| | | | sec))) | +| | | | x 100, if | +| | | | denominator is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| speed | number | No | Speed | +| | | | configured in | +| | | | mbps. | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedBroa | number | No | Cumulative | +| dcastPacketsAcc | | | count of | +| umulated | | | broadcast | +| | | | packets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedBroa | number | No | Count of | +| dcastPacketsDel | | | broadcast | +| ta | | | packets | +| | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedDisc | number | No | Cumulative | +| ardedPacketsAcc | | | count of | +| umulated | | | discarded | +| | | | packets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedDisc | number | No | Count of | +| ardedPacketsDel | | | discarded | +| ta | | | packets | +| | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedErro | number | No | Cumulative | +| rPacketsAccumul | | | count of error | +| ated | | | packets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedErro | number | No | Count of error | +| rPacketsDelta | | | packets | +| | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedMult | number | No | Cumulative | +| icastPacketsAcc | | | count of | +| umulated | | | multicast | +| | | | packets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedMult | number | No | Count of | +| icastPacketsDel | | | multicast | +| ta | | | packets | +| | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedOcte | number | No | Cumulative | +| tsAccumulated | | | count of octets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedOcte | number | No | Count of octets | +| tsDelta | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedPerc | number | No | Percentage of | +| entDiscard | | | discarded | +| | | | packets | +| | | | transmitted; | +| | | | value = | +| | | | (transmittedDis | +| | | | cardedPacketsDe | +| | | | lta | +| | | | / | +| | | | transmittedTota | +| | | | lPacketsDelta) | +| | | | x 100, if | +| | | | denominator is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedPerc | number | No | Percentage of | +| entError | | | error packets | +| | | | received; value | +| | | | = | +| | | | (transmittedErr | +| | | | orPacketsDelta | +| | | | / | +| | | | transmittedTota | +| | | | lPacketsDelta) | +| | | | x 100, if | +| | | | denominator is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedTota | number | No | Cumulative | +| lPacketsAccumul | | | count of all | +| ated | | | packets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedTota | number | No | Count of all | +| lPacketsDelta | | | packets | +| | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedUnic | number | No | Cumulative | +| astPacketsAccum | | | count of | +| ulated | | | unicast packets | +| | | | transmitted as | +| | | | read at the end | +| | | | of the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedUnic | number | No | Count of | +| astPacketsDelta | | | unicast packets | +| | | | transmitted | +| | | | within the | +| | | | measurement | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| transmittedUtil | number | No | Percentage of | +| ization | | | utilization | +| | | | transmitted; | +| | | | value = | +| | | | (transmittedOct | +| | | | etsDelta | +| | | | / (speed x | +| | | | (lastEpochMicro | +| | | | sec | +| | | | - | +| | | | startEpochMicro | +| | | | sec))) | +| | | | x 100, if | +| | | | denominator is | +| | | | nonzero, or 0, | +| | | | if otherwise. | ++-----------------+-----------------+-----------------+-----------------+ +| valuesAreSuspec | string | Yes | Enumeration: | +| t | | | ‘true’ or | +| | | | ‘false’. If | +| | | | ‘true’ then the | +| | | | vNicPerformance | +| | | | values are | +| | | | likely | +| | | | inaccurate due | +| | | | to counter | +| | | | overflow or | +| | | | other | +| | | | conditions. | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: processorDimmAggregateThermalMargin +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The processorDimmAggregateThermalMargin datatype provides intelligent +platform management interface (ipmi) processor dual inline memory module +aggregate thermal margin metrics; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| processorDimmAg | string | Yes | identifier for | +| gregateThermal | | | the aggregate | +| MarginIdentifie | | | thermal margin | +| r | | | metrics from | +| | | | the processor | +| | | | dual inline | +| | | | memory module | ++-----------------+-----------------+-----------------+-----------------+ +| thermalMargin | number | Yes | the difference | +| | | | between the | +| | | | DIMM's current | +| | | | temperature, in | +| | | | celsius, and | +| | | | the DIMM's | +| | | | throttling | +| | | | thermal trip | +| | | | point | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: processStats +^^^^^^^^^^^^^^^^^^^^^^ + +The processStats datatype provides metrics on system processes; it +consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| forkRate | number | No | The number of | +| | | | threads created | +| | | | since the last | +| | | | reboot | ++-----------------+-----------------+-----------------+-----------------+ +| processIdentifi | string | Yes | processIdentifi | +| er | | | er | ++-----------------+-----------------+-----------------+-----------------+ +| psStateBlocked | number | No | The number of | +| | | | processes in a | +| | | | blocked state | ++-----------------+-----------------+-----------------+-----------------+ +| psStatePaging | number | No | The number of | +| | | | processes in a | +| | | | paging state | ++-----------------+-----------------+-----------------+-----------------+ +| psStateRunning | number | No | The number of | +| | | | processes in a | +| | | | running state | ++-----------------+-----------------+-----------------+-----------------+ +| psStateSleeping | number | No | The number of | +| | | | processes in a | +| | | | sleeping state | ++-----------------+-----------------+-----------------+-----------------+ +| psStateStopped | number | No | The number of | +| | | | processes in a | +| | | | stopped state | ++-----------------+-----------------+-----------------+-----------------+ +| psStateZombie | number | No | The number of | +| | | | processes in a | +| | | | zombie state | ++-----------------+-----------------+-----------------+-----------------+ + +‘Notification’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: notificationFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The notificationFields datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | notification | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| arrayOfNamedHas | namedHashMap [ | No | Array of named | +| hMap | ] | | hashMaps | ++-----------------+-----------------+-----------------+-----------------+ +| changeContact | string | No | Identifier for | +| | | | a contact | +| | | | related to the | +| | | | change | ++-----------------+-----------------+-----------------+-----------------+ +| changeIdentifie | string | Yes | System or | +| r | | | session | +| | | | identifier | +| | | | associated with | +| | | | the change | ++-----------------+-----------------+-----------------+-----------------+ +| changeType | string | Yes | Describes what | +| | | | has changed for | +| | | | the entity, for | +| | | | example: | +| | | | configuration | +| | | | changed, | +| | | | capability | +| | | | added, | +| | | | capability | +| | | | removed… | ++-----------------+-----------------+-----------------+-----------------+ +| newState | string | No | New state of | +| | | | the entity, for | +| | | | example: | +| | | | ‘inService’, | +| | | | ‘maintenance’, | +| | | | ‘outOfService’ | ++-----------------+-----------------+-----------------+-----------------+ +| notificationFie | string | Yes | Version of the | +| ldsVersion | | | notificationFie | +| | | | lds | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| oldState | string | No | Previous state | +| | | | of the entity, | +| | | | for example: | +| | | | ‘inService’, | +| | | | ‘maintenance’, | +| | | | ‘outOfService’ | ++-----------------+-----------------+-----------------+-----------------+ +| stateInterface | string | No | Card or port | +| | | | name of the | +| | | | entity that | +| | | | changed state | ++-----------------+-----------------+-----------------+-----------------+ + +‘Other’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: otherFields +^^^^^^^^^^^^^^^^^^^^^ + +The otherFields datatype defines fields for events belonging to the +'other' domain of the commonEventHeader domain enumeration; it consists +of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| arrayOfNamedHas | arrayOfNamedHas | No | Array of named | +| hMap | hMap | | hashMaps | ++-----------------+-----------------+-----------------+-----------------+ +| hashMap | hashMap | No | Array of | +| | | | name-value | +| | | | pairs | ++-----------------+-----------------+-----------------+-----------------+ +| jsonObjects | arrayOfJsonObje | No | Array of JSON | +| | ct | | objects | +| | | | described by | +| | | | name, schema | +| | | | and other | +| | | | meta-informatio | +| | | | n | ++-----------------+-----------------+-----------------+-----------------+ +| otherFieldsVers | string | Yes | Version of the | +| ion | | | otherFields | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ + +‘pnfRegistration’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: pnfRegistrationFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The pnfRegistrationFields datatype defines fields for events belonging +to the 'pnfRegistration' domain of the commonEventHeader domain +enumeration; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | pnfRegistration | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| lastServiceDate | string | No | TS 32.692 | +| | | | dateOfLastServi | +| | | | ce | +| | | | = date of last | +| | | | service; e.g. | +| | | | 15022017 | ++-----------------+-----------------+-----------------+-----------------+ +| macAddress | string | No | MAC address of | +| | | | OAM interface | +| | | | of the unit | ++-----------------+-----------------+-----------------+-----------------+ +| manufactureDate | string | No | TS 32.692 | +| | | | dateOfManufactu | +| | | | re | +| | | | = manufacture | +| | | | date of the | +| | | | unit; 24032016 | ++-----------------+-----------------+-----------------+-----------------+ +| modelNumber | string | No | TS 32.692 | +| | | | versionNumber = | +| | | | version of the | +| | | | unit from | +| | | | vendor; e.g. | +| | | | AJ02. Maps to | +| | | | AAI equip-model | ++-----------------+-----------------+-----------------+-----------------+ +| oamV4IpAddress | string | No | IPv4 m-plane IP | +| | | | address to be | +| | | | used by the | +| | | | manager to | +| | | | contact the PNF | ++-----------------+-----------------+-----------------+-----------------+ +| oamV6IpAddress | string | No | IPv6 m-plane IP | +| | | | address to be | +| | | | used by the | +| | | | manager to | +| | | | contact the PNF | ++-----------------+-----------------+-----------------+-----------------+ +| pnfRegistration | string | Yes | Version of the | +| FieldsVersion | | | registrationFie | +| | | | lds | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| serialNumber | string | No | TS 32.692 | +| | | | serialNumber = | +| | | | serial number | +| | | | of the unit; | +| | | | e.g. 6061ZW3 | ++-----------------+-----------------+-----------------+-----------------+ +| softwareVersion | string | No | TS 32.692 | +| | | | swName = active | +| | | | SW running on | +| | | | the unit; e.g. | +| | | | 5gDUv18.05.201 | ++-----------------+-----------------+-----------------+-----------------+ +| unitFamily | string | No | TS 32.692 | +| | | | vendorUnitFamil | +| | | | yType | +| | | | = general type | +| | | | of HW unit; | +| | | | e.g. BBU | ++-----------------+-----------------+-----------------+-----------------+ +| unitType | string | No | TS 32.692 | +| | | | vendorUnitTypeN | +| | | | umber | +| | | | = vendor name | +| | | | for the unit; | +| | | | e.g. Airscale | ++-----------------+-----------------+-----------------+-----------------+ +| vendorName | string | No | TS 32.692 | +| | | | vendorName = | +| | | | name of | +| | | | manufacturer; | +| | | | e.g. Nokia. | +| | | | Maps to AAI | +| | | | equip-vendor | ++-----------------+-----------------+-----------------+-----------------+ + + ‘State Change’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: stateChangeFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The stateChangeFields datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | stateChange | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| newState | string | Yes | New state of | +| | | | the entity: | +| | | | ‘inService’, | +| | | | ‘maintenance’, | +| | | | ‘outOfService’ | ++-----------------+-----------------+-----------------+-----------------+ +| oldState | string | Yes | Previous state | +| | | | of the entity: | +| | | | ‘inService’, | +| | | | ‘maintenance’, | +| | | | ‘outOfService’ | ++-----------------+-----------------+-----------------+-----------------+ +| stateChangeFiel | string | Yes | Version of the | +| dsVersion | | | stateChangeFiel | +| | | | ds | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| stateInterface | string | Yes | Card or port | +| | | | name of the | +| | | | entity that | +| | | | changed state | ++-----------------+-----------------+-----------------+-----------------+ + +‘Syslog’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: syslogFields +^^^^^^^^^^^^^^^^^^^^^^ + +The syslogFields datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | syslog fields | +| | | | if needed Ex: | +| | | | {“name1”: | +| | | | ”value1”, | +| | | | “name2: | +| | | | “value2” … } | ++-----------------+-----------------+-----------------+-----------------+ +| eventSourceHost | string | No | Hostname of the | +| | | | device | ++-----------------+-----------------+-----------------+-----------------+ +| eventSourceType | string | Yes | Examples: | +| | | | ‘other’, | +| | | | ‘router’, | +| | | | ‘switch’, | +| | | | ‘host’, ‘card’, | +| | | | ‘port’, | +| | | | ‘slotThreshold’ | +| | | | , | +| | | | ‘portThreshold’ | +| | | | , | +| | | | ‘virtualMachine | +| | | | ’, | +| | | | ‘virtualNetwork | +| | | | Function’ | ++-----------------+-----------------+-----------------+-----------------+ +| syslogFacility | integer | No | Numeric code | +| | | | from 0 to 23 | +| | | | for facility: | +| | | | | +| | | | 0 kernel | +| | | | messages | +| | | | | +| | | | 1 user-level | +| | | | messages | +| | | | | +| | | | 2 mail system | +| | | | | +| | | | 3 system | +| | | | daemons | +| | | | | +| | | | 4 | +| | | | security/author | +| | | | ization | +| | | | messages | +| | | | | +| | | | 5 messages | +| | | | generated | +| | | | internally by | +| | | | syslogd | +| | | | | +| | | | 6 line printer | +| | | | subsystem | +| | | | | +| | | | 7 network news | +| | | | subsystem | +| | | | | +| | | | 8 UUCP | +| | | | subsystem | +| | | | | +| | | | 9 clock daemon | +| | | | | +| | | | 10 | +| | | | security/author | +| | | | ization | +| | | | messages | +| | | | | +| | | | 11 FTP daemon | +| | | | | +| | | | 12 NTP | +| | | | subsystem | +| | | | | +| | | | 13 log audit | +| | | | | +| | | | 14 log alert | +| | | | | +| | | | 15 clock daemon | +| | | | (note 2) | +| | | | | +| | | | 16 local use 0 | +| | | | (local0) | +| | | | | +| | | | 17 local use 1 | +| | | | (local1) | +| | | | | +| | | | 18 local use 2 | +| | | | (local2) | +| | | | | +| | | | 19 local use 3 | +| | | | (local3) | +| | | | | +| | | | 20 local use 4 | +| | | | (local4) | +| | | | | +| | | | 21 local use 5 | +| | | | (local5) | +| | | | | +| | | | 22 local use 6 | +| | | | (local6) | +| | | | | +| | | | 23 local use 7 | +| | | | (local7 ) | ++-----------------+-----------------+-----------------+-----------------+ +| syslogFieldsVer | string | Yes | Version of the | +| sion | | | syslogFields | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| syslogMsg | string | Yes | Syslog message | ++-----------------+-----------------+-----------------+-----------------+ +| syslogMsgHost | string | No | Hostname parsed | +| | | | from non-VES | +| | | | syslog message | ++-----------------+-----------------+-----------------+-----------------+ +| syslogPri | integer | No | 0-192 | +| | | | | +| | | | Combined | +| | | | Severity and | +| | | | Facility (see | +| | | | rfc5424) | ++-----------------+-----------------+-----------------+-----------------+ +| syslogProc | string | No | Identifies the | +| | | | application | +| | | | that originated | +| | | | the message | ++-----------------+-----------------+-----------------+-----------------+ +| syslogProcId | number | No | The process | +| | | | number assigned | +| | | | by the OS when | +| | | | the application | +| | | | was started | ++-----------------+-----------------+-----------------+-----------------+ +| syslogSData | string | No | A <space> | +| | | | separated list | +| | | | of key=”value” | +| | | | pairs following | +| | | | the rfc5424 | +| | | | standard for | +| | | | SD-ELEMENT. | +| | | | | +| | | | **Deprecated** | +| | | | | +| | | | The entire | +| | | | rfc5424 | +| | | | syslogSData | +| | | | object, | +| | | | including | +| | | | square brackets | +| | | | [ ], SD-ID and | +| | | | list of | +| | | | SD-PARAMs | ++-----------------+-----------------+-----------------+-----------------+ +| syslogSdId | string | No | 0-32 char in | +| | | | format | +| | | | name@number, | +| | | | | +| | | | i.e., | +| | | | ourSDID@32473 | ++-----------------+-----------------+-----------------+-----------------+ +| syslogSev | string | No | Level-of-severi | +| | | | ty | +| | | | text | +| | | | enumeration | +| | | | defined below: | +| | | | | +| | | | Text Sev | +| | | | Description | +| | | | | +| | | | Emergency 0 | +| | | | system is | +| | | | unusable | +| | | | | +| | | | Alert 1 action | +| | | | must be taken | +| | | | immediately | +| | | | | +| | | | Critical 2 | +| | | | critical | +| | | | conditions | +| | | | | +| | | | Error 3 error | +| | | | conditions | +| | | | | +| | | | Warning 4 | +| | | | warning | +| | | | conditions | +| | | | | +| | | | Notice 5 normal | +| | | | but significant | +| | | | condition | +| | | | | +| | | | Info 6 | +| | | | Informational | +| | | | messages | +| | | | | +| | | | Debug 7 | +| | | | debug-level | +| | | | messages | ++-----------------+-----------------+-----------------+-----------------+ +| syslogTag | string | Yes | Also known as | +| | | | MsgId. Brief | +| | | | non-spaced text | +| | | | indicating the | +| | | | type of message | +| | | | such as | +| | | | ‘TCPOUT’ or | +| | | | ‘BGP_STATUS_CHA | +| | | | NGE’; | +| | | | ‘NILVALUE’ | +| | | | should be used | +| | | | when no other | +| | | | value can be | +| | | | provided | ++-----------------+-----------------+-----------------+-----------------+ +| syslogTs | string | No | Timestamp | +| | | | parsed from | +| | | | non-VES syslog | +| | | | message | ++-----------------+-----------------+-----------------+-----------------+ +| syslogVer | number | No | IANA assigned | +| | | | version of the | +| | | | syslog protocol | +| | | | specification: | +| | | | | +| | | | 0: VES | +| | | | | +| | | | 1: IANA RFC5424 | ++-----------------+-----------------+-----------------+-----------------+ + +Examples of syslogSData : + +Preferred + + ts=”1985-04-12T23:20:50.52Z” tag=”BGP_NEIGHBOR_DOWN” msg=”The BGP + session to neighbor 10.10.10.10 is down” + +Deprecated + + [attinc@1234 ts=”1985-04-12T23:20:50.52Z” tag=”BGP_NEIGHBOR_DOWN” + msg=”The BGP session to neighbor 10.10.10.10 is down”] + +Syslog references: + +https://tools.ietf.org/html/rfc5424#section-6 + + https://www.iana.org/assignments/syslog-parameters/syslog-parameters.xhtml + + ‘Threshold Crossing Alert’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: counter +^^^^^^^^^^^^^^^^^ + +The counter datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| criticality | string | Yes | Enumeration: | +| | | | ‘CRIT’, ‘MAJ’ | ++-----------------+-----------------+-----------------+-----------------+ +| hashMap | hashMap | Yes | Key is the name | +| | | | of the counter | +| | | | and value is | +| | | | the current | +| | | | value of the | +| | | | counter | ++-----------------+-----------------+-----------------+-----------------+ +| threshholdCross | string | Yes | Last threshold | +| ed | | | that was | +| | | | crossed | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: thresholdCrossingAlertFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The thresholdCrossingAlertFields datatype consists of the following +fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | threshold | +| | | | crossing alert | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| additionalParam | counter [ ] | Yes | Array of | +| eters | | | performance | +| | | | counters | ++-----------------+-----------------+-----------------+-----------------+ +| alertAction | string | Yes | Enumeration: | +| | | | ‘SET’, ‘CONT’, | +| | | | ‘CLEAR’ | ++-----------------+-----------------+-----------------+-----------------+ +| alertDescriptio | string | Yes | Unique short | +| n | | | alert | +| | | | description | +| | | | (e.g., | +| | | | NE-CPUMEM) | ++-----------------+-----------------+-----------------+-----------------+ +| alertType | string | Yes | Enumeration: | +| | | | ‘CARD-ANOMALY’, | +| | | | ‘INTERFACE-ANOM | +| | | | ALY’, | +| | | | ELEMENT-ANOMALY | +| | | | ’, | +| | | | ‘SERVICE-ANOMAL | +| | | | Y’ | ++-----------------+-----------------+-----------------+-----------------+ +| alertValue | string | No | Calculated API | +| | | | value (if | +| | | | applicable) | ++-----------------+-----------------+-----------------+-----------------+ +| associatedAlert | string [ ] | No | List of | +| IdList | | | eventIds | +| | | | associated with | +| | | | the event being | +| | | | reported | ++-----------------+-----------------+-----------------+-----------------+ +| collectionTimes | string | Yes | Time when the | +| tamp | | | performance | +| | | | collector | +| | | | picked up the | +| | | | data; with RFC | +| | | | 2822 compliant | +| | | | format: ‘Sat, | +| | | | 13 Mar 2010 | +| | | | 11:29:05 -0800’ | ++-----------------+-----------------+-----------------+-----------------+ +| dataCollector | string | No | Specific | +| | | | performance | +| | | | collector | +| | | | instance used | ++-----------------+-----------------+-----------------+-----------------+ +| elementType | string | No | Type of network | +| | | | element | +| | | | (internal AT&T | +| | | | field) | ++-----------------+-----------------+-----------------+-----------------+ +| eventSeverity | string | Yes | Event severity | +| | | | or priority | +| | | | enumeration: | +| | | | ‘CRITICAL’, | +| | | | ‘MAJOR’, | +| | | | ‘MINOR’, | +| | | | ‘WARNING’, | +| | | | ‘NORMAL’ | ++-----------------+-----------------+-----------------+-----------------+ +| eventStartTimes | string | Yes | Time closest to | +| tamp | | | when the | +| | | | measurement was | +| | | | made; with RFC | +| | | | 2822 compliant | +| | | | format: ‘Sat, | +| | | | 13 Mar 2010 | +| | | | 11:29:05 -0800’ | ++-----------------+-----------------+-----------------+-----------------+ +| interfaceName | string | No | Physical or | +| | | | logical port or | +| | | | card (if | +| | | | applicable) | ++-----------------+-----------------+-----------------+-----------------+ +| networkService | string | No | Network name | +| | | | (internal AT&T | +| | | | field) | ++-----------------+-----------------+-----------------+-----------------+ +| possibleRootCau | string | No | Reserved for | +| se | | | future use | ++-----------------+-----------------+-----------------+-----------------+ +| thresholdCrossi | string | Yes | Version of the | +| ng | | | thresholdCrossi | +| FieldsVersion | | | ngAlertFields | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ + +Technology Specific Datatypes +----------------------------- + + ‘Mobile Flow’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: gtpPerFlowMetrics +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The gtpPerFlowMetrics datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| avgBitErrorRate | number | Yes | Average bit | +| | | | error rate | ++-----------------+-----------------+-----------------+-----------------+ +| avgPacketDelayV | number | Yes | Average packet | +| ariation | | | delay variation | +| | | | or jitter in | +| | | | milliseconds | +| | | | for received | +| | | | packets: | +| | | | Average | +| | | | difference | +| | | | between the | +| | | | packet | +| | | | timestamp and | +| | | | time received | +| | | | for all pairs | +| | | | of consecutive | +| | | | packets | ++-----------------+-----------------+-----------------+-----------------+ +| avgPacketLatenc | number | Yes | Average | +| y | | | delivery | +| | | | latency | ++-----------------+-----------------+-----------------+-----------------+ +| avgReceiveThrou | number | Yes | Average receive | +| ghput | | | throughput | ++-----------------+-----------------+-----------------+-----------------+ +| avgTransmitThro | number | Yes | Average | +| ughput | | | transmit | +| | | | throughput | ++-----------------+-----------------+-----------------+-----------------+ +| durConnectionFa | number | No | Duration of | +| iledStatus | | | failed state in | +| | | | milliseconds, | +| | | | computed as the | +| | | | cumulative time | +| | | | between a | +| | | | failed echo | +| | | | request and the | +| | | | next following | +| | | | successful | +| | | | error request, | +| | | | over this | +| | | | reporting | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| durTunnelFailed | number | No | Duration of | +| Status | | | errored state, | +| | | | computed as the | +| | | | cumulative time | +| | | | between a | +| | | | tunnel error | +| | | | indicator and | +| | | | the next | +| | | | following | +| | | | non-errored | +| | | | indicator, over | +| | | | this reporting | +| | | | interval | ++-----------------+-----------------+-----------------+-----------------+ +| flowActivatedBy | string | No | Endpoint | +| | | | activating the | +| | | | flow | ++-----------------+-----------------+-----------------+-----------------+ +| flowActivationE | number | Yes | Time the | +| poch | | | connection is | +| | | | activated in | +| | | | the flow | +| | | | (connection) | +| | | | being reported | +| | | | on, or | +| | | | transmission | +| | | | time of the | +| | | | first packet if | +| | | | activation time | +| | | | is not | +| | | | available | ++-----------------+-----------------+-----------------+-----------------+ +| flowActivationM | number | Yes | Integer | +| icrosec | | | microseconds | +| | | | for the start | +| | | | of the flow | +| | | | connection | ++-----------------+-----------------+-----------------+-----------------+ +| flowActivationT | string | No | Time the | +| ime | | | connection is | +| | | | activated in | +| | | | the flow being | +| | | | reported on, or | +| | | | transmission | +| | | | time of the | +| | | | first packet if | +| | | | activation time | +| | | | is not | +| | | | available; with | +| | | | RFC 2822 | +| | | | compliant | +| | | | format: ‘Sat, | +| | | | 13 Mar 2010 | +| | | | 11:29:05 -0800’ | ++-----------------+-----------------+-----------------+-----------------+ +| flowDeactivated | string | No | Endpoint | +| By | | | deactivating | +| | | | the flow | ++-----------------+-----------------+-----------------+-----------------+ +| flowDeactivatio | number | Yes | Time for the | +| nEpoch | | | start of the | +| | | | flow | +| | | | connection, in | +| | | | integer UTC | +| | | | epoch time aka | +| | | | UNIX time | ++-----------------+-----------------+-----------------+-----------------+ +| flowDeactivatio | number | Yes | Integer | +| nMicrosec | | | microseconds | +| | | | for the start | +| | | | of the flow | +| | | | connection | ++-----------------+-----------------+-----------------+-----------------+ +| flowDeactivatio | string | Yes | Transmission | +| nTime | | | time of the | +| | | | first packet in | +| | | | the flow | +| | | | connection | +| | | | being reported | +| | | | on; with RFC | +| | | | 2822 compliant | +| | | | format: ‘Sat, | +| | | | 13 Mar 2010 | +| | | | 11:29:05 -0800’ | ++-----------------+-----------------+-----------------+-----------------+ +| flowStatus | string | Yes | Connection | +| | | | status at | +| | | | reporting time | +| | | | as a working / | +| | | | inactive / | +| | | | failed | +| | | | indicator value | ++-----------------+-----------------+-----------------+-----------------+ +| gtpConnectionSt | string | No | Current | +| atus | | | connection | +| | | | state at | +| | | | reporting time | ++-----------------+-----------------+-----------------+-----------------+ +| gtpTunnelStatus | string | No | Current tunnel | +| | | | state at | +| | | | reporting time | ++-----------------+-----------------+-----------------+-----------------+ +| ipTosCountList | hashMap | No | Array of key: | +| | | | value pairs | +| | | | where the keys | +| | | | are drawn from | +| | | | the IP | +| | | | Type-of-Service | +| | | | identifiers | +| | | | which range | +| | | | from '0' to | +| | | | '255', and the | +| | | | values are the | +| | | | count of | +| | | | packets that | +| | | | had those ToS | +| | | | identifiers in | +| | | | the flow | ++-----------------+-----------------+-----------------+-----------------+ +| ipTosList | string | No | Array of unique | +| | | | IP | +| | | | Type-of-Service | +| | | | values observed | +| | | | in the flow | +| | | | where values | +| | | | range from '0' | +| | | | to '255' | ++-----------------+-----------------+-----------------+-----------------+ +| largePacketRtt | number | No | large packet | +| | | | round trip time | ++-----------------+-----------------+-----------------+-----------------+ +| largePacketThre | number | No | large packet | +| shold | | | threshold being | +| | | | applied | ++-----------------+-----------------+-----------------+-----------------+ +| maxPacketDelayV | number | Yes | Maximum packet | +| ariation | | | delay variation | +| | | | or jitter in | +| | | | milliseconds | +| | | | for received | +| | | | packets: | +| | | | Maximum of the | +| | | | difference | +| | | | between the | +| | | | packet | +| | | | timestamp and | +| | | | time received | +| | | | for all pairs | +| | | | of consecutive | +| | | | packets | ++-----------------+-----------------+-----------------+-----------------+ +| maxReceiveBitRa | number | No | maximum receive | +| te | | | bit rate" | ++-----------------+-----------------+-----------------+-----------------+ +| maxTransmitBitR | number | No | maximum | +| ate | | | transmit bit | +| | | | rate | ++-----------------+-----------------+-----------------+-----------------+ +| mobileQciCosCou | hashMap | No | array of key: | +| ntList | | | value pairs | +| | | | where the keys | +| | | | are drawn from | +| | | | LTE QCI or UMTS | +| | | | class of | +| | | | service | +| | | | strings, and | +| | | | the values are | +| | | | the count of | +| | | | packets that | +| | | | had those | +| | | | strings in the | +| | | | flow | ++-----------------+-----------------+-----------------+-----------------+ +| mobileQciCosLis | string | No | Array of unique | +| t | | | LTE QCI or UMTS | +| | | | class-of-servic | +| | | | e | +| | | | values observed | +| | | | in the flow | ++-----------------+-----------------+-----------------+-----------------+ +| numActivationFa | number | Yes | Number of | +| ilures | | | failed | +| | | | activation | +| | | | requests, as | +| | | | observed by the | +| | | | reporting node | ++-----------------+-----------------+-----------------+-----------------+ +| numBitErrors | number | Yes | number of | +| | | | errored bits | ++-----------------+-----------------+-----------------+-----------------+ +| numBytesReceive | number | Yes | number of bytes | +| d | | | received, | +| | | | including | +| | | | retransmissions | ++-----------------+-----------------+-----------------+-----------------+ +| numBytesTransmi | number | Yes | number of bytes | +| tted | | | transmitted, | +| | | | including | +| | | | retransmissions | ++-----------------+-----------------+-----------------+-----------------+ +| numDroppedPacke | number | Yes | number of | +| ts | | | received | +| | | | packets dropped | +| | | | due to errors | +| | | | per virtual | +| | | | interface | ++-----------------+-----------------+-----------------+-----------------+ +| numGtpEchoFailu | number | No | Number of Echo | +| res | | | request path | +| | | | failures where | +| | | | failed paths | +| | | | are defined in | +| | | | 3GPP TS 29.281 | +| | | | sec 7.2.1 and | +| | | | 3GPP TS 29.060 | +| | | | sec. 11.2 | ++-----------------+-----------------+-----------------+-----------------+ +| numGtpTunnelErr | number | No | Number of | +| ors | | | tunnel error | +| | | | indications | +| | | | where errors | +| | | | are defined in | +| | | | 3GPP TS 29.281 | +| | | | sec 7.3.1 and | +| | | | 3GPP TS 29.060 | +| | | | sec. 11.1 | ++-----------------+-----------------+-----------------+-----------------+ +| numHttpErrors | number | No | Http error | +| | | | count | ++-----------------+-----------------+-----------------+-----------------+ +| numL7BytesRecei | number | Yes | number of | +| ved | | | tunneled layer | +| | | | 7 bytes | +| | | | received, | +| | | | including | +| | | | retransmissions | ++-----------------+-----------------+-----------------+-----------------+ +| numL7BytesTrans | number | Yes | number of | +| mitted | | | tunneled layer | +| | | | 7 bytes | +| | | | transmitted, | +| | | | excluding | +| | | | retransmissions | ++-----------------+-----------------+-----------------+-----------------+ +| numLostPackets | number | Yes | number of lost | +| | | | packets | ++-----------------+-----------------+-----------------+-----------------+ +| numOutOfOrderPa | number | Yes | number of | +| ckets | | | out-of-order | +| | | | packets | ++-----------------+-----------------+-----------------+-----------------+ +| numPacketErrors | number | Yes | number of | +| | | | errored packets | ++-----------------+-----------------+-----------------+-----------------+ +| numPacketsRecei | number | Yes | number of | +| vedExclRetrans | | | packets | +| | | | received, | +| | | | excluding | +| | | | retransmission | ++-----------------+-----------------+-----------------+-----------------+ +| numPacketsRecei | number | Yes | number of | +| vedInclRetrans | | | packets | +| | | | received, | +| | | | including | +| | | | retransmission | ++-----------------+-----------------+-----------------+-----------------+ +| numPacketsTrans | number | Yes | number of | +| mittedInclRetra | | | packets | +| ns | | | transmitted, | +| | | | including | +| | | | retransmissions | ++-----------------+-----------------+-----------------+-----------------+ +| numRetries | number | Yes | number of | +| | | | packet retrie | ++-----------------+-----------------+-----------------+-----------------+ +| numTimeouts | number | Yes | number of | +| | | | packet timeouts | ++-----------------+-----------------+-----------------+-----------------+ +| numTunneledL7By | number | Yes | number of | +| tesReceived | | | tunneled layer | +| | | | 7 bytes | +| | | | received, | +| | | | excluding | +| | | | retransmissions | ++-----------------+-----------------+-----------------+-----------------+ +| roundTripTime | number | Yes | Round Trip time | ++-----------------+-----------------+-----------------+-----------------+ +| tcpFlagCountLis | hashMap | No | Array of key: | +| t | | | value pairs | +| | | | where the keys | +| | | | are drawn from | +| | | | TCP Flags and | +| | | | the values are | +| | | | the count of | +| | | | packets that | +| | | | had that TCP | +| | | | Flag in the | +| | | | flow | ++-----------------+-----------------+-----------------+-----------------+ +| tcpFlagList | string | No | Array of unique | +| | | | TCP Flags | +| | | | observed in the | +| | | | flow | ++-----------------+-----------------+-----------------+-----------------+ +| timeToFirstByte | number | Yes | Time in | +| | | | milliseconds | +| | | | between the | +| | | | connection | +| | | | activation and | +| | | | first byte | +| | | | received | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: mobileFlowFields +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The mobileFlowFields datatype consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalField | hashMap | No | Additional | +| s | | | mobileFlow | +| | | | fields if | +| | | | needed | ++-----------------+-----------------+-----------------+-----------------+ +| applicationType | string | No | Application | +| | | | type inferred | ++-----------------+-----------------+-----------------+-----------------+ +| appProtocolType | string | No | Application | +| | | | protocol | ++-----------------+-----------------+-----------------+-----------------+ +| appProtocolVers | string | No | Application | +| ion | | | version | ++-----------------+-----------------+-----------------+-----------------+ +| cid | string | No | Cell Id | ++-----------------+-----------------+-----------------+-----------------+ +| connectionType | string | No | Abbreviation | +| | | | referencing a | +| | | | 3GPP reference | +| | | | point e.g., | +| | | | S1-U, S11, etc | ++-----------------+-----------------+-----------------+-----------------+ +| ecgi | string | No | Evolved Cell | +| | | | Global Id | ++-----------------+-----------------+-----------------+-----------------+ +| flowDirection | string | Yes | Flow direction, | +| | | | indicating if | +| | | | the reporting | +| | | | node is the | +| | | | source of the | +| | | | flow or | +| | | | destination for | +| | | | the flow | ++-----------------+-----------------+-----------------+-----------------+ +| gtpPerFlowMetri | gtpPer | Yes | Mobility GTP | +| cs | FlowMetrics | | Protocol per | +| | | | flow metrics | ++-----------------+-----------------+-----------------+-----------------+ +| gtpProtocolType | string | No | GTP protocol | ++-----------------+-----------------+-----------------+-----------------+ +| gtpVersion | string | No | GTP protocol | +| | | | version | ++-----------------+-----------------+-----------------+-----------------+ +| httpHeader | string | No | HTTP request | +| | | | header, if the | +| | | | flow connects | +| | | | to a node | +| | | | referenced by | +| | | | HTTP | ++-----------------+-----------------+-----------------+-----------------+ +| imei | string | No | IMEI for the | +| | | | subscriber UE | +| | | | used in this | +| | | | flow, if the | +| | | | flow connects | +| | | | to a mobile | +| | | | device | ++-----------------+-----------------+-----------------+-----------------+ +| imsi | string | No | IMSI for the | +| | | | subscriber UE | +| | | | used in this | +| | | | flow, if the | +| | | | flow connects | +| | | | to a mobile | +| | | | device | ++-----------------+-----------------+-----------------+-----------------+ +| ipProtocolType | string | Yes | IP protocol | +| | | | type e.g., TCP, | +| | | | UDP, RTP... | ++-----------------+-----------------+-----------------+-----------------+ +| ipVersion | string | Yes | IP protocol | +| | | | version e.g., | +| | | | IPv4, IPv6 | ++-----------------+-----------------+-----------------+-----------------+ +| lac | string | No | Location area | +| | | | code | ++-----------------+-----------------+-----------------+-----------------+ +| mcc | string | No | Mobile country | +| | | | code | ++-----------------+-----------------+-----------------+-----------------+ +| mnc | string | No | Mobile network | +| | | | code | ++-----------------+-----------------+-----------------+-----------------+ +| mobileFlowField | string | Yes | Version of the | +| sVersion | | | mobileFlowField | +| | | | s | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| msisdn | string | No | MSISDN for the | +| | | | subscriber UE | +| | | | used in this | +| | | | flow, as an | +| | | | integer, if the | +| | | | flow connects | +| | | | to a mobile | +| | | | device | ++-----------------+-----------------+-----------------+-----------------+ +| otherEndpointIp | string | Yes | IP address for | +| Address | | | the other | +| | | | endpoint, as | +| | | | used for the | +| | | | flow being | +| | | | reported on | ++-----------------+-----------------+-----------------+-----------------+ +| otherEndpointPo | integer | Yes | IP Port for the | +| rt | | | reporting | +| | | | entity, as used | +| | | | for the flow | +| | | | being reported | +| | | | on | ++-----------------+-----------------+-----------------+-----------------+ +| otherFunctional | string | No | Functional role | +| Role | | | of the other | +| | | | endpoint for | +| | | | the flow being | +| | | | reported on | +| | | | e.g., MME, | +| | | | S-GW, P-GW, | +| | | | PCRF... | ++-----------------+-----------------+-----------------+-----------------+ +| rac | string | No | Routing area | +| | | | code | ++-----------------+-----------------+-----------------+-----------------+ +| radioAccessTech | string | No | Radio Access | +| nology | | | Technology | +| | | | e.g., 2G, 3G, | +| | | | LTE | ++-----------------+-----------------+-----------------+-----------------+ +| reportingEndpoi | string | Yes | IP address for | +| ntIpAddr | | | the reporting | +| | | | entity, as used | +| | | | for the flow | +| | | | being reported | +| | | | on | ++-----------------+-----------------+-----------------+-----------------+ +| reportingEndpoi | integer | Yes | IP port for the | +| ntPort | | | reporting | +| | | | entity, as used | +| | | | for the flow | +| | | | being reported | +| | | | on | ++-----------------+-----------------+-----------------+-----------------+ +| sac | string | No | Service area | +| | | | code | ++-----------------+-----------------+-----------------+-----------------+ +| samplingAlgorit | integer | No | Integer | +| hm | | | identifier for | +| | | | the sampling | +| | | | algorithm or | +| | | | rule being | +| | | | applied in | +| | | | calculating the | +| | | | flow metrics if | +| | | | metrics are | +| | | | calculated | +| | | | based on a | +| | | | sample of | +| | | | packets, or 0 | +| | | | if no sampling | +| | | | is applied | ++-----------------+-----------------+-----------------+-----------------+ +| tac | string | No | Transport area | +| | | | code | ++-----------------+-----------------+-----------------+-----------------+ +| tunnelId | string | No | Tunnel | +| | | | identifier | ++-----------------+-----------------+-----------------+-----------------+ +| vlanId | string | No | VLAN identifier | +| | | | used by this | +| | | | flow | ++-----------------+-----------------+-----------------+-----------------+ + + ‘SipSignaling’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: sipSignalingFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The sipSignalingFields datatype communicates information about sip +signaling messages, parameters and signaling state; it consists of the +following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalInfor | hashMap | No | Additional | +| mation | | | sipSignaling | +| | | | fields | ++-----------------+-----------------+-----------------+-----------------+ +| compressedSip | string | No | The full SIP | +| | | | request/respons | +| | | | e | +| | | | including | +| | | | headers and | +| | | | bodies | ++-----------------+-----------------+-----------------+-----------------+ +| correlator | string | Yes | Constant across | +| | | | all events on | +| | | | this call | ++-----------------+-----------------+-----------------+-----------------+ +| localIpAddress | string | Yes | Ip address on | +| | | | xNF | ++-----------------+-----------------+-----------------+-----------------+ +| localPort | string | Yes | Port on xNF | ++-----------------+-----------------+-----------------+-----------------+ +| remoteIpAddress | string | Yes | IP address of | +| | | | peer endpoint | ++-----------------+-----------------+-----------------+-----------------+ +| remotePort | string | Yes | Port of peer | +| | | | endpoint | ++-----------------+-----------------+-----------------+-----------------+ +| sipSignalingFie | string | Yes | Version of the | +| ldsVersion | | | sipSignalingFie | +| | | | lds | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ +| summarySip | string | No | The SIP Method | +| | | | or Response | +| | | | (‘INVITE’, ‘200 | +| | | | OK’, ‘BYE’, | +| | | | etc) | ++-----------------+-----------------+-----------------+-----------------+ +| vendorNfNameFie | vendorNfNameFie | Yes | Vendor, NF and | +| lds | lds | | nfModule names | ++-----------------+-----------------+-----------------+-----------------+ + + ‘Voice Quality’ Domain Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: endOfCallVqmSummaries +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The endOfCallVqmSummaries datatype provides end of call voice quality +metrics; it consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| adjacencyName | string | Yes | Adjacency name | ++-----------------+-----------------+-----------------+-----------------+ +| endpointAverage | number | No | Endpoint | +| Jitter | | | average jitter | ++-----------------+-----------------+-----------------+-----------------+ +| endpointDescrip | string | Yes | Enumeration: | +| tion | | | ‘Caller’, | +| | | | ‘Callee’ | ++-----------------+-----------------+-----------------+-----------------+ +| endpointMaxJitt | number | No | Endpoint | +| er | | | maximum jitter | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpOcte | number | No | Endpoint RTP | +| tsDiscarded | | | octets | +| | | | discarded | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpOcte | number | No | Endpoint RTP | +| tsLost | | | octets lost | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpOcte | number | No | Endpoint RTP | +| tsReceived | | | octets received | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpOcte | number | No | Endpoint RTP | +| tsSent | | | octets sent | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpPack | number | No | Endpoint RTP | +| etsDiscarded | | | packets | +| | | | discarded | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpPack | number | No | Endpoint RTP | +| etsLost | | | packets lost | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpPack | number | No | Endpoint RTP | +| etsReceived | | | packets | +| | | | received | ++-----------------+-----------------+-----------------+-----------------+ +| endpointRtpPack | number | No | Endpoint RTP | +| etsSent | | | packets sent | ++-----------------+-----------------+-----------------+-----------------+ +| localAverageJit | number | No | Local average | +| ter | | | jitter | ++-----------------+-----------------+-----------------+-----------------+ +| localAverageJit | number | No | Local average | +| terBufferDelay | | | jitter buffer | +| | | | delay | ++-----------------+-----------------+-----------------+-----------------+ +| localMaxJitter | number | No | Local maximum | +| | | | jitter | ++-----------------+-----------------+-----------------+-----------------+ +| localMaxJitterB | number | No | Local max | +| ufferDelay | | | jitter buffer | +| | | | delay | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpOctetsD | number | No | Local RTP | +| iscarded | | | octets | +| | | | discarded | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpOctetsL | number | No | Local RTP | +| ost | | | octets lost | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpOctetsR | number | No | Local RTP | +| eceived | | | octets received | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpOctetsS | number | No | Local RTP | +| ent | | | octets sent | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpPackets | number | No | Local RTP | +| Discarded | | | packets | +| | | | discarded | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpPackets | number | No | Local RTP | +| Lost | | | packets lost | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpPackets | number | No | Local RTP | +| Received | | | packets | +| | | | received | ++-----------------+-----------------+-----------------+-----------------+ +| localRtpPackets | number | No | Local RTP | +| Sent | | | packets sent | ++-----------------+-----------------+-----------------+-----------------+ +| mosCqe | number | No | Decimal range | +| | | | from 1 to 5 (1 | +| | | | decimal place) | ++-----------------+-----------------+-----------------+-----------------+ +| oneWayDelay | number | No | one-way path | +| | | | delay in | +| | | | milliseconds | ++-----------------+-----------------+-----------------+-----------------+ +| packetLossPerce | number | No | Calculated | +| nt | | | percentage | +| | | | packet loss | +| | | | based on | +| | | | endpoint RTP | +| | | | packets lost | +| | | | (as reported in | +| | | | RTCP) and local | +| | | | RTP packets | +| | | | sent. Direction | +| | | | is based on | +| | | | endpoint | +| | | | description | +| | | | (Caller, | +| | | | Callee). | +| | | | Decimal (2 | +| | | | decimal places) | ++-----------------+-----------------+-----------------+-----------------+ +| rFactor | number | No | rFactor from 0 | +| | | | to 100 | ++-----------------+-----------------+-----------------+-----------------+ +| roundTripDelay | number | No | Round trip | +| | | | delay in | +| | | | milliseconds | ++-----------------+-----------------+-----------------+-----------------+ + +Datatype: voiceQualityFields +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The voiceQualityFields datatype provides statistics related to customer +facing voice products; consists of the following fields: + ++-----------------+-----------------+-----------------+-----------------+ +| Field | Type | Required? | Description | ++=================+=================+=================+=================+ +| additionalInfor | hashMap | No | Additional | +| mation | | | voice quality | +| | | | fields | ++-----------------+-----------------+-----------------+-----------------+ +| calleeSideCodec | string | Yes | Callee codec | +| | | | for the call | ++-----------------+-----------------+-----------------+-----------------+ +| callerSideCodec | string | Yes | Caller codec | +| | | | for the call | ++-----------------+-----------------+-----------------+-----------------+ +| correlator | string | Yes | Constant across | +| | | | all events on | +| | | | this call | ++-----------------+-----------------+-----------------+-----------------+ +| endOfCallVqmSum | endOfCallVqm | No | End of call | +| maries | Summaries | | voice quality | +| | | | metric | +| | | | summaries | ++-----------------+-----------------+-----------------+-----------------+ +| phoneNumber | string | No | Phone number | +| | | | associated with | +| | | | the correlator | ++-----------------+-----------------+-----------------+-----------------+ +| midCallRtcp | string | Yes | Base64 encoding | +| | | | of the binary | +| | | | RTCP data | +| | | | (excluding | +| | | | Eth/IP/UDP | +| | | | headers) | ++-----------------+-----------------+-----------------+-----------------+ +| vendorNfNameFie | vendorNfNameFie | Yes | Vendor, NF and | +| lds | lds | | nfModule names | ++-----------------+-----------------+-----------------+-----------------+ +| voiceQualityFie | string | Yes | Version of the | +| ldsVersion | | | voiceQualityFie | +| | | | lds | +| | | | block as “#.#” | +| | | | where # is a | +| | | | digit; see | +| | | | section 1 for | +| | | | the correct | +| | | | digits to use. | ++-----------------+-----------------+-----------------+-----------------+ + +Exceptions +========== + +RESTful Web Services Exceptions +------------------------------- + +RESTful services generate and send exceptions to clients in response to +invocation errors. Exceptions send HTTP status codes (specified later in +this document for each operation). HTTP status codes may be followed by +an optional JSON exception structure described below. Two types of +exceptions may be defined: service exceptions and policy exceptions. + ++-----------------+-----------------+-----------------+-----------------+ +| **Field Name** | **Data Type** | **Required?** | **Description** | ++=================+=================+=================+=================+ +| messageId | xs:string | Yes | Unique message | +| | | | identifier of | +| | | | the format | +| | | | ‘ABCnnnn’ where | +| | | | ‘ABC’ is either | +| | | | ‘SVC’ for | +| | | | Service | +| | | | Exceptions or | +| | | | ‘POL’ for | +| | | | Policy | +| | | | Exception. | +| | | | | +| | | | Exception | +| | | | numbers may be | +| | | | in the range of | +| | | | 0001 to 9999 | +| | | | where : | +| | | | | +| | | | - 0001 to 2999 | +| | | | are defined | +| | | | by OMA (see | +| | | | OMA’s | +| | | | `Common | +| | | | definitions | +| | | | for RESTful | +| | | | Network | +| | | | APIs <http:/ | +| | | | /technical.open | +| | | | mobilealliance. | +| | | | org/Technical/r | +| | | | elease_program/ | +| | | | docs/REST_NetAP | +| | | | I_Common/V1_0-2 | +| | | | 0120417-C/OMA-T | +| | | | S-REST_NetAPI_C | +| | | | ommon-V1_0-2012 | +| | | | 0417-C.pdf>`__ | +| | | | for details) | +| | | | | +| | | | - 3000-9999 | +| | | | are | +| | | | available | +| | | | and | +| | | | undefined | ++-----------------+-----------------+-----------------+-----------------+ +| text | xs:string | Yes | Message text, | +| | | | with | +| | | | replacement | +| | | | variables | +| | | | marked with %n, | +| | | | where n is an | +| | | | index into the | +| | | | list of | +| | | | <variables> | +| | | | elements, | +| | | | starting at 1 | ++-----------------+-----------------+-----------------+-----------------+ +| variables | xs:string | No | List of zero or | +| | [0..unbounded] | | more strings | +| | | | that represent | +| | | | the contents of | +| | | | the variables | +| | | | used by the | +| | | | message text. | ++-----------------+-----------------+-----------------+-----------------+ +| url | xs:anyUrl | No | Hyperlink to a | +| | | | detailed error | +| | | | resource (e.g., | +| | | | an HTML page | +| | | | for browser | +| | | | user agents). | ++-----------------+-----------------+-----------------+-----------------+ + +Service Exceptions +------------------ + +When a service is not able to process a request, and retrying the +request with the same information will also result in a failure, and the +issue is not related to a service policy issue, then the service will +issue a fault using the service exception fault message. Examples of +service exceptions include invalid input, lack of availability of a +required resource or a processing error. + +A service exception uses the letters 'SVC' at the beginning of the +message identifier. ‘SVC’ service exceptions used by the VES Event +Listener API are defined below. + ++-------------+-------------+-------------+-------------+-------------+ +| *MessageId* | *Descriptio | *Text* | *Variables* | *Parent | +| | n | | | HTTP Code* | +| | / Comment* | | | | ++=============+=============+=============+=============+=============+ +| SVC0001 | General | <custom | None | 400 | +| | service | error | | | +| | error (see | message> | | | +| | SVC2000) | | | | ++-------------+-------------+-------------+-------------+-------------+ +| SVC0002 | Bad | Invalid | %1: message | 400 | +| | parameter | input value | part | | +| | | for message | | | +| | | part %1 | | | ++-------------+-------------+-------------+-------------+-------------+ +| SVC1000 | No server | No server | None | 500 | +| | resources | resources | | | +| | | available | | | +| | | to process | | | +| | | the request | | | ++-------------+-------------+-------------+-------------+-------------+ +| SVC2000 | More | The | %1: human | 400 | +| | elaborate | following | readable | | +| | version of | service | description | | +| | SVC0001 | error | of the | | +| | | occurred: | error | | +| | | %1. Error | | | +| | | code is %2. | %2: error | | +| | | | code | | ++-------------+-------------+-------------+-------------+-------------+ + +.. + + Table 1 - Service Exceptions + +Policy Exceptions +----------------- + +When a service is not able to complete because the request fails to meet +a policy criteria, then the service will issue a fault using the policy +exception fault message. To clarify how a policy exception differs from +a service exception, consider that all the input to an operation may be +valid as meeting the required input for the operation (thus no service +exception), but using that input in the execution of the service may +result in conditions that require the service not to complete. Examples +of policy exceptions include privacy violations, requests not permitted +under a governing service agreement or input content not acceptable to +the service provider. + +A Policy Exception uses the letters 'POL' at the beginning of the +message identifier. ‘POL’ policy exceptions used by the VES Event +Listener API are defined below. + ++-------------+-------------+-------------+-------------+-------------+ +| *MessageId* | *Descriptio | *Text* | *Variables* | *Parent | +| | n | | | HTTP Code* | +| | / Comment* | | | | ++=============+=============+=============+=============+=============+ +| POL0001 | General | A policy | None | 401 | +| | policy | error | | | +| | error (see | occurred. | | | +| | POL2000) | | | | ++-------------+-------------+-------------+-------------+-------------+ +| POL1009 | User not | User has | None | 401 | +| | provisioned | not been | | | +| | for service | provisioned | | | +| | | for service | | | ++-------------+-------------+-------------+-------------+-------------+ +| POL1010 | User | User has | None | 401 | +| | suspended | been | | | +| | from | suspended | | | +| | service | from | | | +| | | service | | | ++-------------+-------------+-------------+-------------+-------------+ +| POL2000 | More | The | %1: human | 401 | +| | elaborate | following | readable | | +| | version of | policy | description | | +| | POL0001 | error | of the | | +| | | occurred: | error | | +| | | %1. Error | | | +| | | code is %2. | %2: error | | +| | | | code | | ++-------------+-------------+-------------+-------------+-------------+ +| POL9003 | Message | Message | None | 400 | +| | size | content | | | +| | exceeds | size | | | +| | limit | exceeds the | | | +| | | allowable | | | +| | | limit | | | ++-------------+-------------+-------------+-------------+-------------+ + +.. + + Table 2 - Policy Exceptions + +RESTful Web Services Definition +=============================== + +REST Operation Overview +----------------------- + +REST Operation Summary +~~~~~~~~~~~~~~~~~~~~~~~ + ++-----------------------+-----------------------+-----------------------+ +| **Operation Action** | **HTTP** | **Resource URL | +| | | relative to | +| | **Verb** | {ServerRoot}, which | +| | | is defined in | +| | | section** **3** | ++-----------------------+-----------------------+-----------------------+ +| publishAnyEvent | POST | /eventListener/v{apiV | +| | | ersion} | ++-----------------------+-----------------------+-----------------------+ +| publishEventBatch | POST | /eventListener/v{apiV | +| | | ersion}/eventBatch | ++-----------------------+-----------------------+-----------------------+ + +Table 3 - REST Operation Summary + +Api Versioning +~~~~~~~~~~~~~~ + +apiVersion is used to describe the major version number of the event +listener API (which is the same as the major version number of this +specification). When this number changes, the implication is: the new +major version will break clients of older major versions in some way, if +they try to use the new API without modification (e.g., unmodified v1 +clients would not be able to use v2 without error). + +The Event Listener shall provide the following HTTP headers in response +to all requests. Additionally, clients may populate these headers on +requests to indicate the specific version they are interested in. + +- X-MinorVersion: 0 + +- X-PatchVersion: 1 + +- X-LatestVersion: 7.0.1 + +If a client requests major version 5 (per the REST resource URL) and +does not specify the above headers, then they will be provided with the +latest patch version of 5.0.x. If the client wants a particular minor +version of major version 5, then they need to supply the X-MinorVersion +header with their request. For example, if they request major version 5 +with X-MinorVersion: 4, they will get the latest patch version of 5.4, +which is 5.4.1 + +Buffering of Events +~~~~~~~~~~~~~~~~~~~~ + +{ServerRoot} is defined in section 3 of this document, which defines the +REST resource URL. One or more FQDNs may be provisioned in an event +source when it is instantiated or updated. If an event source is unable +to reach any of the provisioned FQDNs, it should buffer the event data +specified below, up to a maximum of 1 hour, until a connection can be +established and the events can be successfully delivered to the VES +Event Listener service. + +xNFs acting as event sources should not send syslog events to the VES +Event Listener during debug mode (which is controlled via the Netconf +management interface), but should store syslog events locally for +access, and possible FTP transfer, via the xNF console (e.g., command +line interface). + +If the internal event source event buffer or local storage should +overflow, then the event source should send a Fault event, and should +discard events in a first-in, first-out (FIFO) manner (i.e., discard +oldest events first). + +Message Size +~~~~~~~~~~~~ + +Message size should be limited to 2 megabytes of uncompressed text sent +as application/json. + +Operation: publishAnyEvent +-------------------------- + +Functional Behavior +~~~~~~~~~~~~~~~~~~~ + +Allows authorized clients to publish any single event to the VES event +listener. + +- Supports only secure HTTPS (one way SSL) access. + +- Uses the HTTP verb POST + +- Supports JSON content types + +- Provides HTTP response codes as well as Service and Policy error + messages + +Call Flow +~~~~~~~~~ + +|image3| + +Figure 2 - publishAnyEvent Call Flow + +Input Parameters +~~~~~~~~~~~~~~~~ + +Header Fields (note: all parameter names shall be treated as +case-insensitive): + ++-----------------+-----------------+-----------------+-----------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief | +| | | | description** | ++-----------------+-----------------+-----------------+-----------------+ +| Accept | string | No | Determines the | +| | | | format of the | +| | | | body of the | +| | | | response. Valid | +| | | | values are: | +| | | | | +| | | | - application/ | +| | | | json | ++-----------------+-----------------+-----------------+-----------------+ +| Authorization | string | Yes | The username | +| | | | and password | +| | | | are formed into | +| | | | one string as | +| | | | “username:passw | +| | | | ord”. | +| | | | This string is | +| | | | then Base64 | +| | | | encoded to | +| | | | produce the | +| | | | encoded | +| | | | credential | +| | | | which is | +| | | | communicated in | +| | | | the header | +| | | | after the | +| | | | string | +| | | | “Authorization: | +| | | | Basic “. See | +| | | | examples below. | +| | | | If the | +| | | | Authorization | +| | | | header is | +| | | | missing, then | +| | | | an HTTP 400 | +| | | | Invalid Request | +| | | | message shall | +| | | | be returned. If | +| | | | the string | +| | | | supplied is | +| | | | invalid, then | +| | | | an HTTP 401 | +| | | | Unauthorized | +| | | | message shall | +| | | | be returned. | ++-----------------+-----------------+-----------------+-----------------+ +| Content-length | integer | No | Note that | +| | | | content length | +| | | | is limited to | +| | | | 2Megabyte. | ++-----------------+-----------------+-----------------+-----------------+ +| Content-type | string | Yes | Must be set to | +| | | | one of the | +| | | | following | +| | | | values: | +| | | | | +| | | | - application/ | +| | | | json | ++-----------------+-----------------+-----------------+-----------------+ +| X-MinorVersion | integer | No | The minor | +| | | | version of the | +| | | | API requested | +| | | | by the client | ++-----------------+-----------------+-----------------+-----------------+ +| X-PatchVersion | integer | No | The patch | +| | | | version of the | +| | | | API requested | +| | | | by the client | ++-----------------+-----------------+-----------------+-----------------+ +| X-LatestVersion | string | No | The full | +| | | | version of the | +| | | | API requested | +| | | | by the client | +| | | | expressed as | +| | | | {major}.{minor} | +| | | | .{patch} | ++-----------------+-----------------+-----------------+-----------------+ + +Body Fields: + ++-----------------+-----------------+-----------------+-----------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief | +| | | | description** | ++-----------------+-----------------+-----------------+-----------------+ +| Event | event | Yes | Contains the | +| | | | JSON structure | +| | | | of the common | +| | | | event format. | ++-----------------+-----------------+-----------------+-----------------+ + +Output Parameters +~~~~~~~~~~~~~~~~~ + +Header fields: + ++-----------------+-----------------+-----------------+-----------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief | +| | | | description** | ++-----------------+-----------------+-----------------+-----------------+ +| Content-length | integer | No | Used only in | +| | | | error | +| | | | conditions. | ++-----------------+-----------------+-----------------+-----------------+ +| Content-type | string | No | Used only in | +| | | | error | +| | | | conditions | ++-----------------+-----------------+-----------------+-----------------+ +| Date | datetime | No | Date time of | +| | | | the response in | +| | | | GMT | ++-----------------+-----------------+-----------------+-----------------+ +| X-MinorVersion | integer | Yes | The minor | +| | | | version of the | +| | | | API service | ++-----------------+-----------------+-----------------+-----------------+ +| X-PatchVersion | integer | Yes | The patch | +| | | | version of the | +| | | | API service | ++-----------------+-----------------+-----------------+-----------------+ +| X-LatestVersion | string | Yes | The full | +| | | | version of the | +| | | | API service | +| | | | expressed as | +| | | | {major}.{minor} | +| | | | .{patch} | ++-----------------+-----------------+-----------------+-----------------+ + +Body Fields (for success responses): no content is provided. + +Body Fields (for error responses): + ++---------------+---------------+------------------+--------------------------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief description** | ++---------------+---------------+------------------+--------------------------------+ +| requestError | requestError | Yes (for errors) | Used only in error conditions. | ++---------------+---------------+------------------+--------------------------------+ + +HTTP Status Codes +~~~~~~~~~~~~~~~~~ + ++-----------------------+-----------------------+-----------------------+ +| *Code* | *Reason Phrase* | *Description* | ++=======================+=======================+=======================+ +| 202 | Accepted | The request has been | +| | | accepted for | +| | | processing | ++-----------------------+-----------------------+-----------------------+ +| 400 | Bad Request | Many possible reasons | +| | | not specified by the | +| | | other codes (e.g., | +| | | missing required | +| | | parameters or | +| | | incorrect format). | +| | | The response body may | +| | | include a further | +| | | exception code and | +| | | text. HTTP 400 errors | +| | | may be mapped to | +| | | SVC0001 (general | +| | | service error), | +| | | SVC0002 (bad | +| | | parameter), SVC2000 | +| | | (general service | +| | | error with details) | +| | | or PO9003 (message | +| | | content size exceeds | +| | | the allowable limit). | ++-----------------------+-----------------------+-----------------------+ +| 401 | Unauthorized | Authentication failed | +| | | or was not provided. | +| | | HTTP 401 errors may | +| | | be mapped to POL0001 | +| | | (general policy | +| | | error) or POL2000 | +| | | (general policy error | +| | | with details). | ++-----------------------+-----------------------+-----------------------+ +| 404 | Not Found | The server has not | +| | | found anything | +| | | matching the | +| | | Request-URI. No | +| | | indication is given | +| | | of whether the | +| | | condition is | +| | | temporary or | +| | | permanent. | ++-----------------------+-----------------------+-----------------------+ +| 405 | Method Not Allowed | A request was made of | +| | | a resource using a | +| | | request method not | +| | | supported by that | +| | | resource (e.g., using | +| | | PUT on a REST | +| | | resource that only | +| | | supports POST). | ++-----------------------+-----------------------+-----------------------+ +| 500 | Internal Server Error | The server | +| | | encountered an | +| | | internal error or | +| | | timed out; please | +| | | retry (general | +| | | catch-all server-side | +| | | error).HTTP 500 | +| | | errors may be mapped | +| | | to SVC1000 (no server | +| | | resources). | ++-----------------------+-----------------------+-----------------------+ + +.. _sample-request-and-response-1: + +Sample Request and Response +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _sample-request-1: + +Sample Request +^^^^^^^^^^^^^^ + ++-----------------------------------------------------------------------+ +| POST /eventListener/v7 HTTP/1.1 | +| | +| Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | +| | +| content-type: application/json | +| | +| content-length: 12345 | +| | +| { | +| | +| "event": { | +| | +| "commonEventHeader": { | +| | +| "version": "4.0.1", | +| | +| "vesEventListenerVersion": "7.0.1", | +| | +| "domain": "fault", | +| | +| "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion", | +| | +| "eventId": "fault0000245", | +| | +| "sequence": 1, | +| | +| "priority": "High", | +| | +| "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", | +| | +| "reportingEntityName": "ibcx0001vm002oam001", | +| | +| "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014", | +| | +| "sourceName": "scfx0001vm002cap001", | +| | +| "nfVendorName": "Ericsson", | +| | +| "nfNamingCode": "scfx", | +| | +| "nfcNamingCode": "ssc", | +| | +| "startEpochMicrosec": 1413378172000000, | +| | +| "lastEpochMicrosec": 1413378172000000, | +| | +| "timeZoneOffset": "UTC-05:30" | +| | +| }, | +| | +| "faultFields": { | +| | +| "faultFieldsVersion": 4.0, | +| | +| "alarmCondition": "PilotNumberPoolExhaustion", | +| | +| "eventSourceType": "other", | +| | +| "specificProblem": "Calls cannot complete - pilot numbers are | +| unavailable", | +| | +| "eventSeverity": "CRITICAL", | +| | +| "vfStatus": "Active", | +| | +| "alarmAdditionalInformation": { | +| | +| "PilotNumberPoolSize": "1000" | +| | +| } | +| | +| } | +| | +| } | +| | +| } | ++-----------------------------------------------------------------------+ + +.. _sample-success-response-1: + +Sample Success Response +^^^^^^^^^^^^^^^^^^^^^^^ + ++------------------------+ +| HTTPS/1.1 202 Accepted | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.1 | ++------------------------+ + +Sample Error Responses +^^^^^^^^^^^^^^^^^^^^^^ + +Sample Policy Exception +''''''''''''''''''''''' + ++-------------------------------------------------------------+ +| HTTPS/1.1 400 Bad Request | +| | +| content-type: application/json | +| | +| content-length: 12345 | +| | +| Date: Thu, 04 Jun 2009 02:51:59 GMT | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.1 | +| | +| { | +| | +| “requestError”: { | +| | +| “policyException”: { | +| | +| “messageId”: “POL9003”, | +| | +| “text”: “Message content size exceeds the allowable limit”, | +| | +| } | +| | +| } | +| | +| } | ++-------------------------------------------------------------+ + +Sample Service Exception +'''''''''''''''''''''''' + ++---------------------------------------------------+ +| HTTPS/1.1 400 Bad Request | +| | +| content-type: application/json | +| | +| content-length: 12345 | +| | +| Date: Thu, 04 Jun 2009 02:51:59 GMT | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.1 | +| | +| { | +| | +| “requestError”: { | +| | +| “serviceException”: { | +| | +| “messageId”: “SVC2000”, | +| | +| “text”: “Missing Parameter: %1. Error code is %2” | +| | +| “variables”: [ | +| | +| “severity”, | +| | +| “400” | +| | +| ] | +| | +| } | +| | +| } | +| | +| } | ++---------------------------------------------------+ + +Operation: publishEventBatch +---------------------------- + +.. _functional-behavior-1: + +Functional Behavior +~~~~~~~~~~~~~~~~~~~ + +Allows authorized clients to publish a batch of events to the VES event +listener. + +- Supports only secure HTTPS (one way SSL) access. + +- Uses the HTTP verb POST + +- Supports JSON content types + +- Provides HTTP response codes as well as Service and Policy error + messages + +.. _call-flow-1: + +Call Flow +~~~~~~~~~ + +|image4| + +Figure 3 – publishEventBatch Call Flow + +.. _input-parameters-1: + +Input Parameters +~~~~~~~~~~~~~~~~ + +Header Fields (note: all parameter names shall be treated as +case-insensitive): + ++-----------------+-----------------+-----------------+-----------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief | +| | | | description** | ++-----------------+-----------------+-----------------+-----------------+ +| Accept | string | No | Determines the | +| | | | format of the | +| | | | body of the | +| | | | response. Valid | +| | | | values are: | +| | | | | +| | | | - application/ | +| | | | json | ++-----------------+-----------------+-----------------+-----------------+ +| Authorization | string | Yes | The username | +| | | | and password | +| | | | are formed into | +| | | | one string as | +| | | | “username:passw | +| | | | ord”. | +| | | | This string is | +| | | | then Base64 | +| | | | encoded to | +| | | | produce the | +| | | | encoded | +| | | | credential | +| | | | which is | +| | | | communicated in | +| | | | the header | +| | | | after the | +| | | | string | +| | | | “Authorization: | +| | | | Basic “. See | +| | | | examples below. | +| | | | If the | +| | | | Authorization | +| | | | header is | +| | | | missing, then | +| | | | an HTTP 400 | +| | | | Invalid Request | +| | | | message shall | +| | | | be returned. If | +| | | | the string | +| | | | supplied is | +| | | | invalid, then | +| | | | an HTTP 401 | +| | | | Unauthorized | +| | | | message shall | +| | | | be returned. | ++-----------------+-----------------+-----------------+-----------------+ +| Content-length | integer | No | Note that | +| | | | content length | +| | | | is limited to | +| | | | 2Megabyte. | ++-----------------+-----------------+-----------------+-----------------+ +| Content-type | string | Yes | Must be set to | +| | | | one of the | +| | | | following | +| | | | values: | +| | | | | +| | | | - application/ | +| | | | json | ++-----------------+-----------------+-----------------+-----------------+ +| X-MinorVersion | integer | No | The minor | +| | | | version of the | +| | | | API requested | +| | | | by the client | ++-----------------+-----------------+-----------------+-----------------+ +| X-PatchVersion | integer | No | The patch | +| | | | version of the | +| | | | API requested | +| | | | by the client | ++-----------------+-----------------+-----------------+-----------------+ +| X-LatestVersion | string | No | The full | +| | | | version of the | +| | | | API requested | +| | | | by the client | +| | | | expressed as | +| | | | {major}.{minor} | +| | | | .{patch} | ++-----------------+-----------------+-----------------+-----------------+ + +Body Fields: + ++-----------------+-----------------+-----------------+-----------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief | +| | | | description** | ++-----------------+-----------------+-----------------+-----------------+ +| eventList | eventList | Yes | Array of events | +| | | | conforming to | +| | | | the common | +| | | | event format. | ++-----------------+-----------------+-----------------+-----------------+ + +.. _output-parameters-1: + +Output Parameters +~~~~~~~~~~~~~~~~~ + +Header fields: + ++-----------------+-----------------+-----------------+-----------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief | +| | | | description** | ++-----------------+-----------------+-----------------+-----------------+ +| Content-length | integer | No | Used only in | +| | | | error | +| | | | conditions. | ++-----------------+-----------------+-----------------+-----------------+ +| Content-type | string | No | Used only in | +| | | | error | +| | | | conditions | ++-----------------+-----------------+-----------------+-----------------+ +| Date | datetime | No | Date time of | +| | | | the response in | +| | | | GMT | ++-----------------+-----------------+-----------------+-----------------+ +| X-MinorVersion | integer | Yes | The minor | +| | | | version of the | +| | | | API service | ++-----------------+-----------------+-----------------+-----------------+ +| X-PatchVersion | integer | Yes | The patch | +| | | | version of the | +| | | | API service | ++-----------------+-----------------+-----------------+-----------------+ +| X-LatestVersion | string | Yes | The full | +| | | | version of the | +| | | | API service | +| | | | expressed as | +| | | | {major}.{minor} | +| | | | .{patch} | ++-----------------+-----------------+-----------------+-----------------+ + +Body Fields (for success responses: no content is provided. + +Body Fields (for error responses): + ++---------------+---------------+------------------+--------------------------------+ +| **Parameter** | **Data Type** | **Required?** | **Brief description** | ++---------------+---------------+------------------+--------------------------------+ +| requestError | requestError | Yes (for errors) | Used only in error conditions. | ++---------------+---------------+------------------+--------------------------------+ + +.. _http-status-codes-1: + +HTTP Status Codes +~~~~~~~~~~~~~~~~~ + ++-----------------------+-----------------------+-----------------------+ +| *Code* | *Reason Phrase* | *Description* | ++=======================+=======================+=======================+ +| 202 | Accepted | The request has been | +| | | accepted for | +| | | processing | ++-----------------------+-----------------------+-----------------------+ +| 400 | Bad Request | Many possible reasons | +| | | not specified by the | +| | | other codes (e.g., | +| | | missing required | +| | | parameters or | +| | | incorrect format). | +| | | The response body may | +| | | include a further | +| | | exception code and | +| | | text. HTTP 400 errors | +| | | may be mapped to | +| | | SVC0001 (general | +| | | service error), | +| | | SVC0002 (bad | +| | | parameter), SVC2000 | +| | | (general service | +| | | error with details) | +| | | or PO9003 (message | +| | | content size exceeds | +| | | the allowable limit). | ++-----------------------+-----------------------+-----------------------+ +| 401 | Unauthorized | Authentication failed | +| | | or was not provided. | +| | | HTTP 401 errors may | +| | | be mapped to POL0001 | +| | | (general policy | +| | | error) or POL2000 | +| | | (general policy error | +| | | with details). | ++-----------------------+-----------------------+-----------------------+ +| 404 | Not Found | The server has not | +| | | found anything | +| | | matching the | +| | | Request-URI. No | +| | | indication is given | +| | | of whether the | +| | | condition is | +| | | temporary or | +| | | permanent. | ++-----------------------+-----------------------+-----------------------+ +| 405 | Method Not Allowed | A request was made of | +| | | a resource using a | +| | | request method not | +| | | supported by that | +| | | resource (e.g., using | +| | | PUT on a REST | +| | | resource that only | +| | | supports POST). | ++-----------------------+-----------------------+-----------------------+ +| 500 | Internal Server Error | The server | +| | | encountered an | +| | | internal error or | +| | | timed out; please | +| | | retry (general | +| | | catch-all server-side | +| | | error).HTTP 500 | +| | | errors may be mapped | +| | | to SVC1000 (no server | +| | | resources). | ++-----------------------+-----------------------+-----------------------+ + +.. _sample-request-and-response-2: + +Sample Request and Response +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _sample-request-2: + +Sample Request +^^^^^^^^^^^^^^ + ++-----------------------------------------------------------------------+ +| POST /eventListener/v7/eventBatch HTTP/1.1 | +| | +| Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | +| | +| content-type: application/json | +| | +| | content-length: 12345 | +| | { | +| | +| "eventList": [ | +| | +| { | +| | +| "commonEventHeader": { | +| | +| "version": "4.0.1", | +| | +| "vesEventListenerVersion": "7.0.1", | +| | +| "domain": "fault", | +| | +| "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion", | +| | +| "eventId": "fault0000250", | +| | +| "sequence": 1, | +| | +| "priority": "High", | +| | +| "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", | +| | +| "reportingEntityName": "ibcx0001vm002oam0011234", | +| | +| "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014", | +| | +| "sourceName": "scfx0001vm002cap001", | +| | +| "nfVendorName": "Ericsson", | +| | +| "nfNamingCode": "scfx", | +| | +| "nfcNamingCode": "ssc", | +| | +| "startEpochMicrosec": 1413378172000000, | +| | +| "lastEpochMicrosec": 1413378172000000, | +| | +| "timeZoneOffset": "UTC-05:30" | +| | +| }, | +| | +| "faultFields": { | +| | +| "faultFieldsVersion": 4.0, | +| | +| "alarmCondition": "PilotNumberPoolExhaustion", | +| | +| "eventSourceType": "other", | +| | +| "specificProblem": "Calls cannot complete - pilot numbers are | +| unavailable", | +| | +| "eventSeverity": "CRITICAL", | +| | +| "vfStatus": "Active", | +| | +| "alarmAdditionalInformation": { | +| | +| "PilotNumberPoolSize": "1000" | +| | +| } | +| | +| } | +| | +| }, | +| | +| { | +| | +| "commonEventHeader": { | +| | +| "version": "4.0.1", | +| | +| "vesEventListenerVersion": "7.0.1", | +| | +| "domain": "fault", | +| | +| "eventName": " Fault_Vscf:Acs-Ericcson_RecordingServerUnreachable", | +| | +| "eventId": "fault0000251", | +| | +| "sequence": 0, | +| | +| "priority": "High", | +| | +| "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", | +| | +| "reportingEntityName": "ibcx0001vm002oam0011234", | +| | +| "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014", | +| | +| "sourceName": "scfx0001vm002cap001", | +| | +| "nfVendorName": "Ericsson", | +| | +| "nfNamingCode": "scfx", | +| | +| "nfcNamingCode": "ssc", | +| | +| "startEpochMicrosec": 1413378172000010, | +| | +| "lastEpochMicrosec": 1413378172000010, | +| | +| "timeZoneOffset": "UTC-05:30" | +| | +| }, | +| | +| "faultFields": { | +| | +| "faultFieldsVersion": 4.0, | +| | +| "alarmCondition": "RecordingServerUnreachable", | +| | +| "eventSourceType": "other", | +| | +| "specificProblem": "Recording server unreachable", | +| | +| "eventSeverity": "CRITICAL", | +| | +| "vfStatus": "Active" | +| | +| } | +| | +| } | +| | +| ] | +| | +| } | ++-----------------------------------------------------------------------+ + +.. _sample-success-response-2: + +Sample Success Response +^^^^^^^^^^^^^^^^^^^^^^^ + ++------------------------+ +| HTTPS/1.1 202 Accepted | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.1 | ++------------------------+ + +.. _sample-error-responses-1: + +Sample Error Responses +^^^^^^^^^^^^^^^^^^^^^^ + +.. _sample-policy-exception-1: + +Sample Policy Exception +''''''''''''''''''''''' + ++-------------------------------------------------------------+ +| HTTPS/1.1 400 Bad Request | +| | +| content-type: application/json | +| | +| content-length: 12345 | +| | +| Date: Thu, 04 Jun 2009 02:51:59 GMT | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.1 | +| | +| { | +| | +| “requestError”: { | +| | +| “policyException”: { | +| | +| “messageId”: “POL9003”, | +| | +| “text”: “Message content size exceeds the allowable limit”, | +| | +| } | +| | +| } | +| | +| } | ++-------------------------------------------------------------+ + +.. _sample-service-exception-1: + +Sample Service Exception +'''''''''''''''''''''''' + ++---------------------------------------------------+ +| HTTPS/1.1 400 Bad Request | +| | +| content-type: application/json | +| | +| content-length: 12345 | +| | +| Date: Thu, 04 Jun 2009 02:51:59 GMT | +| | +| X-MinorVersion: 0 | +| | +| X-PatchVersion: 1 | +| | +| X-LatestVersion: 7.0.0 | +| | +| { | +| | +| “requestError”: { | +| | +| “serviceException”: { | +| | +| “messageId”: “SVC2000”, | +| | +| “text”: “Missing Parameter: %1. Error code is %2” | +| | +| “variables”: [ | +| | +| “severity”, | +| | +| “400” | +| | +| ] | +| | +| } | +| | +| } | +| | +| } | ++---------------------------------------------------+ + +Terminology +=========== + +Terminology used in this document is summarized below: + +**A&AI**. Active & Available Inventory is the ONAP component that +provides data views of Customer Subscriptions, Products, Services, +Resources, and their relationships. + +**Alarm Condition**. Short name of the alarm condition/problem, such as +a trap name. + +**APPC (formerly APP-C)**. Application Controller. Handles the life +cycle management of Virtual Network Functions (VNFs). + +**ASDC**. AT&T Service Design and Creation Platform: the original name +for the SDC. Replaced by SDC. + +**Common Event Format**. A JSON schema describing events sent to the VES +Event Listener. + +**Common Event Header**. A component of the Common Event Format JSON +structure. This datatype consists of fields common to all events. + +**DCAE**. Data Collection Analysis and Events. DCAE is the ONAP +subsystem that supports closed loop control and higher-level correlation +for business and operations activities. DCAE collects performance, +usage, and configuration data, provides computation of analytics, aids +in trouble-shooting and management, and publishes event, data, and +analytics to the rest of the ONAP system for FCAPS functionality. + +**DMaaP.** Data Movement as a Platform. A set of common services +provided by ONAP, including a Message Router, Data Router, and a Data +Bus Controller. + +**Domain**. In VES, an event ‘domain’ identifies a broad category of +events (e.g., ‘fault’ or ‘measurement’), each of which is associated +with a VES domain field block, which is sent with the commonEventHeader +when events of that category are generated. + +**ECOMP**. Enhanced Control, Orchestration, Management and Policy +preceded ONAP and is the name given to AT&T’s instance of the ONAP +platform. + +**Epoch**. The number of seconds that have elapsed since +00:00:00 \ `Coordinated Universal +Time <https://en.wikipedia.org/wiki/Coordinated_Universal_Time>`__ (UTC), +Thursday, 1 January 1970. Every day is treated as if it contains exactly +86400 seconds, so \ `leap +seconds <https://en.wikipedia.org/wiki/Leap_second>`__ are not applied +to seconds since the Epoch. In VES Epoch times are measured in +microseconds. + +**Event.** A well-structured packet of network management information +identified by an eventName which is asynchronously communicated to one +or more instances of an Event Listener service to subscribers interested +in that eventName. Events can convey measurements, faults, syslogs, +threshold crossing alerts, and others types of information. + +**Event Id**. Event key that is unique to the event source. The key must +be unique within notification life cycle similar to EventID from 3GPP. +It could be a sequential number, or a composite key formed from the +event fields, such as sourceName_alarmCondition_startEpoch. The eventId +should not include whitespace. For fault events, eventId is the eventId +of the initial alarm; if the same alarm is raised again for changed, +acknowledged or cleared cases, eventId must be the same as the initial +alarm (along with the same startEpochMicrosec and an incremental +sequence number. + +**Event Name**. Identifier for specific types of events. Specific +eventNames registered by the YAML may require that certain fields, which +are optional in the Common Event Format, be present when events with +that eventName are published. + +**Event Streaming**. The delivery of network management event +information in real time. + +**Extensible Data Structures**. Data structures (e.g., hashMap) that +allow event sources to send information not specifically identified in +the VES schema. + +**Hash Map**. A hash table, or data structure, used to implement an +associative array, a structure than can map keys to values. In VES 6.0, +all name-value pair structures were changed to hash maps (i.e., {‘name’: +‘keyName’, ‘value’: ‘keyValue’} was replaced with {‘keyName’: +‘keyValue’}). + +**ICE**. Incubation and Certification Environment. Facilitates vendors +and third-party in developing virtual network functions using ONAP and a +network cloud. + +**IPMI**. The `Intelligent Platform Management +Interface <https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface>`__. + +**JSON**. Java Script Object Notation. JSON is an +`open-standard <https://en.wikipedia.org/wiki/Open_standard>`__ `file +format <https://en.wikipedia.org/wiki/File_format>`__ that uses +`human-readable <https://en.wikipedia.org/wiki/Human-readable_medium>`__ +text to transmit data objects consisting of `attribute–value +pairs <https://en.wikipedia.org/wiki/Attribute%E2%80%93value_pair>`__ +and `array data types <https://en.wikipedia.org/wiki/Array_data_type>`__ +(or any other +`serializable <https://en.wikipedia.org/wiki/Serialization>`__ value). +It is a very common `data <https://en.wikipedia.org/wiki/Data>`__ format +used for +`asynchronous <https://en.wikipedia.org/wiki/Asynchronous_I/O>`__ +browser–server communication. + +**NF**. Network Function. Generalized name for a VNF or PNF. + +**NFC**. Network Function Component. Generalized name for a VNFC or a +component of a PNF. + +**ONAP**. `Open Network Automation Platform <https://www.onap.org/>`__. + +**PNF**. Physical Network Function. + +**Policy**. Course of action for the management of the network. The ONAP +Policy Framework is a comprehensive policy design, deployment, and +execution environment. The Policy Framework is the **decision making** +component in `an ONAP +system <https://www.onap.org/wp-content/uploads/sites/20/2017/12/ONAP_CaseSolution_Architecture_120817_FNL.pdf>`__. +It allows you to specify, deploy, and execute the governance of the +features and functions in your ONAP system, be they closed loop, +orchestration, or more traditional open loop use case implementations. +The Policy Framework is the component that is the source of truth for +all policy decisions. + +**Reporting Entity Name**. Name of the entity reporting the event or +detecting a problem in another vnf/vm or pnf which is experiencing the +problem. May be the same as the sourceName. Not used for performance +measurements currently. + +**SDC**. Service Design and Creation Platform: The ONAP visual modeling +and design tool. It creates internal metadata that describes assets used +by all ONAP components, both at design time and run time. The SDC +manages the content of a catalog, and assemblies of selected catalog to +define how and when VNFs are realized in a target environment. + +**Source Name**: Name of the entity experiencing the event issue, which +may be detected and reported by a separate reporting entity. The +sourceName identifies the device for which data is collected. A valid +sourceName must be inventoried in A&AI. + +**Specific Problem**. Description of the alarm or problem. + +**VES**. Virtual Function Event Stream. In 6.0, the definition of VES +was expanded to include event streaming for VNF, PNF and infrastructure. +The VES Event Listener can receive any event sent in the VES Common +Event Format. + +**VES Event Listener**. A RESTful connectionless push event listener +capable of receiving single events or batches of events sent in the +Common Event Format. + +**VM**. Virtual Machine. + +**VNF**. Virtual Network Function. A VNF is a virtualized task formerly +carried out by proprietary, dedicated network hardware. (Examples: +virtual firewall, virtual DNS). A VNF can also be defined as a specific +kind of Vendor Software Product. + +**YAML**. A `data serialization +language <https://en.wikipedia.org/wiki/Data_serialization_language>`__ +and superset of JSON. + +**VNFC**. Virtual Network Function Component. A VNFC is a part of a VNF. +It is a stand-alone executable that is loosely-coupled, granular, +re-usable, and responsible for a single capability. + +Appendix: Historical Change Log +=============================== + +For the latest changes, see the Change Block just before the Table of +Contents. + ++-----------------------+-----------------------+-----------------------+ +| Date | Revision | Description | ++-----------------------+-----------------------+-----------------------+ +| 5/22/2015 | 0.1 | Initial Release - | +| | | Draft | ++-----------------------+-----------------------+-----------------------+ +| 5/29/2015 | 0.2 | - Introduction: | +| | | removed all | +| | | system names | +| | | and references | +| | | to internal | +| | | AT&T components | +| | | | +| | | - Security: changed | +| | | ‘event | +| | | publisher’ to | +| | | ‘event source’ | +| | | | +| | | - Generic Event | +| | | Format: updated | +| | | the JSON schema | +| | | per the below: | +| | | | +| | | - eventHeader: | +| | | clarified the | +| | | description of | +| | | id, made | +| | | sourceId a | +| | | required field, | +| | | changed the | +| | | datatype of | +| | | timestamps to | +| | | timestamp [ ] | +| | | | +| | | - performanceFields: | +| | | removed | +| | | overflowFields | +| | | | +| | | - tmestamp: added a | +| | | description of | +| | | this datatype | +| | | | +| | | - Exceptions: fixed | +| | | indentation of | +| | | sections | +| | | | +| | | - Approvers: updated | +| | | the list of | +| | | approvers and | +| | | added attuids | ++-----------------------+-----------------------+-----------------------+ +| 6/3/2015 | 0.3 | - Updated the | +| | | security | +| | | section to use | +| | | HTTP Basic | +| | | Authentication | +| | | per AT&T REST | +| | | standards. | +| | | Updated the | +| | | input | +| | | parameters and | +| | | messaging | +| | | examples to use | +| | | the new | +| | | security | +| | | scheme. | ++-----------------------+-----------------------+-----------------------+ +| 6/5/2015 | 0.4 | - Added otherFields | +| | | sub section to | +| | | the defined | +| | | datatypes | +| | | | +| | | - Added locale field | +| | | to the | +| | | eventHeader. | ++-----------------------+-----------------------+-----------------------+ +| 6/5/2015 | 0.5 | - Updated the | +| | | embedded event | +| | | format json | +| | | schema to match | +| | | the changes | +| | | made in v0.4 | ++-----------------------+-----------------------+-----------------------+ +| 6/10/2015 | 0.6 | - Updated the | +| | | {ServerRoot} | +| | | format to | +| | | contain an | +| | | optional | +| | | routing path | +| | | (for D2 service | +| | | modules). | ++-----------------------+-----------------------+-----------------------+ +| 7/7/2015 | 0.7 | Common Event | +| | | Format updates: | +| | | | +| | | - EventHeader: added | +| | | ‘measurement’ | +| | | to the ‘domain’ | +| | | enumeration; | +| | | changed | +| | | ‘locale’ to | +| | | ‘location’ and | +| | | clarified in | +| | | the description | +| | | that this | +| | | should be a | +| | | clli code | +| | | | +| | | - Added a | +| | | MeasurementFiel | +| | | ds | +| | | datatype, which | +| | | required the | +| | | addition of the | +| | | following | +| | | datatypes: | +| | | codecsInUse, | +| | | cpuUsage, | +| | | diskUsage, | +| | | featuresInUse, | +| | | memoryUsage | ++-----------------------+-----------------------+-----------------------+ +| 7/15/2015 | 1.0 | - Changed | +| | | sourceInstance in | +| | | the eventHeader to | +| | | be an array of | +| | | name value pairs | +| | | | +| | | - Changed the | +| | | performanceFields | +| | | block to | +| | | thresholdCrossingA | +| | | lertFields. | +| | | Updated the domain | +| | | field of the | +| | | eventHeader to | +| | | match. | ++-----------------------+-----------------------+-----------------------+ +| 7/23/2015 | v1.1 | Changes to | +| | | eventHeader data | +| | | format: | +| | | | +| | | - moved | +| | | sourceInstance | +| | | to | +| | | internalHeaderF | +| | | ields | +| | | | +| | | - moved | +| | | serviceInstance | +| | | Id | +| | | to | +| | | internalHeaderF | +| | | ields | +| | | | +| | | - moved productId to | +| | | internalHeaderF | +| | | ields | +| | | | +| | | - moved subscriberId | +| | | to | +| | | internalHeaderF | +| | | ields | +| | | | +| | | - moved location to | +| | | internalHeaderF | +| | | ields | +| | | | +| | | - added the | +| | | following new | +| | | fields in | +| | | internalHeaderF | +| | | ields: | +| | | policyType, | +| | | policyName, | +| | | correlationEven | +| | | tType, | +| | | correlationType | +| | | , | +| | | correlationName | +| | | , | +| | | correlationRoot | +| | | EventId | +| | | | +| | | - Changes to | +| | | faultFields | +| | | data format: | +| | | | +| | | - moved the | +| | | eventSourceDevi | +| | | ceDescription | +| | | to | +| | | internalFaultFi | +| | | elds | +| | | and renamed it | +| | | equipmentVendor | +| | | Model | +| | | | +| | | - moved | +| | | eventSourceHost | +| | | name | +| | | to | +| | | internalFaultFi | +| | | elds | +| | | | +| | | - changed | +| | | alarmObjectInte | +| | | rface | +| | | to | +| | | alarmInterfaceA | +| | | | +| | | - changed | +| | | alarmRemoteObje | +| | | ct | +| | | to | +| | | alarmRemoteObje | +| | | ctZ | +| | | and moved it to | +| | | internalFaultFi | +| | | elds | +| | | | +| | | - changed | +| | | alarmRemoteObje | +| | | ctInterface | +| | | to | +| | | alarmInterfaceZ | +| | | and moved it to | +| | | internalFaultFi | +| | | elds | +| | | | +| | | - Changes to | +| | | thresholdCrossi | +| | | ngFields | +| | | data format: | +| | | | +| | | - changed several | +| | | references from | +| | | the old | +| | | ‘performanceFie | +| | | lds’ | +| | | block to the | +| | | new | +| | | ‘thresholdCross | +| | | ingFields’ | +| | | block | +| | | | +| | | - Other: | +| | | | +| | | - Fixed several | +| | | comma and colon | +| | | syntax errors | +| | | in the JSON | +| | | schema as | +| | | detected by a | +| | | JSON schema | +| | | syntax checker. | ++-----------------------+-----------------------+-----------------------+ +| 8/11/2015 | v1.2 | Timestamp format: | +| | | | +| | | - Section 4.18: | +| | | added a note in | +| | | the datetime | +| | | field of the | +| | | Timestamp | +| | | datatype | +| | | specifying the | +| | | (GMT) format | +| | | required | +| | | | +| | | - Updated the JSON | +| | | schema with the | +| | | same | +| | | information | +| | | | +| | | .. | +| | | | +| | | Event Header | +| | | Severity | +| | | Enumeration: | +| | | | +| | | - Section 4.8: | +| | | modified the | +| | | severity | +| | | enumeration to | +| | | remove the | +| | | numbers in | +| | | parentheses | +| | | that followed | +| | | the names. The | +| | | names were not | +| | | changed. | +| | | | +| | | - Updated the JSON | +| | | schema with the | +| | | same | +| | | information. | ++-----------------------+-----------------------+-----------------------+ +| 8/20/2015 | v1.3 | JSON Schema rev’d to | +| | | v9: | +| | | | +| | | - Alphabetized all | +| | | fields in the | +| | | JSON schema | +| | | | +| | | - Fixed the way | +| | | arrays were | +| | | specified (JSON | +| | | schema syntax | +| | | issue) | +| | | | +| | | Sample Responses: | +| | | | +| | | - 2.1.1.1: | +| | | alphabetized | +| | | fields, fixed | +| | | timestamps | +| | | array | +| | | depiction, | +| | | fixed severity | +| | | enum value to | +| | | conform to | +| | | latest format | +| | | | +| | | - 6.2.6.1: | +| | | alphabetized | +| | | fields, fixed | +| | | timestamps | +| | | array | +| | | depiction, | +| | | fixed severity | +| | | enum value to | +| | | conform to | +| | | latest format | +| | | | +| | | - 6.3.6.1: | +| | | alphabetized | +| | | fields, fixed | +| | | timestamps | +| | | array | +| | | depiction, | +| | | fixed severity | +| | | enum value to | +| | | conform to | +| | | latest format | +| | | | +| | | - 6.4.6.1: | +| | | alphabetized | +| | | fields, fixed | +| | | timestamps | +| | | array | +| | | depiction, | +| | | fixed eventList | +| | | array | +| | | depection, | +| | | fixed severity | +| | | enum value to | +| | | conform to | +| | | latest format | ++-----------------------+-----------------------+-----------------------+ +| 9/16/2015 | v1.4 | JSON Schema rev’d to | +| | | v10: | +| | | | +| | | - Fixed an error in | +| | | the way that | +| | | the top level | +| | | “event” object | +| | | was specified | +| | | in the v9 json | +| | | schema. This | +| | | was discovered | +| | | when validating | +| | | examples | +| | | against the | +| | | schema using | +| | | this site: | +| | | http://json-sch | +| | | ema-validator.herokua | +| | | pp.com/index.jsp. | +| | | | +| | | - Changed the | +| | | embedded json | +| | | file in section | +| | | 4 | +| | | | +| | | Sample Responses: | +| | | | +| | | - Removed an extra | +| | | comma after the | +| | | timestamp brace | +| | | in section | +| | | 6.2.6 and | +| | | 6.3.6. | ++-----------------------+-----------------------+-----------------------+ +| 11/11/2015 | v1.5 | Section 4 was the | +| | | only section changed: | +| | | JSON Schema rev’d to | +| | | v11 and Datatype | +| | | tables were updated | +| | | to match. Numerous | +| | | data structure | +| | | changes were made | +| | | based on VNF vendor | +| | | proof of concept | +| | | feedback. Modified | +| | | sample requests and | +| | | responses to match. | ++-----------------------+-----------------------+-----------------------+ +| 11/12/2015 | v1.6 | - The | +| | | internalFaultFi | +| | | elds | +| | | were merged | +| | | into the | +| | | internalHeaderF | +| | | ields; | +| | | then the | +| | | internalFaultFi | +| | | elds | +| | | datatype was | +| | | deleted. | +| | | | +| | | - Updated the JSON | +| | | schema to v12. | +| | | | +| | | - Also corrected | +| | | some background | +| | | color issues in | +| | | the sample | +| | | requests and | +| | | responses. | ++-----------------------+-----------------------+-----------------------+ +| 1/18/2016 | v1.7 | - Section 2 changes: | +| | | updated the | +| | | sample request | +| | | to conform with | +| | | the changes | +| | | below | +| | | | +| | | - Section 4 datatype | +| | | changes: | +| | | | +| | | - Changed | +| | | 'eventHeader' | +| | | to | +| | | 'commonEventHea | +| | | der' | +| | | | +| | | - Moved | +| | | 'eventSeverity' | +| | | from the | +| | | 'commonEventHea | +| | | der' | +| | | to | +| | | 'faultFields' | +| | | | +| | | - Added 'priority' | +| | | to | +| | | 'commonEventHea | +| | | der' | +| | | | +| | | - moved 'vFstatus' | +| | | to | +| | | 'faultFields' | +| | | | +| | | - removed | +| | | 'firstDateTime' | +| | | and | +| | | 'lastDateTime' | +| | | and changed | +| | | 'firstEpoch' to | +| | | 'startEpochMicr | +| | | osec' | +| | | and changed | +| | | 'lastEpoch' to | +| | | 'lastEpochMicro | +| | | sec'. | +| | | | +| | | - Added | +| | | 'functionalRole | +| | | ' | +| | | to the | +| | | commonEventHead | +| | | er | +| | | | +| | | - In the | +| | | commonEventHead | +| | | er, | +| | | changed the | +| | | 'eventDomain' | +| | | enumeration to | +| | | remove | +| | | 'measurements' | +| | | and add | +| | | 'measurementsFo | +| | | rVfScaling'. | +| | | | +| | | - Changed the | +| | | 'measurementFie | +| | | lds' | +| | | to | +| | | 'measurementsFo | +| | | rVfScalingFields' | +| | | | +| | | - In the | +| | | commonEventHead | +| | | er, | +| | | changed the | +| | | following | +| | | fields: | +| | | | +| | | - 'eventDomain' to | +| | | 'domain' | +| | | | +| | | - 'eventSequence' to | +| | | 'sequence' | +| | | | +| | | - 'eventSourceId' to | +| | | 'sourceId' | +| | | | +| | | - 'eventSounceName' | +| | | to 'sourceName' | +| | | | +| | | - Updated the JSON | +| | | schema to v13 | +| | | | +| | | - Section 6 changes: | +| | | updated the | +| | | input | +| | | parameters and | +| | | sample requests | +| | | to conform to | +| | | the changes | +| | | above. | +| | | | +| | | - Section 7: changed | +| | | the section | +| | | from Approvers | +| | | to | +| | | Contributors. | ++-----------------------+-----------------------+-----------------------+ +| 1/22/2016 | v1.8 | - Section 4: Added | +| | | support for | +| | | ‘mobileFlow’ in | +| | | the | +| | | commonEventHead | +| | | er | +| | | ‘domain’ | +| | | enumeration. | +| | | Added the | +| | | mobileFlowField | +| | | s | +| | | datatype and | +| | | the | +| | | gtpPerFlowMetri | +| | | cs | +| | | datatype | +| | | referenced by | +| | | that datatype. | +| | | | +| | | - Section 7: | +| | | alphabetized | +| | | the | +| | | contributors | ++-----------------------+-----------------------+-----------------------+ +| 2/11/2016 | v1.9 | - Added section 1.3: | +| | | Naming Standard | +| | | for Event Types | ++-----------------------+-----------------------+-----------------------+ +| 2/12/2016 | v2.0 | - Updated request – | +| | | response | +| | | examples to | +| | | reflect the | +| | | naming | +| | | standards for | +| | | event types | +| | | introduced in | +| | | v1.9. | +| | | | +| | | - Added a paragraph | +| | | on use of Avro | +| | | as a transport | +| | | in section 1.4 | ++-----------------------+-----------------------+-----------------------+ +| 3/11/2016 | v2.1 | - Updated the | +| | | embedded JSON | +| | | schema to v15 | +| | | to fix a typo | +| | | in the required | +| | | fields for the | +| | | measurementsFor | +| | | VfScalingFields, | +| | | namely, changed | +| | | ‘configuredEnti | +| | | tes’ | +| | | to | +| | | ‘configuredEnti | +| | | ties’. | +| | | Additionally, | +| | | added an ‘Event | +| | | Listener’ title | +| | | block at the | +| | | bottom of the | +| | | file with a | +| | | single required | +| | | event object. | ++-----------------------+-----------------------+-----------------------+ +| 3/15/2016 | v2.2 | - Added | +| | | mobileFlowField | +| | | s | +| | | to the event | +| | | datatype | +| | | definition in | +| | | section 4.7 and | +| | | updated the | +| | | embedded json | +| | | schema at the | +| | | top of section | +| | | 4 to v16. | ++-----------------------+-----------------------+-----------------------+ +| 4/26/2016 | v2.3 | - Generic Event | +| | | Format updates: | +| | | 1) made | +| | | ‘priority’ | +| | | lowercase in | +| | | the Word doc | +| | | table for | +| | | commonEventHead | +| | | er; | +| | | 2) added | +| | | ‘requestError’ | +| | | data structure | +| | | to the Word doc | +| | | and JSON schema | +| | | (which is now | +| | | at v17) | ++-----------------------+-----------------------+-----------------------+ +| 4/27/2016 | v2.4 | - JSON Schema: In | +| | | the 'event' | +| | | data structure, | +| | | changed | +| | | 'thresholdCross | +| | | ingFields' | +| | | to | +| | | 'thresholdCross | +| | | ingAlertFields' | +| | | to product v18 | +| | | of the schema. | +| | | | +| | | - 'codecsInUse' data | +| | | structure: | +| | | changed | +| | | 'numberInUse' | +| | | to | +| | | 'codecUtilizati | +| | | on’ | ++-----------------------+-----------------------+-----------------------+ +| 5/26/2016 | v2.5 | - Changed responses | +| | | from ‘204 No | +| | | Content’ to | +| | | ‘202 Accepted’ | +| | | and added a | +| | | body to the | +| | | response that | +| | | enable AT&T to | +| | | throttle the | +| | | events being | +| | | sent and/or to | +| | | request the | +| | | current state | +| | | of throttling | +| | | at the event | +| | | source. | +| | | | +| | | - Added new | +| | | datatypes to | +| | | support the | +| | | above: | +| | | eventDomainThro | +| | | ttleSpecification, | +| | | eventDomainThro | +| | | ttleSpecificationList | +| | | , | +| | | eventThrottling | +| | | State, | +| | | suppressedNvPai | +| | | rs | +| | | | +| | | - Modifed the | +| | | commonEventForm | +| | | at | +| | | json schema to | +| | | v19 | +| | | | +| | | - Note: for the | +| | | VendorEventList | +| | | ener: | +| | | added new | +| | | licensing | +| | | language on the | +| | | back of the | +| | | title page; | +| | | added an | +| | | “attCopyrightNo | +| | | tice” | +| | | definition at | +| | | the top of the | +| | | commonEventForm | +| | | at_Vendors.json | +| | | file; also | +| | | removed all | +| | | references to | +| | | internalHeaderF | +| | | ields | +| | | from this file | +| | | and from the | +| | | VendorEventList | +| | | ener | +| | | spec. | ++-----------------------+-----------------------+-----------------------+ +| 8/9/2016 | v2.6 | - commonHeader: | +| | | added a note on | +| | | the description | +| | | of sourceId and | +| | | sourceName in | +| | | the | +| | | commonHeader: | +| | | "use | +| | | reportingEntity | +| | | for domains | +| | | that provide | +| | | more detailed | +| | | source info" | +| | | | +| | | - commonHeader: | +| | | deleted the | +| | | capacity, | +| | | measurementsFor | +| | | VfScaling | +| | | and usage | +| | | domains in the | +| | | domain | +| | | enumeration | +| | | | +| | | - commonHeader: | +| | | added the | +| | | following | +| | | domains to the | +| | | domain | +| | | enumeration: | +| | | licensingKci, | +| | | scalingKpi, | +| | | stateChange | +| | | | +| | | - event: removed | +| | | references to | +| | | capacityFields, | +| | | measurementsFor | +| | | VfScalingFields | +| | | and usageFields | +| | | and added | +| | | references to | +| | | licensingKciFie | +| | | lds, | +| | | scalingKpiField | +| | | s, | +| | | stateChangeFiel | +| | | ds | +| | | | +| | | - licensingKciFields | +| | | : | +| | | added this | +| | | section along | +| | | with | +| | | 'additionalMeas | +| | | urements', | +| | | which is an | +| | | optional list | +| | | of | +| | | measurementGrou | +| | | p | +| | | structures. | +| | | Changed the | +| | | name of | +| | | kciFieldsVersio | +| | | n | +| | | to | +| | | licensingKciFie | +| | | ldsVersion. | +| | | | +| | | - scalingKpiFields: | +| | | added this | +| | | section but | +| | | changed | +| | | measurementFiel | +| | | dsVersion | +| | | to | +| | | scalingKpiField | +| | | sVersion | +| | | | +| | | - stateChangeFields: | +| | | added this | +| | | section along | +| | | with | +| | | 'additionalFiel | +| | | ds', | +| | | which is an | +| | | optional list | +| | | of name-value | +| | | pairs. Other | +| | | fields included | +| | | newState and | +| | | oldState which | +| | | were | +| | | enumerations of | +| | | the following | +| | | possible | +| | | states: | +| | | 'inService', | +| | | 'maintenance', | +| | | 'outOfService' | +| | | | +| | | - sysLogFields: | +| | | added | +| | | 'additionalFiel | +| | | ds', | +| | | which is an | +| | | optional list | +| | | of name-value | +| | | pairs | +| | | | +| | | - vNicUsage: added | +| | | two required | +| | | fields to the | +| | | vNicUsage data | +| | | structure: | +| | | packetsIn and | +| | | packetsOut | ++-----------------------+-----------------------+-----------------------+ +| 8/10/2016 | v2.7 | - commonHeader: | +| | | removed the | +| | | note on the | +| | | description of | +| | | sourceId and | +| | | sourceName in | +| | | the | +| | | commonHeader: | +| | | "use | +| | | reportingEntity | +| | | for domains | +| | | that provide | +| | | more detailed | +| | | source info" | +| | | | +| | | - commonHeader: | +| | | added | +| | | measurementsFor | +| | | VfScaling | +| | | domain back and | +| | | removed the | +| | | licensingKci | +| | | and scalingKpi | +| | | domains | +| | | | +| | | - event: removed | +| | | references to | +| | | licensingKciFie | +| | | lds | +| | | and | +| | | scalingKpiField | +| | | s; | +| | | added | +| | | references to | +| | | measurementsFor | +| | | VfScalingFields | +| | | | +| | | - measurementsForVfS | +| | | calingFields: | +| | | combined the | +| | | kciDetail and | +| | | kpiDetail | +| | | structures into | +| | | the | +| | | measurementsFor | +| | | VfScalingFields | +| | | structure; | +| | | referenced the | +| | | errors | +| | | structure | +| | | | +| | | - errors: added a | +| | | new structure | +| | | to capture the | +| | | receive and | +| | | transmit errors | +| | | for the | +| | | measurements | +| | | domain | +| | | | +| | | - removed the | +| | | following | +| | | structures: | +| | | kci, kpi, | +| | | scalingKpiField | +| | | s | +| | | and | +| | | licensingKciFie | +| | | lds | +| | | | +| | | - eventDomainThrottl | +| | | eSpecification: | +| | | updated the | +| | | reference to | +| | | commonEventHead | +| | | er | +| | | domain field | +| | | | +| | | - faultFields: | +| | | removed the | +| | | numbers from | +| | | the enumerated | +| | | strings for | +| | | eventSourceType | +| | | | +| | | - vNicUsage: made | +| | | the broadcast, | +| | | multicast and | +| | | unicast fields | +| | | optional | +| | | | +| | | - contributors: | +| | | updated Alok’s | +| | | organizational | +| | | area | ++-----------------------+-----------------------+-----------------------+ +| 8/12/2016 | v2.8 | - commonHeader: | +| | | copied the | +| | | descriptions of | +| | | sourceId and | +| | | sourceName from | +| | | the JSON schema | +| | | into the word | +| | | document | +| | | tables. | +| | | | +| | | - sample request | +| | | examples: moved | +| | | the | +| | | reportingEntity | +| | | Id | +| | | and | +| | | reportingEntity | +| | | Names | +| | | to the same | +| | | relative place | +| | | in all sample | +| | | requests in the | +| | | document | +| | | | +| | | - Fixed the sample | +| | | request shown | +| | | for | +| | | publishEventBat | +| | | ch | +| | | to take an | +| | | eventList as | +| | | input. | +| | | | +| | | - Fixed the sample | +| | | request shown | +| | | for | +| | | publishSpecific | +| | | Topic | +| | | to put the | +| | | topic in the | +| | | URL | +| | | | +| | | - errors: changed | +| | | the | +| | | receiveErrors | +| | | and | +| | | transmitErrors | +| | | fields to be | +| | | datatype number | +| | | | +| | | - codesInUse: | +| | | changed | +| | | 'codecUtilizati | +| | | on' | +| | | to | +| | | 'numberinUse' | +| | | | +| | | - vNicUsage: updated | +| | | the description | +| | | of the fields | ++-----------------------+-----------------------+-----------------------+ +| 8/27/2016 | v2.9 | - Added a note | +| | | "(currently: | +| | | 1.1)" in the | +| | | descriptions of | +| | | the following | +| | | fields: | +| | | commonEventHead | +| | | er:version, | +| | | faultFields:fau | +| | | ltFieldsVersion, | +| | | measurementsFor | +| | | VfScalingFields:measu | +| | | rementsForVfScalingFi | +| | | eldsVersion, | +| | | stateChangeFiel | +| | | ds:stateChangeFieldsV | +| | | ersion, | +| | | sysLogFields:sy | +| | | slogFieldsVersion, | +| | | thresholdCrossi | +| | | ngAlertFields:thresho | +| | | ldCrossingFieldsVersi | +| | | on | +| | | | +| | | - stateChangeFields: | +| | | made | +| | | stateInterface | +| | | mandatory | +| | | | +| | | - changed 'enum' to | +| | | 'enumeration' | +| | | throughout | +| | | section 4 of | +| | | the document | +| | | (note: this | +| | | can't be done | +| | | in the JSON | +| | | schema). | +| | | | +| | | - measurementsForVfS | +| | | calingFields: | +| | | made the | +| | | following | +| | | fields | +| | | optional: | +| | | conurrentSessio | +| | | ns, | +| | | configuredEntit | +| | | ites, | +| | | cpuUsageArray, | +| | | fileSystemUsage | +| | | Array, | +| | | memoryConfigure | +| | | d, | +| | | memoryUsed, | +| | | requestRate, | +| | | vNicUsageArray | +| | | | +| | | - measurementsForVfS | +| | | calingFields: | +| | | concurrentSessi | +| | | ons | +| | | and | +| | | configuredEntit | +| | | ies: | +| | | changed the | +| | | description to | +| | | support both | +| | | VMs and VNFs | +| | | | +| | | - measurementsFor | +| | | VfScalingFields | +| | | : | +| | | clarified the | +| | | descriptions of | +| | | latencyDistribu | +| | | tion, | +| | | measurementInve | +| | | rval | +| | | and requestRate | +| | | | +| | | - syslogFields: | +| | | clarified the | +| | | descriptions of | +| | | syslogSData, | +| | | syslogTag, | +| | | syslogVer | +| | | | +| | | - thresholdCrossingA | +| | | lertFields: | +| | | made the | +| | | following | +| | | fields optional | +| | | and clarified | +| | | their | +| | | descriptions: | +| | | elementType, | +| | | networkService | +| | | | +| | | - command and | +| | | commandList: | +| | | created a list | +| | | of command | +| | | structures to | +| | | enable the | +| | | event collector | +| | | to request | +| | | changes of | +| | | event sources. | +| | | Commands | +| | | consist of a | +| | | commandType | +| | | along with | +| | | optional fields | +| | | (whose presence | +| | | is indicated by | +| | | the | +| | | commandType). | +| | | Three command | +| | | types are | +| | | currently | +| | | supported: | +| | | 'measurementInt | +| | | evalChange', | +| | | ‘provideThrottl | +| | | ingState’ | +| | | and | +| | | 'throttlingSpec | +| | | ification'. | +| | | | +| | | - eventDomainThrottl | +| | | eSpecificationList: | +| | | removed this | +| | | and replaced it | +| | | with | +| | | commandList. | +| | | | +| | | - Operations and | +| | | Sample | +| | | Requests: | +| | | modified the | +| | | operations and | +| | | samples to | +| | | support the new | +| | | command and | +| | | commandList | +| | | structures. | ++-----------------------+-----------------------+-----------------------+ +| 9/1/2016 | v2.10 | - measurementsForVfS | +| | | caling | +| | | block: made the | +| | | following | +| | | fields | +| | | optional: | +| | | latencyDistribu | +| | | tion | +| | | (which is an | +| | | array of | +| | | latencyBucketMe | +| | | asure | +| | | structures) and | +| | | meanRequestLate | +| | | ncy. | +| | | Updated the | +| | | JSON schemas | +| | | (now v24) to | +| | | match. | ++-----------------------+-----------------------+-----------------------+ +| 9/16/2016 | v2.11 | - 1 Introduction: | +| | | updated the | +| | | introduction to | +| | | clarify the | +| | | usage of | +| | | eventTypes and | +| | | the possibility | +| | | of support for | +| | | other | +| | | protocols. | +| | | | +| | | - 6.1 REST Operation | +| | | Overview: added | +| | | two new | +| | | subsections | +| | | (6.1.2 and | +| | | 6.1.3) | +| | | discussing Api | +| | | Version and | +| | | Commands Toward | +| | | Event Source | +| | | Clients. | +| | | | +| | | - 6.2 | +| | | publishAnyEvent | +| | | : | +| | | fixed the | +| | | sample to | +| | | conform to the | +| | | latest changes | +| | | | +| | | - 6.3 | +| | | publishSpecific | +| | | Topic: | +| | | fixed the | +| | | sample to | +| | | conform to the | +| | | latest changes | +| | | | +| | | - 6.4 | +| | | publishEventBat | +| | | ch: | +| | | fixed the | +| | | sample to | +| | | conform to the | +| | | latest changes | +| | | | +| | | - 6.5 | +| | | provideThrottli | +| | | ngState | +| | | operation: | +| | | added the Input | +| | | Parameters | +| | | section heading | +| | | back and fixed | +| | | the sample | +| | | request to | +| | | provide | +| | | eventThrottling | +| | | State | +| | | (instead of | +| | | eventThrottling | +| | | ClientState). | +| | | | +| | | - The remaining | +| | | bullets | +| | | describe | +| | | changes made to | +| | | section 4 | +| | | datatypes in | +| | | alphabetical | +| | | order: | +| | | | +| | | - command datatype: | +| | | referenced the | +| | | new section | +| | | 6.1.3 which | +| | | provides an | +| | | explanation of | +| | | command state | +| | | expectations | +| | | and | +| | | requirements | +| | | for a given | +| | | eventSource: | +| | | | +| | | - commonEventHeader | +| | | datatype: | +| | | | +| | | - made sourceId | +| | | and | +| | | reportingEnt | +| | | ityId | +| | | fields | +| | | optional | +| | | (although | +| | | the internal | +| | | Generic | +| | | Event | +| | | Listener | +| | | spec | +| | | indicates, | +| | | in the field | +| | | descriptions | +| | | , | +| | | that the | +| | | AT&T | +| | | enrichment | +| | | process | +| | | shall ensure | +| | | that these | +| | | fields are | +| | | populated) | +| | | | +| | | - domain | +| | | enumeration: | +| | | changed | +| | | measurements | +| | | ForVfScalingFields | +| | | to | +| | | measurements | +| | | ForVfScaling | +| | | | +| | | - eventDomainThrottl | +| | | eSpecificationList: | +| | | added this | +| | | array of | +| | | eventDomainThro | +| | | ttleSpecification | +| | | stuctures back | +| | | to the schema | +| | | because it is | +| | | used by the | +| | | provideThrottli | +| | | ngState | +| | | operation. | +| | | | +| | | - eventList: added | +| | | eventList back | +| | | to the vendor | +| | | version of the | +| | | commonEventForm | +| | | at. | +| | | This is used by | +| | | the | +| | | publishEventBat | +| | | ch | +| | | operation. | +| | | | +| | | - faultFields | +| | | datatype: | +| | | | +| | | - eventSourceType | +| | | : | +| | | made this a | +| | | string (and | +| | | provided the | +| | | previous | +| | | enumerated | +| | | values as | +| | | examples) | +| | | | +| | | - filesystemUsage | +| | | datatype: | +| | | | +| | | - changed | +| | | vmIdentifier | +| | | to | +| | | filesystemNa | +| | | me | +| | | | +| | | - gtpPerFlowMetrics | +| | | datatype: | +| | | | +| | | - flowActivationT | +| | | ime: | +| | | changed the | +| | | format and | +| | | description | +| | | to be | +| | | compliant | +| | | with RFC | +| | | 2822. | +| | | | +| | | - flowDeactivatio | +| | | nTime: | +| | | changed the | +| | | format and | +| | | description | +| | | to be | +| | | compliant | +| | | with RFC | +| | | 2822. | +| | | | +| | | - internalHeaderFiel | +| | | ds | +| | | datatype: | +| | | | +| | | - Added the | +| | | following | +| | | optional | +| | | fields: | +| | | firstDateTim | +| | | e, | +| | | lastDateTime | +| | | compliant | +| | | with RFC | +| | | 2822. Noted | +| | | in the | +| | | description | +| | | that these | +| | | fields must | +| | | be supplied | +| | | for events | +| | | in the | +| | | following | +| | | domains: | +| | | fault, | +| | | thresholdCro | +| | | ssingAlerts | +| | | and | +| | | measurements | +| | | ForVfScaling. | +| | | | +| | | - ticketingTimest | +| | | amp: | +| | | changed the | +| | | format and | +| | | description | +| | | to be | +| | | compliant | +| | | with RFC | +| | | 2822. | +| | | | +| | | - syslogFields | +| | | datatype: | +| | | | +| | | - eventSourceType | +| | | : | +| | | made this a | +| | | string (and | +| | | provided the | +| | | previous | +| | | enumerated | +| | | values, | +| | | without the | +| | | numbers, as | +| | | examples) | +| | | | +| | | - thresholdCrossingA | +| | | lerts | +| | | dataypte: | +| | | | +| | | - collectionTimes | +| | | tamp: | +| | | changed the | +| | | format and | +| | | description | +| | | to be | +| | | compliant | +| | | with RFC | +| | | 2822. | +| | | | +| | | - eventStartTimes | +| | | tamp: | +| | | changed the | +| | | format and | +| | | description | +| | | to be | +| | | compliant | +| | | with RFC | +| | | 2822. | +| | | | +| | | - added the same | +| | | eventSeverit | +| | | y | +| | | field as | +| | | from the | +| | | faultFields | +| | | and made it | +| | | required | ++-----------------------+-----------------------+-----------------------+ +| 9/23/2016 | v2.12 | - Section 4 | +| | | Datatypes: | +| | | commonEventHead | +| | | er: | +| | | made | +| | | reportingEntity | +| | | Name | +| | | a required | +| | | field (note: | +| | | the JSON schema | +| | | already had | +| | | this field as | +| | | required) | ++-----------------------+-----------------------+-----------------------+ +| 11/29/2016 | v3.0 | - Introduction: | +| | | | +| | | - Introductory | +| | | paragraph: | +| | | changed | +| | | '...Common | +| | | Event Header | +| | | Block | +| | | followed by | +| | | zero or more | +| | | event domain | +| | | blocks' to | +| | | '...Common | +| | | Event Header | +| | | Block | +| | | accompanied | +| | | by zero or | +| | | more event | +| | | domain | +| | | blocks' | +| | | since the | +| | | order of the | +| | | blocks on | +| | | the wire is | +| | | not | +| | | guaranteed. | +| | | | +| | | - Added Section | +| | | 1.5 | +| | | Versioning | +| | | | +| | | - Section 4: codec | +| | | processing: | +| | | | +| | | - CommonEventForm | +| | | at_Vendors | +| | | schema only: | +| | | codesInUse: | +| | | changed | +| | | required | +| | | field from | +| | | "codecUtiliz | +| | | ation" | +| | | which was | +| | | removed | +| | | previously | +| | | to | +| | | "numberInUse | +| | | " | +| | | which is the | +| | | new field | +| | | name. | +| | | | +| | | - added | +| | | ‘codecSelect | +| | | ed’ | +| | | datatype | +| | | | +| | | - added | +| | | ‘codecSelect | +| | | edTranscoding’ | +| | | datatype | +| | | | +| | | - Section 4 and | +| | | section 6: | +| | | command | +| | | processing: | +| | | | +| | | - Added | +| | | commandListE | +| | | ntry | +| | | which is an | +| | | object that | +| | | references | +| | | the command | +| | | object. | +| | | | +| | | - commandList: | +| | | changed | +| | | commandList | +| | | to contain | +| | | an array of | +| | | commandListE | +| | | ntry | +| | | objects. | +| | | | +| | | - Updated sample | +| | | responses in | +| | | section 6 | +| | | where | +| | | commands are | +| | | used | +| | | | +| | | - Section 4: | +| | | commonEventHead | +| | | er: | +| | | | +| | | - Incremented | +| | | version to | +| | | 1.2 | +| | | | +| | | - added two new | +| | | values to | +| | | the ‘domain’ | +| | | enumeration: | +| | | ‘serviceEven | +| | | ts’ | +| | | and | +| | | ‘signaling | +| | | | +| | | - Section 4: added | +| | | endOfCallVqmSum | +| | | maries | +| | | datatype | +| | | | +| | | - Section 4: | +| | | ‘event’: added | +| | | two fields: | +| | | ‘serviceEventsF | +| | | ields’ | +| | | and | +| | | ‘signalingField | +| | | s’ | +| | | | +| | | - Section 4: added | +| | | ‘eventInstanceI | +| | | dentifier’datatype | +| | | | +| | | - Section 4: | +| | | CommonEventList | +| | | ener | +| | | only: | +| | | internalHeaderF | +| | | ields: | +| | | | +| | | - added | +| | | ‘internalHea | +| | | derFieldsVersion’(ini | +| | | tially | +| | | set to 1.1) | +| | | | +| | | - added | +| | | ‘correlation | +| | | FirstEpoch’ | +| | | | +| | | - added | +| | | 'closedLoopC | +| | | ontrolName' | +| | | | +| | | - added | +| | | 'closedLoopF | +| | | lag' | +| | | | +| | | - added | +| | | 'collectorTi | +| | | meStamp' | +| | | | +| | | - added | +| | | 'eventTag' | +| | | | +| | | - added | +| | | ‘tenantName’ | +| | | | +| | | - changed | +| | | 'operational | +| | | Status' | +| | | to 'inMaint' | +| | | | +| | | - added required | +| | | fields in | +| | | the schema | +| | | to match the | +| | | word doc: | +| | | 'equipmentNa | +| | | meCode', | +| | | 'equipmentTy | +| | | pe', | +| | | 'equipmentVe | +| | | ndor', | +| | | 'inMaint', | +| | | 'provStatus' | +| | | | +| | | - Section 4: added | +| | | ‘marker’datatyp | +| | | e | +| | | | +| | | - Section 4: added | +| | | ‘midCallRtcp’ | +| | | datatype | +| | | | +| | | - Section 4: | +| | | mobileFlowField | +| | | s: | +| | | | +| | | - added | +| | | ‘mobileFlowF | +| | | ieldsVersion’(initial | +| | | ly | +| | | set to 1.1) | +| | | | +| | | - Section 4: added | +| | | ‘serviceEventsF | +| | | ields’datatype | +| | | | +| | | - Section 4: added | +| | | ‘signalingField | +| | | s’ | +| | | datatype | +| | | | +| | | - Section 4: | +| | | syslogFields: | +| | | | +| | | - Incremented | +| | | syslogFields | +| | | Version | +| | | to 1.2 | +| | | | +| | | - added | +| | | 'syslogPri' | +| | | | +| | | - added | +| | | 'syslogSev' | +| | | | +| | | - added | +| | | ‘syslogSdId’ | +| | | | +| | | - Section 4: | +| | | thresholdCrossi | +| | | ngAlertFields: | +| | | | +| | | - Incremented | +| | | thresholdCro | +| | | ssingFieldsVersion | +| | | to 1.2 | +| | | | +| | | - added | +| | | 'additionalF | +| | | ields' | +| | | which is an | +| | | optional | +| | | list of name | +| | | value pairs. | +| | | | +| | | - Section 4: schema | +| | | v26.0 embedded | +| | | reflecting the | +| | | above changes. | +| | | | +| | | - Section 6 and | +| | | Section 2: | +| | | changed all | +| | | sample requests | +| | | to use /v3 in | +| | | the REST | +| | | Resource URL. | ++-----------------------+-----------------------+-----------------------+ +| 12/1/2016 | v3.1 | - Section 6: Updated | +| | | the call flow | +| | | diagrams to | +| | | show ‘v3’ | ++-----------------------+-----------------------+-----------------------+ +| 1/5/2017 | v4.0 | - Combined the | +| | | Generic Event | +| | | Listener and | +| | | Vendor Event | +| | | Listener into a | +| | | single API | +| | | service | +| | | specification | +| | | with version | +| | | 4.0. | +| | | | +| | | - Changed the title | +| | | to VES (Virtual | +| | | Function Event | +| | | Streaming) | +| | | Listener. | +| | | | +| | | - Changed references | +| | | to 'generic | +| | | event' to | +| | | 'common event' | +| | | or 'VES event' | +| | | (depending on | +| | | the context) | +| | | throughout the | +| | | document. | +| | | | +| | | - Used the Legal | +| | | Disclaimer from | +| | | the Vendor | +| | | Event Listener | +| | | on the back of | +| | | the title page. | +| | | | +| | | - Section 1: | +| | | Introduction | +| | | changes: | +| | | | +| | | - modified | +| | | wording to | +| | | reference | +| | | 'VES' | +| | | | +| | | - removed the | +| | | 'Audience' | +| | | section, | +| | | which | +| | | described | +| | | various AT&T | +| | | groups the | +| | | documented | +| | | was intended | +| | | for | +| | | | +| | | - tweaked the | +| | | naming | +| | | standards | +| | | for event | +| | | types to | +| | | clarify the | +| | | purpose of | +| | | the naming | +| | | conventions | +| | | | +| | | - Section 3: | +| | | Resource | +| | | Structure: | +| | | added a | +| | | sentence | +| | | describing the | +| | | FQDN and port | +| | | used in the | +| | | resource URL. | +| | | | +| | | - Section 4: Common | +| | | Event Format | +| | | changes: | +| | | | +| | | - renamed the | +| | | section to | +| | | 'Common | +| | | Event | +| | | Format' from | +| | | 'Generic | +| | | Event | +| | | Format' | +| | | | +| | | - reorganized the | +| | | datatypes | +| | | into | +| | | separate | +| | | sections; | +| | | sections | +| | | were defined | +| | | for each of | +| | | the domains | +| | | as well as | +| | | for common | +| | | event, | +| | | common event | +| | | header and | +| | | command list | +| | | processing | +| | | | +| | | - codecSelected | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - codecSelectedTr | +| | | anscoding | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - command | +| | | datatype: | +| | | added an | +| | | enumerated | +| | | value to | +| | | commandType: | +| | | 'heartbeatIn | +| | | tervalChange' | +| | | | +| | | - commonEventHead | +| | | er: | +| | | added | +| | | internalHead | +| | | erFields | +| | | to the | +| | | commonEventH | +| | | eader, | +| | | defined as | +| | | "Fields (not | +| | | supplied by | +| | | event | +| | | sources) | +| | | that the VES | +| | | Event | +| | | Listener | +| | | service can | +| | | use to | +| | | enrich the | +| | | event if | +| | | needed for | +| | | efficient | +| | | internal | +| | | processing. | +| | | This is an | +| | | empty object | +| | | which is | +| | | intended to | +| | | be defined | +| | | separately | +| | | by each | +| | | provider | +| | | implementing | +| | | the VES | +| | | Event | +| | | Listener." | +| | | | +| | | - commonEventHead | +| | | er: | +| | | removed two | +| | | enumerated | +| | | values, | +| | | 'serviceEven | +| | | ts' | +| | | and | +| | | 'signaling' | +| | | from the | +| | | domain | +| | | enumeration | +| | | | +| | | - commonEventHead | +| | | er | +| | | version: | +| | | incremented | +| | | the version | +| | | to 2.0 | +| | | | +| | | - endOfCallVqmSum | +| | | maries | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - event: changed | +| | | the | +| | | description | +| | | of the event | +| | | datatype to: | +| | | "fields | +| | | which | +| | | constitute | +| | | the ‘root | +| | | level’ of | +| | | the common | +| | | event | +| | | format" | +| | | | +| | | - event: removed | +| | | 'serviceEven | +| | | tFields' | +| | | and | +| | | 'signalingFi | +| | | elds' | +| | | from the | +| | | definition | +| | | | +| | | - event: fixed a | +| | | misspelling | +| | | of | +| | | ‘thresholdCr | +| | | ossingAlertFields’, | +| | | which was | +| | | only present | +| | | in the Word | +| | | document | +| | | | +| | | - eventInstanceId | +| | | entifier | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - internalHeaderF | +| | | Ields | +| | | datatype: | +| | | defined this | +| | | as follows: | +| | | "The | +| | | internalHead | +| | | erFields | +| | | datatype is | +| | | an undefined | +| | | object which | +| | | can contain | +| | | arbitrarily | +| | | complex JSON | +| | | structures. | +| | | It is | +| | | intended to | +| | | be defined | +| | | separately | +| | | by each | +| | | provider | +| | | implementing | +| | | the VES | +| | | Event | +| | | Listener. | +| | | The fields | +| | | in | +| | | internalHead | +| | | erFields | +| | | are not | +| | | provided by | +| | | any event | +| | | source but | +| | | instead are | +| | | added by the | +| | | VES Event | +| | | Listener | +| | | service | +| | | itself as | +| | | part of an | +| | | event | +| | | enrichment | +| | | process | +| | | necessary | +| | | for | +| | | efficient | +| | | internal | +| | | processing | +| | | of events | +| | | received by | +| | | the VES | +| | | Event | +| | | Listener" | +| | | | +| | | - marker | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - measurementsFor | +| | | VfScalingFields | +| | | datatype: | +| | | clarified | +| | | that | +| | | memoryConfig | +| | | ured | +| | | and | +| | | memoryUsed | +| | | are measured | +| | | in MB | +| | | | +| | | - midCallRtcp | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - mobileFlowField | +| | | s | +| | | datatype: | +| | | added | +| | | ‘additionalF | +| | | ields’ | +| | | | +| | | - mobileFlowField | +| | | s | +| | | datatype: | +| | | incremented | +| | | the version | +| | | number for | +| | | this field | +| | | block to 1.2 | +| | | | +| | | - serviceEventsFi | +| | | elds | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - signalingFields | +| | | datatype: | +| | | removed this | +| | | datatype | +| | | | +| | | - syslogFields: | +| | | added three | +| | | fields to | +| | | the schema | +| | | that were | +| | | previously | +| | | described in | +| | | the document | +| | | but not | +| | | incorporated | +| | | into the | +| | | schema: | +| | | syslogPri, | +| | | syslogSev, | +| | | syslogSdId | +| | | | +| | | - syslogFields | +| | | version: | +| | | incremented | +| | | the version | +| | | to 2.0 | +| | | | +| | | - Modified the | +| | | Common Event | +| | | Format JSON | +| | | schema to v27.0 | +| | | to incorporate | +| | | the above | +| | | changes. Also, | +| | | added the AT&T | +| | | Copyright | +| | | Notice from the | +| | | top of the | +| | | retired | +| | | CommonEventForm | +| | | at_Vendors | +| | | schema. | +| | | | +| | | - Section 6 and 2: | +| | | changed all | +| | | sample requests | +| | | to use /v4 in | +| | | the REST | +| | | Resource URL | +| | | and call flow | +| | | diagrams. | +| | | | +| | | - Section 6.1.3: | +| | | added a row to the | +| | | table in this | +| | | section describing | +| | | the | +| | | ‘heartbeatInterval | +| | | Change’ | +| | | command. | +| | | | +| | | - Section 6.1.4: | +| | | added this new | +| | | section describing | +| | | expectations for | +| | | buffering of | +| | | events should all | +| | | REST resource URL | +| | | FQDNs be | +| | | unreachable. | +| | | | +| | | - Section 6 Sample | +| | | Requests: modified | +| | | all sample | +| | | requests showing | +| | | the return of a | +| | | commandList toward | +| | | the event source | +| | | to incorporate a | +| | | heartbeatIntervalC | +| | | hange | +| | | command; also | +| | | corrected the | +| | | spelling in the | +| | | samples for the | +| | | measurementInterva | +| | | lChange | +| | | command. | +| | | | +| | | - Section 7: | +| | | Contributors: | +| | | removed this | +| | | section | ++-----------------------+-----------------------+-----------------------+ +| 3/21/2017 | v4.1 | - JSON Schema | +| | | changes to produce | +| | | v27.2 (note: an | +| | | earlier draft | +| | | version of v27.1 | +| | | had been | +| | | distributed to a | +| | | few individuals): | +| | | | +| | | - To support use | +| | | of the schema | +| | | with event | +| | | batches, | +| | | removed the | +| | | following | +| | | statement near | +| | | the end of the | +| | | schema file: | +| | | | +| | | .. | +| | | | +| | | “required”: [ | +| | | “event” ] | +| | | | +| | | - Fixed the | +| | | characters used in | +| | | some of the quotes | +| | | | +| | | - Fixed some typos | +| | | in the | +| | | descriptions. | +| | | | +| | | - Removed the | +| | | booleans, which | +| | | were non-essential | +| | | and which were | +| | | causing problems | +| | | across different | +| | | implementations. | +| | | | +| | | - Section 4.5.7 | +| | | measurementsFor | +| | | VfScalingFields: | +| | | | +| | | - Fixed the | +| | | spelling of | +| | | measurements | +| | | ForVfScalingFields | +| | | in the Word | +| | | document | +| | | | +| | | - Section 2 and 6 | +| | | sample requests | +| | | and responses: | +| | | | +| | | - Removed quotes | +| | | from | +| | | numbers: | +| | | sequence, | +| | | and | +| | | first/lastEp | +| | | ochMicrosec. | +| | | | +| | | - Fixed all quote | +| | | characters, | +| | | some of | +| | | which were | +| | | using | +| | | unusual | +| | | symbols that | +| | | wouldn’t | +| | | validate | +| | | with the | +| | | json-schema | +| | | Python | +| | | package. | +| | | | +| | | - Section 6.2.6.1, | +| | | 6.3.6.1, | +| | | 6.4.6.1 sample | +| | | requests: | +| | | | +| | | - Added an | +| | | alarmAdditio | +| | | nalInformation | +| | | field array | +| | | to the | +| | | sample | +| | | requests. | +| | | | +| | | - Added missing | +| | | commas. | +| | | | +| | | - Section 6.5.6.1 | +| | | provideThrottli | +| | | ngState | +| | | sample | +| | | requests: | +| | | | +| | | - Fixed the | +| | | eventDomainT | +| | | hrottleSpecificationL | +| | | ist | +| | | to pass an | +| | | array of | +| | | anonymous | +| | | eventDomainT | +| | | hrottleSpecification | +| | | objects. | +| | | | +| | | - Added missing | +| | | quotes. | +| | | | +| | | - Fixed the | +| | | suppressedNvPai | +| | | rsList | +| | | to pass an | +| | | array of | +| | | anonymous | +| | | suppressedNvPai | +| | | rs | +| | | objects. | ++-----------------------+-----------------------+-----------------------+ +| 4/14/2017 | v5.0 | - Section 1 | +| | | Introduction: | +| | | | +| | | - Clarified the | +| | | Introduction | +| | | (Section 1). | +| | | | +| | | - Changed Section | +| | | 1.1 title from | +| | | ‘Terminology’ | +| | | to 'Event | +| | | Registration' | +| | | and referenced | +| | | the YAML event | +| | | registration | +| | | format, defined | +| | | in a separate | +| | | document. | +| | | | +| | | - Clarified | +| | | naming | +| | | standards for | +| | | eventName. | +| | | | +| | | - Section 3: updated | +| | | the REST | +| | | resource | +| | | structure | +| | | | +| | | - Section 4.1 | +| | | command list | +| | | processing | +| | | datatypes: | +| | | | +| | | - Got rid of | +| | | commandListE | +| | | ntry | +| | | and returned | +| | | commandList | +| | | to a simple | +| | | array of | +| | | commands. | +| | | | +| | | - Added | +| | | heartbeatInt | +| | | erval | +| | | to the | +| | | command | +| | | datatype. | +| | | | +| | | - Changed the | +| | | datatype of | +| | | measurementI | +| | | nterval | +| | | from number | +| | | to integer. | +| | | | +| | | - Section 4.2 common | +| | | event | +| | | datatypes: | +| | | | +| | | - event dataType: | +| | | Added | +| | | heartbeatFie | +| | | lds, | +| | | sipSignaling | +| | | Fields | +| | | and | +| | | voiceQuality | +| | | Fields | +| | | to the event | +| | | datatype as | +| | | optional | +| | | field blocks | +| | | | +| | | - Added | +| | | jsonObject | +| | | which | +| | | provides a | +| | | json object | +| | | schema, name | +| | | and other | +| | | meta-informa | +| | | tion | +| | | along with | +| | | one or more | +| | | object | +| | | instances. | +| | | | +| | | - Added | +| | | jsonObjectIn | +| | | stance | +| | | which | +| | | provides | +| | | meta-informa | +| | | tion | +| | | about an | +| | | instance of | +| | | a jsonObject | +| | | along with | +| | | the actual | +| | | object | +| | | instance | +| | | | +| | | - Added the ‘key’ | +| | | datatype | +| | | | +| | | - Added the | +| | | namedArrayOf | +| | | Fields | +| | | datatype | +| | | | +| | | - Added | +| | | vendorVnfNam | +| | | eFields | +| | | | +| | | - Section 4.3 common | +| | | event header | +| | | fields: | +| | | | +| | | - Add two new | +| | | enumerations | +| | | to domain: | +| | | ‘sipSignalin | +| | | g’ | +| | | and | +| | | ‘voiceQualit | +| | | y’ | +| | | | +| | | - Renamed | +| | | eventType to | +| | | eventName. | +| | | Note that | +| | | the original | +| | | usage of | +| | | eventType | +| | | was formally | +| | | described in | +| | | the | +| | | Introduction | +| | | back on | +| | | 2/11/2016 | +| | | with v1.9. | +| | | | +| | | - Made eventName | +| | | a required | +| | | field | +| | | | +| | | - Created a new | +| | | field called | +| | | eventType | +| | | with a | +| | | meaning that | +| | | is different | +| | | than the old | +| | | eventType. | +| | | | +| | | - Removed | +| | | functionalRo | +| | | le, | +| | | which was | +| | | replaced by | +| | | the | +| | | following | +| | | two fields. | +| | | | +| | | - Added | +| | | nfNamingCode | +| | | | +| | | - Added | +| | | nfcNamingCod | +| | | e | +| | | | +| | | - Changed version | +| | | to 3.0 | +| | | (major | +| | | version | +| | | change) and | +| | | made it a | +| | | required | +| | | field | +| | | | +| | | - Section 4.4: | +| | | faultFields: | +| | | | +| | | - added one | +| | | optional | +| | | field: | +| | | eventCategor | +| | | y | +| | | | +| | | - made | +| | | faultFieldsV | +| | | ersion | +| | | a required | +| | | field | +| | | | +| | | - changed | +| | | faultFieldsV | +| | | ersion | +| | | to 2.0 | +| | | (major | +| | | version | +| | | change) | +| | | | +| | | - fixed a typo on | +| | | the spelling | +| | | of | +| | | alarmInterfa | +| | | ceA | +| | | | +| | | - clarified field | +| | | descriptions | +| | | | +| | | - Section 4.5: added | +| | | heartbeatFields | +| | | datatype which | +| | | can be used to | +| | | communicate | +| | | heartbeatInterv | +| | | al. | +| | | Note: this | +| | | change was | +| | | previously made | +| | | in v4.2 | +| | | | +| | | - Section 4.6 | +| | | measurements | +| | | for vf scaling | +| | | datatypes: | +| | | changed the | +| | | following | +| | | datatypes from | +| | | number to | +| | | integer: | +| | | | +| | | - In | +| | | measurements | +| | | ForVfScalingFields: | +| | | concurrentSe | +| | | ssions, | +| | | configuredEn | +| | | tities, | +| | | numberOfMedi | +| | | aPortsInUse, | +| | | vnfcScalingM | +| | | etric | +| | | | +| | | - In codecsInUse: | +| | | numberInUse | +| | | | +| | | - In | +| | | featuresInUs | +| | | e: | +| | | featureUtili | +| | | zation | +| | | | +| | | - Section 4.6.2 | +| | | modified | +| | | cpuUsage | +| | | | +| | | - Section 4.6.3 | +| | | added diskUsage | +| | | | +| | | - Section 4.6.7 | +| | | measurementsFor | +| | | VfScalingFields: | +| | | | +| | | - fixed the | +| | | spelling of | +| | | the | +| | | measurements | +| | | ForVfScalingFields | +| | | in the Word | +| | | document | +| | | | +| | | - added | +| | | additionalFi | +| | | elds, | +| | | which is an | +| | | array of | +| | | fields | +| | | (i.e., | +| | | name-value | +| | | pairs) | +| | | | +| | | - changed | +| | | additionalMe | +| | | asurements | +| | | to reference | +| | | the common | +| | | datatype | +| | | namedArrayOf | +| | | Fields | +| | | (instead of | +| | | referencing | +| | | measurementG | +| | | roup) | +| | | | +| | | - added | +| | | additionalOb | +| | | jects | +| | | which is an | +| | | array of | +| | | jsonObjects | +| | | described by | +| | | name, keys | +| | | and schema | +| | | | +| | | - deleted | +| | | aggregateCpu | +| | | Usage | +| | | | +| | | - added | +| | | diskUsageArr | +| | | ay | +| | | | +| | | - deleted | +| | | measurementG | +| | | roup | +| | | (which was | +| | | replaced by | +| | | the common | +| | | datatype: | +| | | namedArrayOf | +| | | Fields | +| | | | +| | | - added | +| | | memoryUsageA | +| | | rray | +| | | | +| | | - deleted | +| | | memoryConfig | +| | | ured | +| | | and | +| | | memoryUsed | +| | | | +| | | - deleted errors | +| | | and | +| | | vNicUsageArr | +| | | ay | +| | | | +| | | - added | +| | | vNicPerforma | +| | | nceArray | +| | | | +| | | - changed the | +| | | measurements | +| | | ForVfScalingVersion | +| | | to 2.0 | +| | | (major | +| | | version | +| | | change) and | +| | | made it a | +| | | required | +| | | field. Also | +| | | changed the | +| | | name of this | +| | | version | +| | | field in the | +| | | Word | +| | | document to | +| | | match that | +| | | in the JSON | +| | | schema. | +| | | | +| | | - Section 4.6.8 | +| | | added | +| | | memoryUsage | +| | | | +| | | - Section 4.6.9 | +| | | vNicPerformance | +| | | : | +| | | replaced | +| | | vNicUsage and | +| | | errors with | +| | | vNicPerformance | +| | | | +| | | - Section 4.7 mobile | +| | | flow fields | +| | | changes: | +| | | | +| | | - Made | +| | | mobileFlowFi | +| | | eldsVersion | +| | | a required | +| | | field and | +| | | changed the | +| | | mobileFlowFi | +| | | eldsVersion | +| | | to 2.0 | +| | | (major | +| | | version | +| | | change). | +| | | | +| | | - Changed the | +| | | datatype of | +| | | flowActivati | +| | | onTime | +| | | and | +| | | flowDeactiva | +| | | tionTime | +| | | in the Word | +| | | doc to | +| | | string. | +| | | | +| | | - changed the | +| | | following | +| | | datatypes | +| | | from number | +| | | to integer: | +| | | otherEndpoin | +| | | tPort, | +| | | reportingEnd | +| | | pointPort, | +| | | samplingAlgo | +| | | rithm | +| | | | +| | | - Section 4.8: | +| | | otherFields: | +| | | | +| | | - Added | +| | | otherFieldsV | +| | | ersion | +| | | (set at 1.1) | +| | | | +| | | - Added | +| | | hashOfNameVa | +| | | luePairArrays | +| | | | +| | | - Added | +| | | jsonObjects | +| | | | +| | | - Added | +| | | nameValuePai | +| | | rs | +| | | | +| | | - Section 4.9: added | +| | | sipSignaling | +| | | domain | +| | | datatypes with | +| | | 4.8.1 | +| | | sipSignalingFie | +| | | lds. | +| | | sipSignalingFie | +| | | ldsVersion | +| | | is set at 1.0 | +| | | | +| | | - Section 4.10 | +| | | stateChangeFiel | +| | | ds: | +| | | made | +| | | stateChangeFiel | +| | | dsVersion | +| | | a required | +| | | field and set | +| | | it to 2.0 | +| | | (major version | +| | | change). | +| | | | +| | | - Section 4.11 | +| | | syslogFields: | +| | | | +| | | - Changed the | +| | | following | +| | | datatypes | +| | | from number | +| | | to integer: | +| | | syslogFacili | +| | | ty, | +| | | syslogPri | +| | | | +| | | - Changed | +| | | additionalFi | +| | | elds | +| | | from a field | +| | | [ ] to a | +| | | string which | +| | | takes | +| | | name=value | +| | | pairs | +| | | delimited by | +| | | a pipe | +| | | symbol. | +| | | | +| | | - Changed | +| | | syslogFields | +| | | Version | +| | | to 3.0 | +| | | (major | +| | | version | +| | | change) and | +| | | made it a | +| | | required | +| | | field | +| | | | +| | | - Made syslogSev | +| | | an | +| | | enumerated | +| | | string | +| | | (previously | +| | | just a | +| | | string) | +| | | | +| | | - Section 4.12 | +| | | thresholdCrossi | +| | | ngAlertFields: | +| | | made | +| | | thresholdCrossi | +| | | ngFieldsVersion | +| | | a required | +| | | field and set | +| | | it to 2.0 | +| | | (major version | +| | | change). | +| | | | +| | | - Section 4.132: | +| | | added voice | +| | | quality domain | +| | | datatypes with | +| | | 4.13.1 | +| | | endOfCallVqmSum | +| | | maries | +| | | and 4.13.2 | +| | | voiceQualityFie | +| | | lds. | +| | | voiceQualityFie | +| | | ldsVersion | +| | | is set at 1.0 | +| | | | +| | | - JSON Schema: | +| | | changed the schema | +| | | to v28.0 and | +| | | incorporated all | +| | | of the changes | +| | | above. | +| | | | +| | | - Additional JSON | +| | | Schema changes | +| | | that are part of | +| | | v28: Note: The | +| | | following changes | +| | | are provided | +| | | relative to API | +| | | Spec v4.0 (which | +| | | embedded JSON | +| | | schema v27.0), but | +| | | they were also | +| | | made in an interim | +| | | release v4.1 | +| | | (which embedded | +| | | JSON schema | +| | | v27.2): | +| | | | +| | | - To support use | +| | | of the schema | +| | | with event | +| | | batches, | +| | | removed the | +| | | following | +| | | statement near | +| | | the end of the | +| | | schema file: | +| | | | +| | | .. | +| | | | +| | | “required”: [ | +| | | “event” ] | +| | | | +| | | - Fixed the | +| | | characters used in | +| | | some of the quotes | +| | | | +| | | - Fixed some typos | +| | | in the | +| | | descriptions. | +| | | | +| | | - Removed the | +| | | booleans, which | +| | | were non-essential | +| | | and which were | +| | | causing problems | +| | | across different | +| | | implementations. | +| | | | +| | | - Section 2 and 6 | +| | | sample requests | +| | | and responses | +| | | (also | +| | | incorporated in | +| | | interim release | +| | | 4.1): | +| | | | +| | | - Removed quotes | +| | | from | +| | | numbers: | +| | | sequence, | +| | | and | +| | | first/lastEp | +| | | ochMicrosec. | +| | | | +| | | - Fixed all quote | +| | | characters, | +| | | some of | +| | | which were | +| | | using | +| | | unusual | +| | | symbols that | +| | | wouldn’t | +| | | validate | +| | | with the | +| | | json-schema | +| | | Python | +| | | package. | +| | | | +| | | - Section 2 and 6 | +| | | sample requests | +| | | and responses | +| | | (only in v5.0): | +| | | | +| | | - Changed the | +| | | version | +| | | numbers in | +| | | the URL | +| | | string. | +| | | | +| | | - Added | +| | | nfNamingCode | +| | | and | +| | | nfcNamingCod | +| | | e | +| | | and removed | +| | | functionalRo | +| | | le | +| | | | +| | | - Section 6 call | +| | | flows: updated | +| | | the version | +| | | number (only in | +| | | v5.0). | +| | | | +| | | - Section 6: removed | +| | | the | +| | | publishSpecific | +| | | Topic | +| | | operation | +| | | | +| | | - Section 6.1.4: | +| | | Buffering: | +| | | clarified event | +| | | source | +| | | expectations | +| | | for buffering | +| | | (only in v5.0). | +| | | | +| | | - Section 6.2.6.1, | +| | | 6.3.6.1 sample | +| | | requests (also | +| | | incorporated in | +| | | interim release | +| | | 4.1): | +| | | | +| | | - Added an | +| | | alarmAdditio | +| | | nalInformation | +| | | field array | +| | | to the | +| | | sample | +| | | requests. | +| | | | +| | | - Added missing | +| | | commas. | +| | | | +| | | - Section 6.2.6.3, | +| | | 6.3.6.3 | +| | | commandList | +| | | sample | +| | | responses (only | +| | | in v5.0): | +| | | | +| | | - Fixed the | +| | | commandList | +| | | sample | +| | | responses to | +| | | pass an | +| | | array of | +| | | anonymous | +| | | command | +| | | objects | +| | | (rather than | +| | | an array of | +| | | commandListE | +| | | ntry | +| | | objects). | +| | | | +| | | - Fixed the | +| | | heartbeatInt | +| | | ervalChange | +| | | commandType | +| | | to pass a | +| | | heartbeatInt | +| | | erval | +| | | value | +| | | instead of a | +| | | measurementI | +| | | nterval | +| | | value. | +| | | | +| | | - Removed quotes | +| | | from the | +| | | measurementI | +| | | nterval | +| | | and | +| | | heartbeatInt | +| | | erval | +| | | values since | +| | | they are | +| | | numbers. | +| | | | +| | | - Section 6.4.6.1 | +| | | provideThrottli | +| | | ngState | +| | | sample requests | +| | | (also | +| | | incorporated in | +| | | interim release | +| | | 4.1): | +| | | | +| | | - Fixed the | +| | | eventDomainT | +| | | hrottleSpecificationL | +| | | ist | +| | | to pass an | +| | | array of | +| | | anonymous | +| | | eventDomainT | +| | | hrottleSpecification | +| | | objects. | +| | | | +| | | - Added missing | +| | | quotes. | +| | | | +| | | - Fixed the | +| | | suppressedNvPai | +| | | rsList | +| | | to pass an | +| | | array of | +| | | anonymous | +| | | suppressedNvPai | +| | | rs | +| | | objects (also | +| | | incorporated in | +| | | interim release | +| | | 4.1). | ++-----------------------+-----------------------+-----------------------+ +| 5/22/2017 | v5.1 | - Footers: removed | +| | | proprietary | +| | | markings and | +| | | updated copyrights | +| | | to 2017 | +| | | | +| | | - Section 4.2.3: | +| | | field: | +| | | | +| | | - Changed the API | +| | | spec to make | +| | | ‘name’ and | +| | | ‘value’ start | +| | | with lowercase | +| | | letters. Note: | +| | | this did not | +| | | affect the | +| | | schema, which | +| | | already had | +| | | them as | +| | | lowercase. | +| | | | +| | | - JSON Schema: | +| | | | +| | | - measurementGrou | +| | | p: | +| | | deleted this | +| | | object since it | +| | | was replaced | +| | | with | +| | | ‘namedArrayOfFi | +| | | elds’ | +| | | in v28.0 and | +| | | was no longer | +| | | being used. | +| | | | +| | | - namedArrayOfFie | +| | | lds: | +| | | Fixed an error | +| | | in the | +| | | specification | +| | | of required | +| | | fields: from | +| | | ‘measurements’ | +| | | to | +| | | ‘arrayOfFields’ | +| | | . | +| | | | +| | | - Changed the | +| | | version of the | +| | | JSON schema to | +| | | 28.1 | ++-----------------------+-----------------------+-----------------------+ +| 6/14/2017 | v5.2 | - JSON Schema: | +| | | created v28.2 by | +| | | changing the field | +| | | descriptions in | +| | | the memoryUsage | +| | | object to refer to | +| | | ‘kibibytes’ | +| | | instead of | +| | | ‘kilobytes’. There | +| | | were no changes to | +| | | the 28.1 | +| | | structure. | +| | | | +| | | - Word Document: | +| | | measurementsForVfS | +| | | caling | +| | | Domain: | +| | | memoryUsage | +| | | object: changed | +| | | the field | +| | | descriptions in | +| | | this object to | +| | | refer to | +| | | ‘kibibytes’ | +| | | instead of | +| | | ‘kilobytes’. There | +| | | were no changes to | +| | | the memoryUsage | +| | | structure. | +| | | | +| | | - Reorganized the | +| | | Word document to | +| | | group the data | +| | | structures in | +| | | Section 4 into | +| | | three broad | +| | | categories to | +| | | better align with | +| | | the VNF Guidelines | +| | | documentation that | +| | | has been prepared | +| | | for vendors: | +| | | | +| | | - Common Event | +| | | Datatypes: | +| | | | +| | | - Command List | +| | | Processing | +| | | Datatypes | +| | | | +| | | - Common Event | +| | | Datatypes | +| | | | +| | | - Common Event | +| | | Header | +| | | Datatypes | +| | | | +| | | - Technology | +| | | Independent | +| | | Datatypes: | +| | | | +| | | - ‘Fault | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘Heartbeat’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘Measurement | +| | | s | +| | | For Vf | +| | | Scaling’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘Other’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘State | +| | | Change’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘Syslog’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘Threshold | +| | | Crossing | +| | | Alert’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - Technology | +| | | Specify | +| | | Datatypes: | +| | | | +| | | - ‘Mobile | +| | | Flow’ Domain | +| | | Datatypes | +| | | | +| | | - ‘Sip | +| | | Signaling’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - ‘Voice | +| | | Quality’ | +| | | Domain | +| | | Datatypes | +| | | | +| | | - Section 6.1.3: | +| | | Commands Toward | +| | | Event Source | +| | | Clients: Added a | +| | | statement: “Note: | +| | | Vendors are not | +| | | currently required | +| | | to implement | +| | | support for | +| | | command | +| | | processing; in | +| | | addition, command | +| | | processing may be | +| | | supported by an | +| | | App-C interface in | +| | | future.” | ++-----------------------+-----------------------+-----------------------+ +| 6/22/2017 | v5.3 | - JSON Schema: | +| | | created v28.3 by | +| | | correcting an | +| | | error in the | +| | | sipSignalingFields | +| | | : | +| | | changed | +| | | vnfVendorNameField | +| | | s | +| | | to | +| | | vendorVnfNameField | +| | | s. | +| | | Embedded the new | +| | | schema at the top | +| | | of section 4. | ++-----------------------+-----------------------+-----------------------+ +| 9/12/2017 | v5.4 | - Note: There no | +| | | changes to any | +| | | data structures or | +| | | operations in this | +| | | version. | +| | | | +| | | - JSON Schema: | +| | | created v28.4 | +| | | embedded at the | +| | | top of section 4: | +| | | | +| | | - Added a | +| | | reference to | +| | | eventList in | +| | | the properties | +| | | defined under | +| | | the schema | +| | | title. This | +| | | enables the | +| | | schema to | +| | | correctly | +| | | validate event | +| | | batches in | +| | | addition to | +| | | just events. | +| | | | +| | | - Moved the | +| | | schema title to | +| | | the top of the | +| | | schema and | +| | | changed the | +| | | text from | +| | | “Event | +| | | Listener” to | +| | | “VES Event | +| | | Listener” | +| | | | +| | | - Added a schema | +| | | header block | +| | | under the title | +| | | to clearly | +| | | communicate the | +| | | schema version, | +| | | associated API | +| | | and | +| | | last-modified | +| | | information | +| | | | +| | | - Changed the date | +| | | in the copyright | +| | | notice to 2017 | ++-----------------------+-----------------------+-----------------------+ +| 9/19/2017 | v5.4.1 | - Note: There no | +| | | changes to any | +| | | data structures or | +| | | operations in this | +| | | version. | +| | | | +| | | - Back of Cover | +| | | Page: updated the | +| | | license and | +| | | copyright notice | +| | | to comply with | +| | | ONAP guidelines | +| | | | +| | | - JSON Schema: | +| | | updated the JSON | +| | | schema to v28.4.1: | +| | | updated the | +| | | copyright notice | +| | | and license to | +| | | comply with ONAP | +| | | guidelines | ++-----------------------+-----------------------+-----------------------+ +| 6/28/2018 | v6.0 | - Added contributors | +| | | to the title page. | +| | | | +| | | - Updated references | +| | | to ‘vnf’ ‘vnfc’ to | +| | | either ‘nf’ and | +| | | ‘nfc’ or ‘xNf’ and | +| | | ‘xNfc’ to | +| | | generalize support | +| | | across both vnfs | +| | | and pnfs. | +| | | | +| | | - Section 1: | +| | | | +| | | - clarified the | +| | | meaning of the | +| | | VES acronym | +| | | | +| | | - changed | +| | | references from | +| | | ASDC to SDC and | +| | | from MSO to SO | +| | | | +| | | - clarified the | +| | | requirements | +| | | for eventNames. | +| | | | +| | | - Added a section | +| | | of EventId use | +| | | case examples | +| | | | +| | | - Added a new | +| | | section on | +| | | measurement | +| | | expansion | +| | | fields | +| | | | +| | | - Added a new | +| | | section of | +| | | syslogs | +| | | | +| | | - clarified the | +| | | versioning | +| | | section and | +| | | referenced the | +| | | new API | +| | | Versioning | +| | | section in | +| | | section 6. | +| | | | +| | | - Added a list of | +| | | all the latest | +| | | field block | +| | | version numbers | +| | | in this version | +| | | of the API | +| | | spec. | +| | | | +| | | - Section 2: updated | +| | | the sample to show | +| | | use of new HTTP | +| | | versioning | +| | | headers. Added a | +| | | note indicating | +| | | that support for | +| | | mutual SSL would | +| | | be provided in | +| | | future. | +| | | | +| | | - Section 3: updated | +| | | the resource | +| | | structure remove | +| | | the | +| | | clientThrottlingSt | +| | | ate | +| | | resource. | +| | | | +| | | - Section 4: | +| | | hashMaps. Changed | +| | | all name-value | +| | | pair structures to | +| | | hashMaps causing | +| | | the following data | +| | | model and JSON | +| | | schema (to v29.0) | +| | | changes: | +| | | | +| | | - 4.1.1: Common | +| | | Event | +| | | Datatypes: | +| | | | +| | | - removed | +| | | "field" and | +| | | added | +| | | “hashMap” | +| | | | +| | | - removed | +| | | “namedArrayO | +| | | fFields” | +| | | and added | +| | | “namedHashMa | +| | | p” | +| | | | +| | | - added | +| | | arrayOfNamed | +| | | HashMap | +| | | | +| | | - added | +| | | arrayOfJsonO | +| | | bject | +| | | | +| | | - 4.2.1: Fault | +| | | Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | faultFields | +| | | version to | +| | | 3.0 (major | +| | | change) | +| | | | +| | | - changed | +| | | faultFields. | +| | | alarmAdditionalInform | +| | | ation | +| | | to reference | +| | | a hashMap | +| | | | +| | | - 4.2.2: | +| | | Heartbeat | +| | | Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | heartbeatFie | +| | | ldsVersion | +| | | to 2.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | heartbeatFie | +| | | lds.additionalFields | +| | | to reference | +| | | a hashMap | +| | | | +| | | - 4.2.3: | +| | | Measurement | +| | | Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | measurementF | +| | | ieldsVersion | +| | | to 3.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | measurementF | +| | | ields.additionalField | +| | | s | +| | | to reference | +| | | a hashMap | +| | | | +| | | - changed | +| | | measurement. | +| | | additionalMesurements | +| | | to reference | +| | | a | +| | | namedHashMap | +| | | [ ] | +| | | | +| | | - modified | +| | | measurementF | +| | | ields.featureUsageArr | +| | | ay | +| | | to reference | +| | | a hashmap | +| | | and removed | +| | | ‘featuresInU | +| | | se’ | +| | | | +| | | - added the | +| | | following | +| | | datatypes | +| | | which are | +| | | now | +| | | referenced | +| | | as items in | +| | | arrays | +| | | within | +| | | measurementF | +| | | ields: | +| | | hugePages, | +| | | load, | +| | | machineCheck | +| | | Exception, | +| | | processStats | +| | | | +| | | - 4.2.5: Other | +| | | Domain | +| | | Datatypes: | +| | | | +| | | - Change the | +| | | otherFieldsV | +| | | ersion | +| | | to 2.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | otherFields. | +| | | nameValuePairs | +| | | to reference | +| | | a hashMap | +| | | and renamed | +| | | it hashMap | +| | | | +| | | - changed | +| | | otherFields. | +| | | hashOfNameValuePairAr | +| | | rrays | +| | | to reference | +| | | a | +| | | namedHashMap | +| | | and renamed | +| | | it | +| | | arrayOfNamed | +| | | HashMap | +| | | | +| | | - 4.2.7: State | +| | | Change Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | stateChangeF | +| | | iledsVersion | +| | | to 3.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | stateChangeF | +| | | ields.additionalField | +| | | s | +| | | to reference | +| | | a hashMap | +| | | | +| | | - 4.2.9: | +| | | Threshold | +| | | Crossing Alert | +| | | Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | thresholdCro | +| | | ssingAlertFieldsVersi | +| | | on | +| | | to 3.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | thresholdCro | +| | | ssingAlertFields.addi | +| | | tionalFields | +| | | to reference | +| | | a hashMap | +| | | | +| | | - counter: | +| | | removed name | +| | | and value | +| | | elements and | +| | | replaced | +| | | with a | +| | | hashMap | +| | | | +| | | - 4.3.1: Mobile | +| | | Flow Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | mobileFlowFi | +| | | eldsVersion | +| | | to 3.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | mobileFlowFi | +| | | elds.additionalFields | +| | | to reference | +| | | a hashMap | +| | | | +| | | - gtpPerFlowMe | +| | | trics: | +| | | modified | +| | | ipTosCountLi | +| | | st | +| | | to reference | +| | | hashmap | +| | | | +| | | - gtpPerFlowMe | +| | | trics: | +| | | modified | +| | | mobileQciCos | +| | | CountList | +| | | to reference | +| | | hashmap | +| | | | +| | | - gtpPerFlowMe | +| | | trics: | +| | | modified | +| | | tcpFlagCount | +| | | List | +| | | to reference | +| | | hashmap | +| | | | +| | | - 4.3.2: Sip | +| | | Signaling | +| | | Domain | +| | | Datatypes: | +| | | | +| | | - changed the | +| | | sigSignaling | +| | | FieldsVersion | +| | | to 2.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | sipSignaling | +| | | Fields.additionalInfo | +| | | rmation | +| | | to reference | +| | | a hashMap | +| | | | +| | | - 4.3.3: Voice | +| | | Quality Domain | +| | | Datatypes: | +| | | | +| | | - change the | +| | | voiceQuality | +| | | FieldsVersion | +| | | to 2.0 | +| | | (major | +| | | change) | +| | | | +| | | - changed | +| | | voiceQuality | +| | | Fields.additionalInfo | +| | | rmation | +| | | to reference | +| | | a hashMap | +| | | | +| | | - Section 4: added | +| | | notes at the top | +| | | of section 4 | +| | | clarifying | +| | | expectations and | +| | | requirements for | +| | | optional fields, | +| | | extensible fields | +| | | and keys sent | +| | | through extensible | +| | | fields. | +| | | | +| | | - Common Event Data | +| | | Types: Section | +| | | 4.1.1.9 Changed | +| | | vendorVnfNameField | +| | | s | +| | | to | +| | | vendorNfNameFields | +| | | ; | +| | | updated Section | +| | | 4.3.2 SipSignaling | +| | | and 4.3.3 Voice | +| | | Quality to refer | +| | | to the renamed | +| | | object | +| | | | +| | | - Common Event | +| | | Header Section | +| | | 4.1.2: | +| | | | +| | | - clarified the | +| | | descriptions of | +| | | eventId, | +| | | reportingEntity | +| | | Name, | +| | | sourceName and | +| | | startEpochMicro | +| | | seconds. | +| | | | +| | | - Added | +| | | ‘notification’ | +| | | and | +| | | ‘pngRegistratio | +| | | n’ | +| | | to the domain | +| | | enumeration. | +| | | | +| | | - added a new | +| | | timeZoneOffsest | +| | | field | +| | | | +| | | - Fault Domain | +| | | Section 4.2.1: | +| | | clarified the | +| | | definitions of | +| | | alarmCondition, | +| | | eventSeverity and | +| | | specificProblem | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3: changed the | +| | | name of this | +| | | domain from | +| | | ‘measurementsForVf | +| | | Scaling’ | +| | | to ‘measurement’ | +| | | | +| | | - measurementsFor | +| | | VfScaling | +| | | measurement | +| | | | +| | | - measurementsFor | +| | | VfScalingFields | +| | | measurementFiel | +| | | ds | +| | | | +| | | - measurementsFor | +| | | VfScalingVersion | +| | | measurementFiel | +| | | dsVersion | +| | | | +| | | - the ‘mfvs’ | +| | | abbreviation | +| | | measurement | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3 cpuUsage: | +| | | added seven | +| | | optional fields to | +| | | this structure: | +| | | cpuCapacityContent | +| | | ion, | +| | | cpuDemandAvg, | +| | | cpuDemandMhz, | +| | | cpuDemandPct, | +| | | cpuLatencyAverage, | +| | | cpuOverheadAvg, | +| | | cpuSwapWaitTime | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3 diskUsage: | +| | | added ten optional | +| | | fields to this | +| | | structure: | +| | | diskBusResets, | +| | | diskCommandsAborte | +| | | d, | +| | | diskCommandsAvg, | +| | | diskFlushRequests, | +| | | diskFlushTime, | +| | | diskReadCommandsAv | +| | | g, | +| | | diskTime, | +| | | diskTotalReadLaten | +| | | cyAvg, | +| | | diskTotalWriteLate | +| | | ncyAvg, | +| | | diskWriteCommandsA | +| | | vg | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3: added a new | +| | | ‘ipmi’ datatype | +| | | along with | +| | | following | +| | | ‘supporting’ | +| | | datatypes: | +| | | ipmiBaseboardTempe | +| | | rature, | +| | | ipmiBaseboardVolta | +| | | geRegulator, | +| | | ipmiBattery, | +| | | ipmiFan, | +| | | ipmiGlobalAggregat | +| | | eTemperatureMargin, | +| | | ipmiHsbp, ipmiNic, | +| | | ipmiPowerSupply, | +| | | ipmiProcessor, | +| | | processorDimmAggre | +| | | gateThermalMargin | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3: added a new | +| | | ‘load’ datatype | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3 memoryUsage: | +| | | added eight | +| | | optional fields to | +| | | this structure: | +| | | memoryDemand, | +| | | memoryLatencyAvg, | +| | | memorySharedAvg, | +| | | memorySwapInAvg, | +| | | memorySwapInRateAv | +| | | g, | +| | | memorySwapOutAvg, | +| | | memorySwapOutRateA | +| | | vg, | +| | | memorySwapUsedAvg | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3: modified | +| | | measurementFields | +| | | to include the | +| | | following new | +| | | fields: | +| | | hugePagesArray, | +| | | ipmi, loadArray, | +| | | memoryErrors, | +| | | processStatusArray | +| | | , | +| | | rdtArray | +| | | | +| | | - Measurements | +| | | Domain Section | +| | | 4.2.3 renamed | +| | | vNicPerformance to | +| | | nicPerformance and | +| | | changed | +| | | vNicIdentifer to | +| | | nicIdentifier | +| | | | +| | | - Notification | +| | | Domain Section | +| | | 4.2.4: added | +| | | notificationFields | +| | | to support a new | +| | | notification | +| | | domain. | +| | | | +| | | - pnfRegistration | +| | | Domain Section | +| | | 4.2.7: added | +| | | pnfRegistrationFie | +| | | lds | +| | | to support a new | +| | | registration | +| | | domain. | +| | | | +| | | - sysLog Domain | +| | | Section 4.2.8: | +| | | added two new | +| | | fields: | +| | | syslogMsgHost and | +| | | syslogTs. | +| | | Clarified field | +| | | descriptions. | +| | | Clarified | +| | | syslogSData | +| | | example. | +| | | | +| | | - endOfCallVqmSummar | +| | | ies | +| | | Section 4.3.3.1: | +| | | | +| | | - converted | +| | | endpointJitter | +| | | into two | +| | | fields: | +| | | endpointAverage | +| | | Jitter | +| | | and | +| | | endpointMaxJitt | +| | | er | +| | | | +| | | - converted | +| | | localJitter | +| | | into two | +| | | fields: | +| | | localAverageJit | +| | | ter | +| | | and | +| | | localMaxJitter | +| | | | +| | | - added two | +| | | fields: | +| | | localAverageJit | +| | | terBufferDelay | +| | | and | +| | | localMaxJitterB | +| | | ufferDelay | +| | | | +| | | - added | +| | | endpointRtpOcte | +| | | tsLost | +| | | and | +| | | endpointRtpPack | +| | | etsLost | +| | | | +| | | - added | +| | | localRtpOctetsL | +| | | ost | +| | | and | +| | | localRtpPackets | +| | | Lost | +| | | | +| | | - converted | +| | | packetsLost | +| | | into | +| | | oneWayDelay | +| | | | +| | | - API Versioning: | +| | | | +| | | - Section 1.4: | +| | | clarified the | +| | | versioning | +| | | section and | +| | | linked it to | +| | | the following | +| | | new section | +| | | 6.1.2 | +| | | | +| | | - Section 6.1.2: | +| | | Added | +| | | requirements | +| | | for HTTP | +| | | headers | +| | | communicating | +| | | minor, patch | +| | | and latest | +| | | version | +| | | information. | +| | | | +| | | - Section 2 and 6 | +| | | sample | +| | | messages: | +| | | clarified | +| | | examples to use | +| | | the new HTTP | +| | | headers | +| | | | +| | | - Section 6.1.4: | +| | | Added a section | +| | | specifying message | +| | | size limits. | +| | | | +| | | - Section2 6.2.6.1 | +| | | and 6.3.6.1: | +| | | corrected | +| | | additionalInformat | +| | | ion | +| | | examples to use | +| | | hashMap instead of | +| | | name-value pair | +| | | fields. | +| | | | +| | | - Section 7: Added a | +| | | section on | +| | | Terminology. | +| | | | +| | | - Command List | +| | | Processing: | +| | | removed command | +| | | list processing | +| | | from the document | +| | | and schema: | +| | | | +| | | - Modified the | +| | | Section 3 | +| | | resource | +| | | structure to | +| | | align with | +| | | these changes. | +| | | | +| | | - Removed Section | +| | | 4 Datatypes: | +| | | command, | +| | | commandList, | +| | | eventDomainThro | +| | | ttleSpecification, | +| | | eventDomainThro | +| | | ttleSpecificationList | +| | | , | +| | | eventThrottling | +| | | State, | +| | | suppressedNvPai | +| | | rs | +| | | | +| | | - Removed Section | +| | | 6.1 description | +| | | of commands | +| | | toward event | +| | | source clients | +| | | | +| | | - Removed Section | +| | | 6.4 operation: | +| | | provideThrottlingS | +| | | tate | ++-----------------------+-----------------------+-----------------------+ +| 7/30/2018 | v7.0 | - General: | +| | | | +| | | - Fixed typos | +| | | throughout | +| | | | +| | | - Changed example | +| | | versions to v7 | +| | | | +| | | - Section1: | +| | | | +| | | - Clarified | +| | | casing and use | +| | | of dashes | +| | | versus colons | +| | | in eventName | +| | | examples | +| | | | +| | | - Updated all | +| | | field block | +| | | versions | +| | | | +| | | - Section 2: added a | +| | | note clarifying | +| | | that TLS 1.2 or | +| | | higher must be | +| | | used for HTTPS | +| | | connections. | +| | | | +| | | - Section 4 embedded | +| | | schema changed to | +| | | v30: | +| | | | +| | | - Added “ | +| | | ‘additionalProp | +| | | erties’: | +| | | false ” to | +| | | objects to | +| | | reject events | +| | | that attempt to | +| | | send properties | +| | | that are not | +| | | listed in the | +| | | ‘properties’ | +| | | keyword. Note: | +| | | does not affect | +| | | hashmap | +| | | extensible | +| | | fields. | +| | | | +| | | - Changed all | +| | | versions in all | +| | | field blocks | +| | | from number to | +| | | string enum | +| | | with the | +| | | version number | +| | | fixed by the | +| | | enum so the | +| | | schema can | +| | | validate events | +| | | that attempt to | +| | | send | +| | | non-standard | +| | | field blocks. | +| | | | +| | | - Changed syslog | +| | | additionalField | +| | | s | +| | | to a hashMap | +| | | | +| | | - Section 4: | +| | | | +| | | - Fixed section | +| | | heading numbers | +| | | that were the | +| | | same. | +| | | | +| | | - 4.1.1: | +| | | jsonObjectInsta | +| | | nce: | +| | | added an | +| | | optional | +| | | recursive | +| | | jsonObject and | +| | | removed all | +| | | required fields | +| | | from this | +| | | object | +| | | | +| | | - 4.1.2: | +| | | commonEventHead | +| | | er: | +| | | | +| | | - nfVendorName | +| | | : | +| | | added this | +| | | optional | +| | | field | +| | | | +| | | - timeZoneOffs | +| | | et: | +| | | changed from | +| | | number to | +| | | string with | +| | | a particular | +| | | format | +| | | specified | +| | | | +| | | - version was | +| | | changed from | +| | | number to | +| | | string (as | +| | | were all the | +| | | version | +| | | fields of | +| | | all the | +| | | field | +| | | blocks) | +| | | | +| | | - vesCommonEve | +| | | ntListenerVersion: | +| | | added this | +| | | required | +| | | field as a | +| | | string | +| | | enumeration | +| | | | +| | | - 4.2.3: | +| | | Measurements | +| | | Domain: | +| | | | +| | | - Added a note | +| | | clarifying | +| | | that NFs are | +| | | required to | +| | | report | +| | | exactly one | +| | | Measurement | +| | | event per | +| | | period per | +| | | sourceName | +| | | | +| | | - diskUsage: | +| | | added four | +| | | new optional | +| | | fields: | +| | | diskWeighted | +| | | IoTimeAve, | +| | | diskWeighted | +| | | IoTimeLast, | +| | | diskWeighted | +| | | IoTimeMax, | +| | | diskWeighted | +| | | IoTimeMin | +| | | | +| | | - memoryUsage: | +| | | add one new | +| | | optional | +| | | field: | +| | | percentMemor | +| | | yUsage | +| | | | +| | | - nicPerforman | +| | | ce: | +| | | added nine | +| | | new optional | +| | | fields: | +| | | administrati | +| | | veState, | +| | | operationalS | +| | | tate, | +| | | receivedPerc | +| | | entDiscard, | +| | | receivedPerc | +| | | entError, | +| | | receivedUtil | +| | | ization, | +| | | speed, | +| | | transmittedP | +| | | ercentDiscard, | +| | | transmittedP | +| | | ercentError, | +| | | transmittedU | +| | | tilization | +| | | | +| | | - processorDim | +| | | mAggregateThermalMarg | +| | | in: | +| | | make the | +| | | thermalMargi | +| | | n | +| | | field | +| | | required | +| | | | +| | | - 4.2.8: Syslog | +| | | Domain: | +| | | | +| | | - Corrected the | +| | | example at the end | +| | | of the section | ++-----------------------+-----------------------+-----------------------+ + +.. |image0| image:: media/image1.png + :width: 6.48926in + :height: 4.86694in +.. |image1| image:: media/image2.png + :width: 6.5in + :height: 4.8745in +.. |image2| image:: media/image3.png + :width: 3.76033in + :height: 1.16677in +.. |image3| image:: media/image5.png + :width: 4.75347in + :height: 2.57361in +.. |image4| image:: media/image6.png + :width: 4.74722in + :height: 2.56667in diff --git a/docs/files/VESEventRegistration_3_0.rst b/docs/files/VESEventRegistration_3_0.rst new file mode 100644 index 0000000..35a017c --- /dev/null +++ b/docs/files/VESEventRegistration_3_0.rst @@ -0,0 +1,3131 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017-2018 AT&T Intellectual Property, All rights reserved +.. Copyright 2017-2018 Huawei Technologies Co., Ltd. + +=================================== +Addendum: *VES Event Registration* +=================================== + +.. contents:: Table of Contents + + +Introduction +============ + +This document specifies a YAML format for the registration of VES +Events. The YAML format enables both human designers and applications to +parse and understand the fields that will be sent by event sources in +conjunction with specific types of events, which are identified by their +eventNames. + +The semantics of the YAML format are easily extensible to accommodate +processing needs that may arise in the future. Among the types of +information specified in the YAML are field optionality, restrictions on +field values, and event handling recommendations and requirements. + +This document should be read in conjunction with the VES Event Listener +service specification, which defines the Common Event Format and +introduces the concept of specific types of events, identified by +eventNames. + +Audience +-------- + +This document is intended to support the following groups: + +- VNF Vendors + +- Service Provider (e.g., AT&T) Teams responsible for deploying VNFs + within their infrastructure + +VNF vendors will provide a YAML file to the Service Provider that +describes the events that their VNFs generate. Using the semantics and +syntax supported by YAML, vendors will indicate specific conditions that +may arise, and recommend actions that should be taken at specific +thresholds, or if specific conditions repeat within a specified time +interval. + +Based on the vendor’s recommendations, the Service Provider may create +another YAML, which finalizes their engineering rules for the processing +of the vendor’s events. The Service Provider may alter the threshold +levels recommended by the vendor, and may modify and more clearly +specify actions that should be taken when specified conditions arise. +The Service Provided-created version of the YAML will be distributed to +Service Provider applications at design time. + +Goal +---- + +The goal of the YAML is to completely describe the processing of VNF +events in a way that can be compiled or interpreted by applications +across a Service Provider’s infrastructure. + +Relation to the Common Event Format +----------------------------------- + +The Common Event Format described in the VES Event Listener service +specification defines the structure of VES events including optional +fields that may be provided. + +Specific eventNames registered by the YAML (e.g., an InvalidLicense +fault), may require that certain fields, which are optional in the +Common Event Format, be present when events with that eventName are +published. For example, a fault eventName which communicates an +‘InvalidLicense’ condition, may be registered to require that the +configured ‘licenseKey’ be provided as a name-value pair in the Common +Event Format’s ‘additionalFields’ structure, within the ‘faultFields’ +block. Anytime an ‘InvalidLicense’ fault event is detected, designers, +applications and microservices across the Service Provider’s +infrastructure can count on that name-value pair being present. + +The YAML registration may also restrict ranges or enumerations defined +in the Common Event Format. For example, eventSeverity is an enumerated +string within the Common Event Format with several values ranging from +‘NORMAL’ to ‘CRITICAL’. The YAML registration for a particular eventName +may require that it always be sent with eventSeverity set to a single +value (e.g., ‘MINOR’), or to a subset of the possible enumerated values +allowed by the Common Event Format (e.g., ‘MINOR’ or ‘NORMAL’). + +Relation to Service Design and Creation +--------------------------------------- + +Event registration for a VNF (or other event source) is provided to the +Service Provider’s Service Creation and Design Environment (e.g., SDC) +as a set of two YAML files consisting of the vendor recommendation YAML +and (optionally) the final Service Provider YAML. These YAML files +describe all the eventNames that that VNF (or other event source) +generates. + +Once their events are registered, the Service Creation and Design +Environment can then list the registered eventNames (e.g., as a drop +down list), for each VNF or other event source (e.g., a service), and +enable designers to study the YAML registrations for specific +eventNames. YAML registrations are both human readable and machine +readable. + +The final Service Provider YAML is a type of Service Design and Creation +‘artifact’, which can be distributed to Service Provider applications at +design time: notably, to applications involved in the collection and +processing of VNF events. It can be parsed by those applications so they +can support the receipt and processing of VNF events, without the need +for any manual, VNF-specific development. + +YAML Files +========== + +YAML Specification Conformance +------------------------------ + +YAML files should conform to version 1.2 of the YAML specification +available at: http://yaml.org/spec/1.2/spec.html. + +Filename +-------- + +YAML file names should conform to the following naming convention: + + {NamingCode}_{ModelType}_{v#}_{AdditionalInfo}.yml + +The NamingCode identifies the entity, whose events are being registered +in the yaml, with a naming code that was established in the Service +Providers’ Service Design and Creation Environment (SDC). Example Naming +codes are: + +- tbcx + +- sgsn-mme + +The ModelType describes the type of entity whose events are being +registered. It consists of values like: + +- service + +- vfModule + +- vnf + +- vnfc + +The ‘#’ should be replaced with the current numbered version of the +file. Note that ‘#’ can be an integer or a number of the form x.y or +x.y.z (where x is the major number, y is the minor number and z is the +patch number) + +Additional descriptive info may be added after the version information + +Example file name: + +- vIsbcSsc_vnfc_v1.yml + +File Structure +-------------- + +Each eventType is registered as a distinct YAML ‘document’. + +YAML files consist of a series of YAML documents delimited by ‘---‘ and +‘…’ for example: + + --- + + # Event Registration for eventName ‘name1’ + + # details omitted + + ... + + --- + + # Event Registration for eventName ‘name2’ + + # details omitted + + ... + + --- + + # Event Registration for eventName ‘name3’ + + # details omitted + + ... + +YAML Syntax and Semantics +========================= + +YAML registration documents show each relevant VES Common Event Model +object and field (i.e., each element) for the eventName being +registered, including any extensible fields (e.g., specific name-value +pairs). + +Qualifiers +---------- + +Each object or field name in the eventName being registered is followed +by a ‘qualifier’, which consists of a colon and two curly braces, for +example: + + “objectOrFieldName: { }” + +The curly braces contain meta-information about that object or field +name (also known as the ‘element’), such as whether it is required to be +present, what values it may have, what handling it should trigger, etc… + +Semantics have been defined for the following types of meta-information +within the curly braces: + +Action +~~~~~~ + +The ‘action’ keyword may be applied to field values or to the event as a +whole. The ‘action’ keyword specifies a set of actions that should be +taken if a specified trigger occurs. For example, the ‘action’ keyword +may specify that a threshold crossing alert (i.e., tca) be generated, +and/or that a specific microservice handler be invoked, and/or that a +specific named-condition be asserted. In the Rules section of the YAML +file, tca’s and microservices may be defined on individual +named-conditions or on logical combinations of named-conditions. + +The ‘action:’ keyword is followed by five values in square brackets. The +first two values communicate the trigger, and the last three values +communicate the actions to be taken if that trigger occurs: + +1. The first value conveys the trigger level. If the field on which the + action is defined reaches or passes through that level, then the + trigger fires. If a specific level is not important to the + recommended action, the ‘any’ keyword may be used as the first value. + (Note: ‘any’ is often used when an action is defined on the ‘event’ + structure as a whole). + +2. The second value indicates the direction of traversal of the level + specified in the first value. The second value may be ‘up’, ‘down’, + ‘at’ or ‘any’. ‘any’ is used if the direction of traversal is not + important. ‘at’ implies that it traversed (or exactly attained) the + trigger level but it doesn’t matter if the traversal was in the up + direction or down direction. Note: If ‘up’, ‘down’ or ‘at’ are used, + the implication is that the microservices processing the events + within the service provider are maintaining state (e.g., to know that + a measurement field traversed a trigger level in an ‘up’ direction, + the microservice would have to know that the field was previously + below the trigger level). When initially implementing support for + YAML actions, a service provider may choose to use and interpret + these keywords in a simpler way to eliminate the need to handle + state. Specifically, they may choose to define and interpret all ‘up’ + guidance to mean ‘at the indicated trigger level or greater’, and + they may choose to define and interpret all ‘down’ guidance to mean + ‘at the indicated trigger level or lower’. + +3. The third value optionally names the condition that has been attained + when the triggers fires (e.g., ‘invalidLicence’ or + ‘capacityExhaustion’). Named-conditions should be expressed in camel + case with no underscores, hyphens or spaces and with the first letter + in lowercase. In the Rules section of the YAML file, named-conditions + may be used to specify events that should be generated and/or + microservices that should be invoked. If it is not important to name + a condition, then the string ‘null’ (without the quotes) must be used + as the third value. + +4. The fourth value recommends a specific microservice (e.g., ‘rebootVm’ + or ‘rebuildVnf’) supported by the Service Provider, be invoked if the + trigger is attained. Design time processing of the YAML by the + service provider can use these directives to automatically establish + policies and configure flows that need to be in place to support the + recommended runtime behavior. + +.. + + If a vendor wants to recommend an action, it can either work with the + service provider to identify and specify microservices that the + service provider support, or, the vendor may simply indicate and + recommend a generic microservice function by prefixing ‘RECO-’ in + front of the microservice name, which should be expressed in upper + camel case with no underscores, hyphens or spaces. + + A fourth value must be provided. If not needed, the string ‘null’ + (without the quotes) must be used. + +5. The fifth value indicates a specific named event (e.g., a TCA) that + should be generated if the trigger occurs. This field must be + provided as a VES eventName or, if not needed, as the string ‘null’ + (without the quotes). + +.. + + When an event is specified, a YAML registration for that eventName + should be added to the event registrations within the YAML file. + +Examples: + +- event: { action: [ any, any, null, rebootVm, null ] } + +.. + + # whenever the above event occurs, the VM should be rebooted + +- fieldname: { action: [ 80, up, null, null, tcaUpEventName ], action: + [ 60, down, overcapacity, null, null ] } + +.. + + # when the value of fieldname crosses 80 in an up direction, + tcaUpEventName + + should be published; if the fieldname crosses 60 in a down direction + an + + ‘overCapacity’ named-condition is asserted. + +AggregationRole +~~~~~~~~~~~~~~~ + +The ‘aggregationRole’ keyword is applied to a keyValuePair. + +AggregationRole may be set to one of the following: + +- cumulativeCounter + +- gauge + +- index + +- reference + +“index” identifies a field as an index or a key for aggregation. + +“reference” fields have values that typically do not change over +consecutive collection intervals. + +“gauge” values may fluctuate from one collection interval to the next, +i.e., increase or decrease. + +“cumulativeCounter” values keep incrementing regardless of collection +interval boundaries until they overflow, i.e., until they exceed a +maximum value specified by design. Typically, delta calculation is +needed based on two cumulativeCounter values over two consecutive +collection intervals. + +If needed, the aggergationRole setting tells the receiving event +processor how to aggregate the extensible keyValuePair data. Data +aggregation may use a combination of ‘index’ and ‘reference’ data fields +as aggregation keys while applying aggregation formulas, such as +summation or average on the ‘gauge’ fields. + +Example 1: + + Interpretation of the below: If additionalMeasurements is supplied, + it must have key name1 and name1’s value should be interpreted as an + index: + +- additionalMeasurements: {presence: optional, structure: { + +.. + + keyValuePair: {presence: required, structure: { + + key: {presence: required, value: name1}, + + value: {presence: required, aggregationRole: index } + + }}, + + . . . + + }} + +Example 2: + +- Let’s say a vnf wants to send the following ‘TunnelTraffic’ fields + through a VES arrayOfNamedHashMap structure (specifically through + additionalMeasurements in the VES measurementField block): + ++-------------+-------------+-------------+-------------+-------------+ +| Tunnel Name | Tunnel Type | Total | Total | Total | +| | | Output | Output | Output | +| | | Bytes | Packets | Errors | ++=============+=============+=============+=============+=============+ +| ST6WA21CRS: | PRIMARY | 2457205 | 21505 | 0 | +| TUNNEL-TE40 | | | | | +| 018 | | | | | ++-------------+-------------+-------------+-------------+-------------+ +| ST6WA21CRS: | PRIMARY | 46677 | 220 | 0 | +| TUNNEL-TE10 | | | | | +| 29 | | | | | ++-------------+-------------+-------------+-------------+-------------+ +| ST6WA21CRS: | PRIMARY | 80346 | 577 | 0 | +| TUNNEL-TE10 | | | | | +| 28 | | | | | ++-------------+-------------+-------------+-------------+-------------+ + +- Tunnel Name is an index, Tunnel Type is reference data and the other + three columns are counters + +- The first three columns would be sent through VES as follows: + +additionalMeasurements: { presence: required, array: [ + +namedHashMap: { presence: required, structure: { + +name: { presence: required, value: "TunnelTraffic" }, + +hashMap: { presence: required, array: [ + +keyValuePair: { presence: required, aggregationRole: index, structure: { + +key: { presence: required, value: TunnelName }, + +value: { presence: required } + +}}, + +keyValuePair: { presence: required, aggregationRole: reference, +structure: { + +key: { presence: required, value: TunnelType }, + +value: { presence: required } + +}}, + +keyValuePair: { presence: required, aggregationRole: cumulativeCounter, + +structure: { + +key: { presence: required, value: TotalOutputBytes }, + +value: { presence: required, castTo: integer } + +}} + +]} + +}} + +]} + +Array +~~~~~ + +The ‘array’ keyword indicates that the element is an array; ‘array:’ is +following by square brackets which contain the elements of the array. +Note that unlike JSON itself, the YAML registration will explicitly +declare the array elements and will not communicate them anonymously. + +Examples: + +- element: { array: [ + +.. + + firstArrayElement: { }, + + secondArrayElement: { } + + ] } + +CastTo +~~~~~~ + +The ‘castTo’ keyword is applied to ‘value’ keywords. It tells the +receiving event processor to cast (or interpret) the supplied value from +its standard VES datatype (typically a string) to some other datatype. +If not supplied the implication is the standard VES datatype applies. + +A value may be castTo one and only one of the following data types: + +- boolean + +- integer + +- number (note: this supports decimal values as well as integral + values) + +- string + +Example: + +- fieldname: { value: [ x, y, z ], castTo: number } # only values ‘x’, + ‘y’, or ‘z’ allowed + +.. + + # each must be cast to a number + +- additionalMeasurements: {presence: optional, structure: { + +.. + + keyValuePair: {presence: required, structure: { # if + additionalMeasurements is + + key: {presence: required, value: name1}, # supplied, it must have key + ‘name1’ + + value: {presence: required, castTo: integer} # its value must be cast + to integer + + }} + + }} + + For another example, see the second example under AggregationRole. + +Comment +~~~~~~~ + +The ‘comment’ keyword enables event registrations to communicate +additional information, in the form of a quoted string, to designers +consuming the event registration. Such additional information might +convey meaning, instructions or potential effects associated with +particular fields or with the event as a whole. + +Examples: + +- fieldname: { range: [ 1, unbounded ], default: 5, comment: “needs + further diagnosis; call the TAC” } + +- fieldname: { value: [ red, white, blue ], default: blue, comment: + “red indicates degraded quality of service” } + +- event: { presence: required, comment: “this event only occurs in + conditions when the ipq has stopped operating; manual reset may be + required”, structure: { . . . } } + +Default +~~~~~~~ + +The ‘default’ keyword specifies a default field value. Note: the default +value must be within the range or enumeration of acceptable values. + +Examples: + +- fieldname: { range: [ 1, unbounded ], default: 5 } + +- fieldname: { value: [ red, white, blue ], default: blue } + +HeartbeatAction +~~~~~~~~~~~~~~~ + +The ‘heartbeatAction’ keyword is provided on the ‘event’ objectName for +heartbeat events only. It provides design time guidance to the service +provider’s heartbeat processing applications (i.e., their watchdog +timers). The syntax and semantics of the ‘heartbeatAction’ keyword are +similar to the ‘action’ keyword except the trigger is specified by the +first field only instead of the first two fields. When the +‘heartbeatAction’ keyword is indicated, the first field is an integer +indicating the number of successively missed heartbeat events. Should +that trigger occur, the remaining fields have the same order, meaning +and optionality as those described for the ‘action’ keyword. + +Examples: + +- event: { heartbeatAction: [ 3, vnfDown, RECO-rebootVnf, tcaEventName + ] } + +.. + + # whenever the above event occurs, a vnfDown condition is asserted + and the vnf should be rebooted, plus the indicated tca should be + generated. + +key +~~~ + +The ‘key’ keyword describes a specific key as part of a key-value pair +that may be sent within a keyValuePair keyword (see ‘keyValuePair’ +keyword for more explanation and examples). + +keyValuePair +~~~~~~~~~~~~ + +The ‘keyValuePair’ keyword describes a specific key-value pair that may +be sent within a hashMap structure (i.e., a VES field with the hashMap +datatype) or a keyValuePairString structure (see the keyValuePairString +keyword for more information). + +Within keyValuePair is a single ‘key’ and a single ‘value’ keyword, each +of which may be decorated with other keywords specified in this document +(e.g., with ‘presence’, ‘range’ and other relevant keywords). + +Examples: + +- The following specifies an additionalInformation field within VES, + which is of type hashMap: + +.. + + additionalInformation: {presence: optional, structure: { + + keyValuePair: {presence: required, structure: { + + key: {presence: required, value: name1}, + + value: {presence: required} + + }}, + + keyValuePair: {presence: optional, structure: { + + key: {presence: required, value: name2}, + + value: {presence: required} + + }} + + }} + +keyValuePairString +~~~~~~~~~~~~~~~~~~ + +The ‘keyValuePairString’ keyword describes the key-value pairs to be +communicated through a string (e.g., in the VES Syslog Fields +‘syslogSData’ or ‘additionalFields’ strings). This keyword takes three +parameters: + +- the first parameter specifies the character used to delimit (i.e., to + separate) the key-value pairs. If a space is used as a delimiter, + it should be communicated within single quotes as ‘ ‘; otherwise, + the delimiter character should be provided without any quotes. + +- The second parameter specifies the characters used to separate the + keys and values. If a space is used as a separator, it should be + communicated within single quotes as ‘ ‘; otherwise, the separator + character should be provided without any quotes. + +- The third parameter is a “sub-keyword” (i.e., it is used only within + ‘keyValuePairString’) called ‘keyValuePairs: [ ]’. Within the + square brackets, a list of ‘keyValuePair’ keywords can be provided + (see the ‘keyValuePair keyword for more information). + +Examples: + +- The following specifies an additionalFields string which is stuffed + with ‘key=value’ pairs delimited by the pipe (‘|’) symbol as in + (“key1=value1|key2=value2|key3=value3…”). + +additionalFields: {presence: required, keyValuePairString: {|, =, +keyValuePairs: [ + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: someKeyName}, + +value: {presence: required, range: [0, 100]} + +} }, + +keyValuePair: {presence: optional, structure: { + +key: {presence: required, value: someOtherKeyName}, + +value: {presence: required, value [red, white, blue]} + +} } + +] } } + +Presence +~~~~~~~~ + +The ‘presence’ keyword may be defined as ‘required’ or ‘optional’. If +not provided, the element is assumed to be ‘optional’. + +Examples + +- element: { presence: required } # element must be present + +- element: { presence: optional } # element is optional + +- element: { value: blue } # by omitting a presence definition, the + +.. + + element is assumed to be optional + +Range +~~~~~ + +The ‘range’ keyword applies to fields (i.e., simpleTypes); indicates the +value of the field is a number within a specified range of values from +low to high (inclusive of the indicated values). . ‘range:’ is followed +by two parameters in square brackets: + +- the first parameter conveys the minimum value + +- the second parameter conveys the maximum value or ‘unbounded’ + +The keyword ‘unbounded’ is supported to convey an unbounded upper limit. +Note that the range cannot override any restrictions defined in the VES +Common Event Format. + +Examples: + +- fieldname: { range: [ 1, unbounded ] } + +- fieldname: { range: [ 0, 3.14 ] } + +Structure +~~~~~~~~~ + +The ‘structure’ keyword indicates that the element is a complexType +(i.e., an object) and is followed by curly braces containing that +object. + +Example: + +- objectName: { structure: { + +element1: { }, + +element2: { }, + +anotherObject: { structure: { + +element3: { }, + +element4: { } + +} } + +} } + +Units +~~~~~ + +The ‘units’ qualifier may be applied to values provided in VES Common +Event Format extensible field structures. The ‘units’ qualifier +communicates the units (e.g., megabytes, seconds, Hz) that the value is +expressed in. Note: the ‘units’ should not contain any space characters +and should be expressed in camel casing (e.g., use ‘numberOfPorts’, not +‘number_of_ports’ nor ‘number of ports’). + +Example: + +- additionalInformation: { presence: optional, structure: { + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: pilotNumberPoolSize}, + +value: {presence: required, units: megaBytes} + +}} + +}} + +Value +~~~~~ + +The ‘value’ keyword applies to fields (i.e., simpleTypes); indicates a +single value or an enumeration of possible values. If not provided, it +is assumed the value will be determined at runtime. Note that the +declared value cannot be inconsistent with restrictions defined in the +VES Common Event Format (e.g., it cannot add an enumerated value to an +enumeration defined in the Common Event Format, but it can subset the +defined enumerations in the Common Event Format). + +Values that are strings containing spaces should always be indicated in +single quotes. + +Examples: + +- fieldname: { value: x } # the value is ‘x’ + +- fieldname: { value: [ x, y, z ] } # the value is either ‘x’, ‘y’, or + ‘z’ + +- fieldname: { presence: required } # the value will be provided at + runtime + +- fieldname: { value: ‘error state’ } # the value is the string within + the single quotes + +Complex Conditions +------------------ + +Conditions Document +~~~~~~~~~~~~~~~~~~~ + +After all events have been defined, the YAML file may provide a YAML +document delimited by ‘---‘ and ‘…’, which specifies complex conditions +defined in terms of other conditions, which were asserted in the action +qualifiers of the preceding event definitions. For example: + + --- + + # Event Registration for eventName ‘name1’ + + event: {presence: required, action: [any, any, A, null], structure: { + + # details omitted + + }} + + ... + + --- + + # Event Registration for eventName ‘name2’ + + event: {presence: required, structure: { + + commonEventHeader: {presence: required, structure: { + + # details omitted + + }} + + measurementFields: {presence: required, structure: { + +cpuUsageArray: {presence: required, array: [ + +cpuUsage: {presence: required, structure: { + +cpuIdentifier: {presence: required}, + +percentUsage: {presence: required, action: [90, up, B, null]} + +}} + +]}, + +# details omitted + + }} + + }} + + ... + + --- + + # Complex Conditions + + conditions: [ + + conditionC: { defined in terms of A and B, details omitted }, + + conditionD: { defined in terms of A, B and C details omitted } + + ] + + ... + +Conditions Syntax and Semantics +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The YAML ‘conditions’ document begins with the keyword ‘conditions’ +followed by a colon and square brackets. Each condition is then defined +within the square brackets. Commas are used to separate conditions. + +Each condition is expressed as follows: + +conditionName: *logical expression in terms of other conditions* + +Logical Expressions +~~~~~~~~~~~~~~~~~~~ + +The following logical operators are supported: + +- &&: which is a logical AND + +- \||, which is a logical OR + +In addition parentheses may be used to group expressions. + +Example logical expression: + + (A && B) \|\| (C && D) + +Where A, B, C and D are named conditions expressed earlier in the YAML +file. + +Because YAML doesn’t support the above operators, the whole expression +needs to be enclosed in double quotes. + +Example for a condition named ‘ConditionP’: + +--- + +conditions: [ + +conditionP: "B \|\| (C && D)" + +] + +... + +Alternatively, Logical ORs and ANDs can be expressed using a syntax +defined by `metacpan.org <https://metacpan.org/pod/YAML::Logic>`__ for +Perl. Using this syntax, the example above looks like this: + +--- + +conditions: [ + +conditionP: [or, [B, [and, [C, D]]]] + +] + +... + +In the above syntax, both ORs and ANDs are provided as two nested +arrays, where the outer array consists of two items: + +- The desired operator as either ‘or’ or ‘and’ + +- The inner array which consists of the conditions to be OR’d or AND’d + together + +Note1: more than two conditions may be or’d or and’d (e.g., “B \|\| C +\|\| D” or “B && C && D”) + +Note2: however expressed by YAML, parsers must be developed to make use +of the above expressions. + +Time Based Qualifiers +~~~~~~~~~~~~~~~~~~~~~ + +Time based rules may be established using a timing keyword as follows: + +--- + +conditions: [ + +PersistentB1: { + +timing: { + +condition: B, + +occurrences: 3, + +interval: 300, + +units: seconds + +} + +} + +] + +... + +This means that if condition B occurs 3 (or more) times in 300 seconds +(e.g., 5 minutes), then condition ‘PersistentB1’ has occurred. + +Array Item Qualifiers +~~~~~~~~~~~~~~~~~~~~~ + +This ‘arrayItems’ keyword defines conditions evaluated across the items +in an array. In the example below, the condition is named ‘AnyOfC’: + +--- + +conditions: [ + +AnyOfC: { + +arrayItems: { + +condition: C, + +arrayItem: measurements.cpuUsageArray.cpuUsage, + +scope: anyOf + +} + +} + +] + +... + +This means that if condition C occurs on any cpuUsage structure within +the cpuUsageArray, then the condition ‘AnyOfC’ is in effect. + +Note the dotted notation used to convey the path to the arrayItem with +respect to the encapsulating domain field block. + +Scope may have the values ‘anyOf’ or ‘allOf’ + +Mathematical Expressions +~~~~~~~~~~~~~~~~~~~~~~~~ + +Mathematical expressions evaluate to a number, using ‘(‘, ‘)’, ‘+’, ‘-‘, +‘*’, ‘/’ and variables of the form $variablePath where the variablePath +is defined with respect to the encapsulating domain field block. + +Mathematical expressions are specified as "${mathematicalExpress}". +Because YAML does not support mathematical operators, the expressions +must be enclosed within double quotes. + +--- + +conditions: [ + +PersistentB2: { + +timing: { + +condition: B, + +occurrences: 3, + +interval: "${60 \* $measurements.measurementInterval}", + +units: seconds + +} + +} + +] + +... + +This means that if condition B occurs 3 (or more) times in an interval +defined by 60 times the measurementInterval (e.g., if the +measurementInterval was expressed in seconds as 5, then this would +evaluate to 300), then condition ‘PersistentB2’ is in effect. + +Rules +----- + +Rules Document +~~~~~~~~~~~~~~ + +After all events and conditions have been defined, the YAML file may +conclude with a final YAML document delimited by ‘---‘ and ‘…’, which +defines rules based on the named ‘conditions’ asserted previously. For +example: + + --- + + # Event Registration for eventName ‘name1’ + + event: {presence: required, action: [any, any, A, null], structure: { + + # details omitted + + }} + + ... + + --- + + # Event Registration for eventName ‘name2’ + + event: {presence: required, structure: { + + commonEventHeader: {presence: required, structure: { + + # details omitted + + }} + + measurementFields: {presence: required, structure: { + +cpuUsageArray: {presence: required, array: [ + +cpuUsage: {presence: required, structure: { + +cpuIdentifier: {presence: required}, + +percentUsage: {presence: required, action: [90, up, B, null]} + +}} + +]}, + +# details omitted + + }} + + }} + + ... + + --- + + # Complex Conditions + + conditions: [ + + C: { details omitted } + + ] + + ... + + --- + + # Rules + + rules: [ + + # defined based on conditions ‘A’, ‘B’ and ‘C’ - details omitted + + ] + + ... + +Rules Syntax and Semantics +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The YAML ‘rules’ document begins with the keyword ‘rules’ followed by a +colon and square brackets. Each rule is then defined within the square +brackets (of ‘rules’). Commas are used to separate rule structure. + +Each rule structure is expressed as follows: + +rule: { + +trigger: *logical expression in terms of conditions*, + +microservices: [ *microservice1, microservice2, microservice3…* ] + +events: [e*ventName1, eventName2, eventName3…* ], + +} + +Notes: + +- All referenced eventNames should be defined within the YAML. + +- At least one microservice or event should be specified, and both + microservices and events may be specified. + +- For information about microservices, see section 3.1.1 bullet number + 4. + +Triggers +~~~~~~~~ + +Triggers may be as simple as a named condition, or they may be logical +expressions in terms of other conditions using the same syntax as used +by the complex conditions described above. For example: + +rules: [ + +ruleName1: { + +trigger: A, + +eventss: [eventName1], + +microservices: [rebootVm] + +}, + +ruleName2: { + +trigger: "B \|\| (C && D)", + +microservices: [scaleOut] + +} + +] + +Note: when microservices are defined in terms of multiple event +conditions, the designer should take care to consider whether the target +of the microservice is clear (e.g., which VNF or VM instance to perform +the action on). Future versions of this document may provide more +clarity. + +YAML Examples +============= + +An example YAML file is provided below which registers some events for a +hypothetical VNF. Note: some of the lines have been manually +wrapped/indented to make it easier to read. Please ignore the section +breaks that interrupt this single file; they were added to make it +easier to rapidly find examples of different types of events. + +Fault +----- + +--- + +# registration for Fault_vMrf_alarm003 + +# Constants: the values of domain, eventName, priority, vfstatus + +# , version, alarmCondition, eventSeverity, eventSourceType, + +# faultFieldsVersion, specificProblem, + +# Variables (to be supplied at runtime) include: eventId, +lastEpochMicrosec, + +# reportingEntityId, reportingEntityName, sequence, sourceId, +sourceName, + +# startEpochMicrosec + +event: {presence: required, action: [ any, any, alarm003, +RECO-rebuildVnf ], + +structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: fault}, + +eventName: {presence: required, value: Fault_Vmrf-Nokia_Alarm003}, + +eventId: {presence: required}, + +nfNamingCode: {value: mrfx}, + +priority: {presence: required, value: Medium}, + +reportingEntityId: {presence: required}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceId: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +faultFields: {presence: required, structure: { + +alarmCondition: {presence: required, value: alarm003}, + +eventSeverity: {presence: required, value: MAJOR}, + +eventSourceType: {presence: required, value: virtualNetworkFunction}, + +faultFieldsVersion: {presence: required, value: 3.0}, + +specificProblem: {presence: required, value: "Configuration file was +corrupt or + +not present"}, + +vfStatus: {presence: required, value: "Requesting Termination"} + +}} + +}} + +... + +--- + +# registration for clearing Fault_vMrf_alarm003Cleared + +# Constants: the values of domain, eventName, priority, + +# , version, alarmCondition, eventSeverity, eventSourceType, + +# faultFieldsVersion, specificProblem, + +# Variables (to be supplied at runtime) include: eventId, +lastEpochMicrosec, + +# reportingEntityId, reportingEntityName, sequence, sourceId, + +# sourceName, startEpochMicrosec, vfStatus + +event: {presence: required, action: [ any, any, alarm003, Clear ], +structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: fault}, + +eventName: {presence: required, value: +Fault_Vmrf-Nokia_Alarm003Cleared}, + +eventId: {presence: required}, + +nfNamingCode: {value: mrfx}, + +priority: {presence: required, value: Medium}, + +reportingEntityId: {presence: required}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceId: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +faultFields: {presence: required, structure: { + +alarmCondition: {presence: required, value: alarm003}, + +eventSeverity: {presence: required, value: NORMAL}, + +eventSourceType: {presence: required, value: virtualNetworkFunction}, + +faultFieldsVersion: {presence: required, value: 3.0}, + +specificProblem: {presence: required, value: "Valid configuration file +found"}, + +vfStatus: {presence: required, value: "Requesting Termination"} + +}} + +}} + +... + +Heartbeat +--------- + +--- + +# registration for Heartbeat_vMRF + +# Constants: the values of domain, eventName, priority, version + +# Variables (to be supplied at runtime) include: eventId, +lastEpochMicrosec, + +# reportingEntityId, reportingEntityName, sequence, sourceId, +sourceName, + +# startEpochMicrosec + +event: {presence: required, heartbeatAction: [3, vnfDown, +RECO-rebuildVnf], + +structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: heartbeat}, + +eventName: {presence: required, value: Heartbeat_Vmrf-Nokia}, + +eventId: {presence: required}, + +nfNamingCode: {value: mrfx}, + +priority: {presence: required, value: Normal}, + +reportingEntityId: {presence: required}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceId: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +heartbeatFields: {presence: optional, structure:{ + + heartbeatFieldsVersion: {presence: required, value: 2.0}, + + heartbeatInterval: {presence: required, range: [ 15, 300 ], +default: 60 } + +}} + +}} + +... + +Measurements +------------ + +To see how additionalMeasurements may be sent in a way that is easy for +service providers to process without custom logic, please see the +following keywords: aggregationRole and castTo. In particular, see the +second example under aggergationRole. + +--- + +# registration for Measurement_vMRF + +# Constants: the values of domain, eventName, priority, version, + +# measurementFieldsVersion, +additionalMeasurements.namedArrayOfFields.name, + +# Variables (to be supplied at runtime) include: eventId, +reportingEntityName, sequence, + +# sourceName, start/lastEpochMicrosec, measurementInterval, + +# concurrentSessions, requestRate, numberOfMediaPortsInUse, + +# cpuUsageArray.cpuUsage,cpuUsage.cpuIdentifier, cpuUsage.percentUsage, + +# additionalMeasurements.namedArrayOfFields.arrayOfFields, + +# vNicPerformance.receivedOctetsAccumulated, + +# vNicPerformance.transmittedOctetsAccumulated, + +# vNicPerformance.receivedTotalPacketsAccumulated, + +# vNicPerformance.transmittedTotalPacketsAccumulated, + +# vNicPerformance.vNicIdentifier, vNicPerformance.receivedOctetsDelta, + +# vNicPerformance.receivedTotalPacketsDelta, + +# vNicPerformance.transmittedOctetsDelta, + +# vNicPerformance.transmittedTotalPacketsDelta, + +# vNicPerformance.valuesAreSuspect, memoryUsageArray.memoryUsage, + +# memoryUsage.memoryConfigured, memoryUsage.vmIdentifier, + +# memoryUsage.memoryUsed, memoryUsage.memoryFree + +event: {presence: required, structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: measurement}, + +eventName: {presence: required, value: Measurement_Vmrf-Nokia}, + +eventId: {presence: required}, + +nfNamingCode: {value: mrfx}, + +priority: {presence: required, value: Normal}, + +reportingEntityId: {presence: required}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceId: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +measurementFields: {presence: required, structure: { + +measurementFieldsVersion: {presence: required, value: 3.0}, + +measurementInterval: {presence: required, range: [ 60, 3600 ], default: +300}, + +concurrentSessions: {presence: required, range: [ 0, 100000 ]}, + +requestRate: {presence: required, range: [ 0, 100000 ]}, + +numberOfMediaPortsInUse: {presence: required, range: [ 0, 100000 ]}, + +cpuUsageArray: {presence: required, array: [ + +cpuUsage: {presence: required, structure: { + +cpuIdentifier: {presence: required}, + +percentUsage: {presence: required, range: [ 0, 100 ], + +action: [80, up, CpuUsageHigh, RECO-scaleOut], + +action: [10, down, CpuUsageLow, RECO-scaleIn]} + +}} + +]}, + +memoryUsageArray: {presence: required, array: [ + +memoryUsage: {presence: required, structure: { + +memoryConfigured: {presence: required, value: 33554432}, + +memoryFree: {presence: required, range: [ 0, 33554432 ], + +action: [100, down, FreeMemLow, RECO-scaleOut], + +action: [30198989, up, FreeMemHigh, RECO-scaleIn]}, + +memoryUsed: {presence: required, range: [ 0, 33554432 ]}, + +vmIdentifier: {presence: required} + +}} + +]}, + +additionalMeasurements: {presence: required, array: [ + +namedHashMap: {presence: required, structure: { + +name: {presence: required, value: licenseUsage}, + +hashMap: {presence: required, structure: { + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: G711AudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: G729AudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: G722AudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: AMRAudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: AMRWBAudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: OpusAudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: H263VideoPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: H264NonHCVideoPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: H264HCVideoPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: MPEG4VideoPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: VP8NonHCVideoPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: VP8HCVideoPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: PLC}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: AEC}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: NR}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: NG}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: NLD}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: G711FaxPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: T38FaxPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: RFactor}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: T140TextPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: EVSAudioPort}, + +value: {presence: required, range: [ 0, 100000 ], + +units: numberOfPorts } + +}} + +}} + +}}, + +namedHashMap: {presence: required, structure: { + +name: {presence: required, value: mediaCoreUtilization}, + +hashMap: {presence: required, structure: { + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: actualAvgAudio}, + +value: {presence: required, range: [ 0, 255 ], + +action: [80, up, AudioCoreUsageHigh, RECO-scaleOut], + +action: [10, down, AudioCoreUsageLow, RECO-scaleIn]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: modelAvgAudio}, + +value: {presence: required, range: [ 0, 100 ], + +action: [80, up, AudioCoreUsageHigh, RECO-scaleOut], + +action: [10, down, AudioCoreUsageLow, RECO-scaleIn]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: actualMaxAudio}, + +value: {presence: required, range: [ 0, 255 ]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: modelMaxAudio}, + +value: {presence: required, range: [ 0, 100 ]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: actualAvgVideo}, + +value: {presence: required, range: [ 0, 255 ], + +action: [80, up, VideoCoreUsageHigh, RECO-scaleOut], + +action: [10, down, VideoCoreUsageLow, RECO-scaleIn]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: modelAvgVideo}, + +value: {presence: required, range: [ 0, 100 ], + +action: [80, up, VideoCoreUsageHigh, RECO-scaleOut], + +action: [10, down, VideoCoreUsageLow, RECO-scaleIn]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: actualMaxVideo}, + +value: {presence: required, range: [ 0, 255 ]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: modelMaxVideo}, + +value: {presence: required, range: [ 0, 100 ]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: actualAvgHcVideo}, + +value: {presence: required, range: [ 0, 255 ], + +action: [80, up, HcVideoCoreUsageHigh, RECO-scaleOut], + +action: [10, down, HcVideoCoreUsageLow, RECO-scaleIn]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: modelAvgHcVideo}, + +value: {presence: required, range: [ 0, 100 ], + +action: [80, up, HcVideoCoreUsageHigh, RECO-scaleOut], + +action: [10, down, HcVideoCoreUsageLow, RECO-scaleIn]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: actualMaxHcVideo}, + +value: {presence: required, range: [ 0, 255 ]} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: modelMaxHcVideo}, + +value: {presence: required, range: [ 0, 100 ]} + +}} + +}} + +}} + +]}, + +vNicPerformanceArray: {presence: required, array: [ + +vNicPerformance: {presence: required, structure: { + +receivedOctetsAccumulated: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +receivedTotalPacketsAccumulated: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +receivedOctetsDelta: {presence: required}, + +range: [ 0, 18446744073709551615 ], + +receivedTotalPacketsDelta: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +transmittedOctetsDelta: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +transmittedOctetsAccumulated: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +transmittedTotalPacketsAccumulated: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +transmittedTotalPacketsDelta: {presence: required, + +range: [ 0, 18446744073709551615 ]}, + +valuesAreSuspect: {presence: required, value: [ true, false ]}, + +vNicIdentifier: {presence: required} + +}} + +]} + +}} + +}} + +... + +Mobile Flow +----------- + +--- + +# registration for mobileFlow + +# Constants: the values of domain, eventName, priority, version + +# + +# Variables (to be supplied at runtime) include: eventId, +reportingEntityName, + +# sequence, sourceName, start/lastEpochMicrosec + +# + +event: {presence: required, structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: mobileFlow}, + +eventName: {presence: required, value: MobileFlow_Vxyz-Vendor}, + +eventId: {presence: required}, + +nfType: {presence: required, value: sbcx}, + +priority: {presence: required, value: Normal}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +mobileFlowFields: {presence: required, structure: { + +mobileFlowFieldsVersion: {presence: required, value: 3.0}, + +applicationType: {presence: optional}, + +appProtocolType: {presence: optional}, + +appProtocolVersion: {presence: optional}, + +cid: {presence: optional}, + +connectionType: {presence: optional}, + +ecgi: {presence: optional}, + +flowDirection: {presence: required}, + +gtpPerFlowMetrics: {presence: required, structure: { + +avgBitErrorRate: {presence: required}, + +avgPacketDelayVariation: {presence: required}, + +avgPacketLatency: {presence: required}, + +avgReceiveThroughput: {presence: required}, + +avgTransmitThroughput: {presence: required}, + +durConnectionFailedStatus: {presence: optional}, + +durTunnelFailedStatus: {presence: optional}, + +flowActivatedBy: {presence: optional}, + +flowActivationEpoch: {presence: required}, + +flowActivationMicrosec: {presence: required}, + +flowActivationTime: {presence: optional}, + +flowDeactivatedBy: {presence: optional}, + +flowDeactivationEpoch: {presence: required}, + +flowDeactivationMicrosec: {presence: required}, + +flowDeactivationTime: {presence: required}, + +flowStatus: {presence: required}, + +gtpConnectionStatus: {presence: optional}, + +gtpTunnelStatus: {presence: optional}, + +ipTosCountList: {presence: optional}, + +ipTosList: {presence: optional}, + +largePacketRtt: {presence: optional}, + +largePacketThreshold: {presence: optional}, + +maxPacketDelayVariation: {presence: required}, + +maxReceiveBitRate: {presence: optional}, + +maxTransmitBitRate: {presence: optional}, + +mobileQciCosCountList: {presence: optional}, + +mobileQciCosList: {presence: optional}, + +numActivationFailures: {presence: required}, + +numBitErrors: {presence: required}, + +numBytesReceived: {presence: required}, + +numBytesTransmitted: {presence: required}, + +numDroppedPackets: {presence: required}, + +numGtpEchoFailures: {presence: optional}, + +numGtpTunnelErrors: {presence: optional}, + +numHttpErrors: {presence: optional}, + +numL7BytesReceived: {presence: required}, + +numL7BytesTransmitted: {presence: required}, + +numLostPackets: {presence: required}, + +numOutOfOrderPackets: {presence: required}, + +numPacketErrors: {presence: required}, + +numPacketsReceivedExclRetrans: {presence: required}, + +numPacketsReceivedInclRetrans: {presence: required}, + +numPacketsTransmittedInclRetrans: {presence: required}, + +numRetries: {presence: required}, + +numTimeouts: {presence: required}, + +numTunneledL7BytesReceived: {presence: required}, + +roundTripTime: {presence: required}, + +tcpFlagCountList: {presence: optional}, + +tcpFlagList: {presence: optional}, + +timeToFirstByte: {presence: required} + +}}, + +gtpProtocolType: {presence: optional}, + +gtpVersion: {presence: optional}, + +httpHeader: {presence: optional}, + +imei: {presence: optional}, + +imsi: {presence: optional}, + +ipProtocolType: {presence: required}, + +ipVersion: {presence: required}, + +lac: {presence: optional}, + +mcc: {presence: optional}, + +mnc: {presence: optional}, + +msisdn: {presence: optional}, + +otherEndpointIpAddress: {presence: required}, + +otherEndpointPort: {presence: required}, + +otherFunctionalRole: {presence: optional}, + +rac: {presence: optional}, + +radioAccessTechnology: {presence: optional}, + +reportingEndpointIpAddr: {presence: required}, + +reportingEndpointPort: {presence: required}, + +sac: {presence: optional}, + +samplingAlgorithm: {presence: optional}, + +tac: {presence: optional}, + +tunnelId: {presence: optional}, + +vlanId: {presence: optional}, + +additionalInformation: {presence: optional, array: [ + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: name1}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: optional, structure: { + +key: {presence: required, value: name2}, + +value: {presence: required} + +}} + +]} + +}} + +}} + +... + +Sip Signaling +------------- + +--- + +# registration for sipSignaling + +# Constants: the values of domain, eventName, priority, version + +# + +# Variables (to be supplied at runtime) include: eventId, +reportingEntityName, + +# sequence, sourceName, start/lastEpochMicrosec + +# + +event: {presence: required, structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: sipSignaling}, + +eventName: {presence: required, value: SipSignaling_Vxyz-Vendor}, + +eventId: {presence: required}, + +nfType: {presence: required, value: sbcx}, + +priority: {presence: required, value: Normal}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +sipSignalingFields: {presence: required, structure: { + +compressedSIP: {presence: optional}, + +correlator: {presence: required}, + +localIpAaddress: {presence: required}, + +localPort: {presence: required}, + +remoteIpAddress: {presence: required}, + +remotePort: {presence: required}, + +sipSignalingFieldsVersion: {presence: required, value: 2.0}, + +summarySip: {presence: optional}, + +vnfVendorNameFields: {presence: required, structure: { + +vendorName: {presence: required}, + +vfModuleName: {presence: optional}, + +vnfName: {presence: optional} + +}}, + +additionalInformation: {presence: optional, array: [ + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: name1}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: optional, structure: { + +key: {presence: required, value: name2}, + +value: {presence: required} + +}} + +]} + +}} + +}} + +... + +Syslog +------ + +--- + +# registration for Syslog_vMRF + +# Constants: the values of domain, eventName, priority, +lastEpochMicrosec, version, + +# syslogFields.syslogFieldsVersion, syslogFields.syslogTag + +# Variables include: eventId, lastEpochMicrosec, reportingEntityId, +reportingEntityName, + +# sequence, sourceId, sourceName, startEpochMicrosec, + +# syslogFields.eventSourceHost, syslogFields.eventSourceType, + +# syslogFields.syslogFacility, syslogFields.syslogMsg + +event: {presence: required, structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: syslog}, + +eventName: {presence: required, value: Syslog_Vmrf-Nokia}, + +eventId: {presence: required}, + +nfNamingCode: {value: mrfx}, + +priority: {presence: required, value: Normal}, + +reportingEntityId: {presence: required}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceId: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0}, + +}}, + +syslogFields: {presence: required, structure: { + +eventSourceHost: {presence: required}, + +eventSourceType: {presence: required, value: virtualNetworkFunction}, + +syslogFacility: {presence: required, range: [16, 23]}, + +syslogSev: {presence: required, value: [Emergency, Alert, Critical, +Error]}, + +syslogFieldsVersion: {presence: required, value: 3.0}, + +syslogMsg: {presence: required}, + +syslogSData: {presence: required, keyValuePairString: {‘ ‘, =, +keyValuePairs: [ + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: ATTEST}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: DATE_IN}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: DATE_OUT}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: DEST_IN}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: FUNCTION}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: ICID}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: ORIGID}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: ORIG_TN}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: SIP_REASON_HEADER}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: STATE}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: STATUS}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: VERSTAT}, + +value: {presence: required} + +}} + +]}} }] + +syslogTag: {presence: required, value: vMRF}, + +additionalFields: {presence: required, keyValuePairString: {|, =, +keyValuePairs: [ + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: someKeyName}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: optional, structure: { + +key: {presence: required, value: someOtherKeyName}, + +value: {presence: required} + +}} + +]}} + +}} + +}} + +... + +Voice Quality +------------- + +--- + +# registration for voiceQuality + +# Constants: the values of domain, eventName, priority, version + +# + +# Variables (to be supplied at runtime) include: eventId, +lastEpochMicrosec, + +# reportingEntityId, reportingEntityName, sequence, sourceId, + +# sourceName, startEpochMicrosec + +event: {presence: required, structure: { + +commonEventHeader: {presence: required, structure: { + +domain: {presence: required, value: voiceQualityFields}, + +eventName: {presence: required, value: VoiceQuality_Vxyz-Vendor}, + +eventId: {presence: required}, + +nfType: {presence: required, value: sbcx}, + +priority: {presence: required, value: Normal}, + +reportingEntityName: {presence: required}, + +sequence: {presence: required}, + +sourceName: {presence: required}, + +startEpochMicrosec: {presence: required}, + +lastEpochMicrosec: {presence: required}, + +timeZoneOffset: {presence: required}, + +version: {presence: required, value: 3.0} + +}}, + +voiceQualityFields: {presence: required, structure: { + +voiceQualityFieldsVersion: {presence: required, value: 2.0}, + +calleeSideCodec: {presence: required}, + +callerSideCodec: {presence: required}, + +correlator: {presence: required}, + +remoteIpAddress: {presence: required}, + +endOfCallVqmSummaries: {presence: required, structure: { + +adjacencyName: {presence: required}, + +endpointDescription: {presence: required}, + +endpointAverageJitter: {presence: optional}, + +endpointMaxJitter: {presence: optional}, + +endpointRtpOctetsLost: {presence: optional}, + +endpointRtpPacketsLost: {presence: optional}, + +endpointRtpOctetsDiscarded: {presence: optional}, + +endpointRtpOctetsReceived: {presence: optional}, + +endpointRtpOctetsSent: {presence: optional}, + +endpointRtpPacketsDiscarded: {presence: optional}, + +endpointRtpPacketsReceived: {presence: optional}, + +endpointRtpPacketsSent: {presence: optional}, + +localAverageJitter: {presence: optional}, + +localMaxJitter: {presence: optional}, + +localAverageJitterBufferDelay: {presence: optional}, + +localMaxJitterBufferDelay: {presence: optional}, + +localRtpOctetsDiscarded: {presence: optional}, + +localRtpOctetsLost: {presence: optional}, + +localRtpOctetsReceived: {presence: optional}, + +localRtpOctetsSent: {presence: optional}, + +localRtpPacketsDiscarded: {presence: optional}, + +localRtpPacketsLost: {presence: optional}, + +localRtpPacketsReceived: {presence: optional}, + +localRtpPacketsSent: {presence: optional}, + +mosCqe: {presence: optional}, + +oneWayDelay: {presence: optional}, + +packetLossPercent: {presence: optional}, + +rFactor: {presence: optional}, + +roundTripDelay: {presence: optional} + +}}, + +phoneNumber: {presence: required}, + +midCallRtcp: {presence: required}, + +vendorVnfNameFields: {presence: required, structure: { + +vendorName: {presence: required}, + +vfModuleName: {presence: optional}, + +vnfName: {presence: optional} + +}}, + +additionalInformation: {presence: optional, array: [ + +keyValuePair: {presence: required, structure: { + +key: {presence: required, value: name1}, + +value: {presence: required} + +}}, + +keyValuePair: {presence: optional, structure: { + +key: {presence: required, value: name2}, + +value: {presence: required} + +}} + +]} + +}} + +}} + +... + +.. _rules-1: + +Rules +----- + +--- + +#Rules + +Rules: [ + +ruleName1: { + +trigger: "CpuUsageHigh \|\| FreeMemLow \|\| AudioCoreUsageHigh \|\| + +VideoCoreUsageHigh \|\| HcVideoCoreUsageHigh", + +microservices: [scaleOut] + +}, + +ruleName2: { + +trigger: "CpuUsageLow && FreeMemHigh && AudioCoreUsageLow && + +VideoCoreUsageLow && HcVideoCoreUsageLow", + +microservices: [scaleIn] + +} + +] + +... + +Appendix: Historical Change Log +=============================== + +For the latest changes, see the Change Block just before the Table of +Contents. + ++-----------------------+-----------------------+-----------------------+ +| Date | Revision | Description | ++-----------------------+-----------------------+-----------------------+ +| 3/15/2017 | 1.0 | This is the initial | +| | | release of the VES | +| | | Event Registration | +| | | document. | ++-----------------------+-----------------------+-----------------------+ +| 3/22/2017 | 1.1 | - Changed the | +| | | ‘alert’ | +| | | qualifier to | +| | | ‘action’ and | +| | | added support | +| | | for conditions | +| | | that will | +| | | trigger rules. | +| | | | +| | | - Formatted the | +| | | document with | +| | | more sections | +| | | and | +| | | subsections. | +| | | | +| | | - Defined the syntax | +| | | and semantics | +| | | for condition | +| | | based rules. | +| | | | +| | | - Fixed the YAML | +| | | examples. | ++-----------------------+-----------------------+-----------------------+ +| 3/27/2017 | 1.2 | - Clarified the | +| | | audience of the | +| | | document and | +| | | the | +| | | expectations | +| | | for vendors. | +| | | | +| | | - Changed the order | +| | | of fields in | +| | | the action | +| | | keyword. | +| | | | +| | | - Updated the YAML | +| | | examples. | +| | | | +| | | - Wordsmithed | +| | | throughout. | ++-----------------------+-----------------------+-----------------------+ +| 3/31/2017 | 1.3 | - Generalized the | +| | | descriptions | +| | | from an ASDC, | +| | | ECOMP and | +| | | AT&T-specific | +| | | interaction | +| | | with a VNF | +| | | vendor, to a | +| | | generic Service | +| | | Provider | +| | | interaction | +| | | with a VNF | +| | | vendor. | +| | | | +| | | - Wordsmithed | +| | | throughout. | +| | | | +| | | - Added a ‘default’ | +| | | qualifier | +| | | | +| | | - Fixed syntax and | +| | | semantic | +| | | inconsistencies | +| | | in the Rules | +| | | section | +| | | | +| | | - Brought all | +| | | examples into | +| | | compliance with | +| | | v5.0 | +| | | | +| | | - Added a heartbeat | +| | | example | +| | | | +| | | - Modified the | +| | | measurement | +| | | example | +| | | | +| | | - Modified the | +| | | syslog example | +| | | | +| | | - Added two complex | +| | | rules | ++-----------------------+-----------------------+-----------------------+ +| 4/14/2017 | 1.4 | - Wordsmithed | +| | | throughout | +| | | | +| | | - Action keyword: | +| | | clarified use | +| | | of ‘up’, ‘down’ | +| | | and ‘at’ | +| | | triggers; | +| | | clarified the | +| | | specification | +| | | and use of | +| | | microservices | +| | | directives at | +| | | design time and | +| | | runtime, | +| | | clarified the | +| | | use of tca’s | +| | | | +| | | - HeartbeatAction | +| | | keyword: Added | +| | | the | +| | | heartbeatAction | +| | | keyword | +| | | | +| | | - Value keyword: | +| | | clarified the | +| | | communicaton of | +| | | strings | +| | | containing | +| | | spaces. | +| | | | +| | | - Rules: corrected | +| | | the use of | +| | | quotes in | +| | | examples | +| | | | +| | | - Examples: added | +| | | the | +| | | heartbeatAction | +| | | keyword on the | +| | | heartbeat event | +| | | example; also | +| | | corrected use | +| | | of quotes | +| | | throughout. | ++-----------------------+-----------------------+-----------------------+ +| 10/3/2017 | 1.5 | - Back of Cover | +| | | Page: updated the | +| | | license and | +| | | copyright notice | +| | | to comply with | +| | | ONAP guidelines | +| | | | +| | | - Section 3.1: Added | +| | | a ‘Units’ | +| | | qualifier | +| | | | +| | | - Examples: updated | +| | | the examples to | +| | | align with VES | +| | | 5.4.1 | ++-----------------------+-----------------------+-----------------------+ +| 10/31/2017 | 1.6 | - Added | +| | | KeyValuePairString | +| | | keyword to handle | +| | | strings which have | +| | | delimited | +| | | key-value pairs | +| | | within them. | +| | | | +| | | - Updated the syslog | +| | | example to show | +| | | the use of | +| | | KeyValuePairStr | +| | | ing | +| | | | +| | | - Updated the syslog | +| | | example to | +| | | align syslogSev | +| | | with VES 5.4.1 | +| | | | +| | | - Added examples for | +| | | mobile flow, | +| | | sip signaling | +| | | and voice | +| | | quality | +| | | | +| | | - Added sections | +| | | within the | +| | | examples to | +| | | facilitate | +| | | rapid access to | +| | | specific types | +| | | of example | +| | | events | +| | | | +| | | - Wordsmithed the | +| | | Introduction | ++-----------------------+-----------------------+-----------------------+ +| 6/28/2018 | 2.0 | - Updated to align | +| | | with the change of | +| | | the | +| | | ‘measurementsForVf | +| | | Scaling’ | +| | | domain to | +| | | ‘measurement’ | +| | | | +| | | - measurementsFor | +| | | VfScaling | +| | | measurement | +| | | | +| | | - measurementsFor | +| | | VfScalingFields | +| | | measurementFiel | +| | | ds | +| | | | +| | | - measurementsFor | +| | | VfScalingVersion | +| | | measurementFiel | +| | | dsVersion | +| | | | +| | | - the ‘mfvs’ | +| | | abbreviation | +| | | measurement | +| | | | +| | | 1. Clarified YAML | +| | | file naming | +| | | | +| | | 2. Clarified the | +| | | Action keyword. | +| | | | +| | | 3. Added an | +| | | aggregationRole | +| | | keyword. | +| | | | +| | | 4. Added a castTo | +| | | keyword. | +| | | | +| | | 5. Added an | +| | | isHomogeneous | +| | | keyword. | +| | | | +| | | 6. Added a 'key' | +| | | keyword | +| | | | +| | | 7. Add a | +| | | 'keyValuePair' | +| | | keyword | +| | | | +| | | 8. Modified the | +| | | existing | +| | | 'keyValuePairStri | +| | | ng' | +| | | keyword | +| | | description to | +| | | reference the | +| | | 'keyValuePair' | +| | | keyword. | +| | | | +| | | 9. Added a section | +| | | on Complex | +| | | Conditions and | +| | | modified the | +| | | Rules section | +| | | | +| | | 10. Modified the | +| | | Examples as | +| | | follows: | +| | | | +| | | - changed | +| | | ‘faultFieldsVer | +| | | sion’ | +| | | to 3.0 | +| | | | +| | | - changed | +| | | ‘heartbeatField | +| | | sVersion’ | +| | | to 2.0 | +| | | | +| | | - provided guidance | +| | | at the top of | +| | | the | +| | | Measurements | +| | | examples as to | +| | | how to send | +| | | extensible | +| | | fields through | +| | | arrayOfNamedHas | +| | | hMap | +| | | in a way that | +| | | will eliminate | +| | | the need for | +| | | custom | +| | | development at | +| | | the service | +| | | provider. | +| | | | +| | | - changed | +| | | ‘measurementFie | +| | | ldsVersion’ | +| | | to 3.0 | +| | | | +| | | - changed | +| | | measurementFiel | +| | | ds.additionalMeasurem | +| | | ents | +| | | to reference a | +| | | ‘namedHashMap’ | +| | | | +| | | - ‘field’ is | +| | | replaced by | +| | | ‘keyValuePair’ | +| | | | +| | | - ‘name’ is replaced | +| | | by ‘key’ | +| | | | +| | | - changed | +| | | ‘namedArrayOfFi | +| | | elds’ | +| | | to | +| | | ‘namedHashMap’ | +| | | | +| | | - fixed the mobile | +| | | Flow example to | +| | | show the | +| | | ‘mobileFlowFiel | +| | | ds’, | +| | | show the | +| | | ‘mobileFlowFiel | +| | | dsVersion’ | +| | | at 3.0, modify | +| | | ‘additionalInfo | +| | | rmation’ | +| | | to use a | +| | | hashMap | +| | | | +| | | - ‘field’ is | +| | | replaced by | +| | | ‘keyValuePair’ | +| | | | +| | | - ‘name’ is replaced | +| | | by ‘key’ | +| | | | +| | | - changed | +| | | ‘sipSignalingFi | +| | | eldsVersion’ | +| | | to 2.0 | +| | | | +| | | - changed | +| | | ‘additionalInfo | +| | | rmation’ | +| | | to use a | +| | | hashmap | +| | | | +| | | - ‘field’ is | +| | | replaced by | +| | | ‘keyValuePair’ | +| | | | +| | | - ‘name’ is replaced | +| | | by ‘key’ | +| | | | +| | | - fixed the | +| | | voiceQuality | +| | | example to show | +| | | the | +| | | ‘voiceQualityFi | +| | | elds’, | +| | | show the | +| | | ‘voiceQualityFi | +| | | eldsVersion’ | +| | | at 2.0 and | +| | | modify | +| | | ‘additionalInfo | +| | | rmation’ | +| | | to use a | +| | | hashMap | +| | | | +| | | - ‘field’ is | +| | | replaced by | +| | | ‘keyValuePair’ | +| | | | +| | | - ‘name’ is replaced | +| | | by ‘key’ | +| | | | +| | | - Modified the rules | +| | | example to conform | +| | | to the Complex | +| | | Conditions and | +| | | Rules sections. | +| | | | +| | | - Numerous | +| | | clarifications | +| | | made to address | +| | | issues with | +| | | previous drafts of | +| | | this version | +| | | including: | +| | | | +| | | - Fixed arrays | +| | | followed by | +| | | other than | +| | | square brackets | +| | | | +| | | - Section 2.2: | +| | | clarified | +| | | format of v# in | +| | | filename | +| | | | +| | | - Section 3.1.11: | +| | | clarified use | +| | | of camel casing | +| | | | +| | | - Section 3.2.1: | +| | | corrected and | +| | | clarified | +| | | | +| | | - Section 3.2.3 | +| | | Clarified | +| | | number of | +| | | conditions that | +| | | may be and’d or | +| | | or’d | +| | | | +| | | - Section 3.2.4: | +| | | fixed reference | +| | | to PersistentB1 | +| | | | +| | | - Section 3.2.6: | +| | | fixed math in | +| | | example | +| | | | +| | | - Section 3.3.2: | +| | | changed reference | +| | | from ‘alerts’ to | +| | | ‘events’ | ++-----------------------+-----------------------+-----------------------+ |