diff options
Diffstat (limited to 'docs/Chapter8/ves_7_2/ves_event_listener_7_2.rst')
-rw-r--r-- | docs/Chapter8/ves_7_2/ves_event_listener_7_2.rst | 6220 |
1 files changed, 6220 insertions, 0 deletions
diff --git a/docs/Chapter8/ves_7_2/ves_event_listener_7_2.rst b/docs/Chapter8/ves_7_2/ves_event_listener_7_2.rst new file mode 100644 index 0000000..2c8b933 --- /dev/null +++ b/docs/Chapter8/ves_7_2/ves_event_listener_7_2.rst @@ -0,0 +1,6220 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017 AT&T Intellectual Property, All rights reserved +.. Copyright 2017-2018 Huawei Technologies Co., Ltd. + +.. _ves_event_listener_7_1: + +Service: VES Event Listener 7.1.1 +--------------------------------- + ++-----------------------------------------------------------------------------+ +| **Legal Disclaimer** | +| | +| Licensed under the Apache License, Version 2.0 (the "License"); you may not | +| use this file except in compliance with the License. You may obtain a copy | +| of the License at | +| | +| http://www.apache.org/licenses/LICENSE-2.0 | +| | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | +| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | +| License for the specific language governing permissions and limitations | +| under the License. | ++-----------------------------------------------------------------------------+ + + +:Document: VES Event Listener +:Revision: 7.1.1 +:Revision Date: January 28th, 2020 +:Author: Rich Erickson + ++-----------------+-----------------------------+ +| Contributors: | **Min Chen – AT&T** | +| | | +| | **Fred Delaplace - AT&T** | +| | | +| | **Andrew Egan – AT&T** | +| | | +| | **Alok Gupta – AT&T** | +| | | +| | **Marge Hillis – Nokia** | +| | | +| | **Gerard Hynes – AT&T** | +| | | +| | **Ken Kelly – AT&T** | +| | | +| | **Mark Scott – Ericsson** | +| | | +| | **Tim Verall – Intel** | +| | | +| | **Sumit Verdi – VMWare** | ++-----------------+-----------------------------+ + +.. 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 +can receive 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. + +Compatibility with ONAP +~~~~~~~~~~~~~~~~~~~~~~~ + +Unless otherwise stated, this version of the Event Listener specification is +compatible with the release of ONAP the specification is released under. In +other words, if the specification is released under the Frankfurt ONAP Release, +then the VES Event Collectors provided by DCAE will also be compatible with +the specification. + +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 should start with a capital +letter and use camel-casing to separate words and acronyms. Acronyms +should 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 measurement domain + +- ‘MobileFlow’ for the mobileFlow domain + +- ‘Notification’ for the notification domain + +- ‘Other’ for the other domain + +- ‘Perf3gpp’ for the perf3gpp 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 +~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +eventId Examples: + +**NOTE**: Please note, the following are only *examples*, and other formats +can be used provided they meet the requirement that the ``eventId`` is unique +for all events or unique fault occurrence. + +**Example 1**: assumes a unique key for each domain consisting of domain +followed by an integer domain<n> or domainId<n>, where <n> is a positive integer, +e.g. fault000001, heartbeat000001, measurement000005, +notification3gppPerfFileReady0005 + +**Example 2**: assumes a unique integer key for all events across all domains +<n>: 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 + + * The sourceName on each Fault event is the NF Instance Name + (pnf-name or vnf-name or vm-name) as entered in A&AI uniquely + identifying this instance of the NF. + + * The eventId on Fault events is the same every time a given + fault is raised (including onset and re-raise) + + 1. The startEpochMicrosec value for the Fault event is the + timestamp for when the fault onset occurs. Subsequent + events for the same fault will keep the same startEpochMicrosec + value. + + 2. lastEpochMicrosec indicates the current event time. This value + will be updated for each subsequent event for a given fault. + + 3. The sequence number for each Fault event is set to 1 when the + fault is raised and increments each time the same + fault event is raised, until a clear is sent. + + * After the fault is cleared, a new eventId is used. + + .. image:: Use-Case-1.png + + b. **Alternative Scenario**: Network Function When Fault Event Status is Not + Maintained. + + * The sourceName on each Fault event is the NF Instance Name + (pnf-name or vnf-name or vm-name) as entered in A&AI uniquely + identifying this instance of the NF. + + * 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. + + * 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. + + * lastEpochMicrosec indicates the current event time. + + * 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. + + * Normally, a clear is expected for each fault to be sent from a + network function. However a few fault notification types will never + be re-raised or cleared. In this case, general rules for VES events + shall be followed with a new eventId for each event and sequence + number set to 0. + + .. image:: Use-Case-2.png + +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. + +Configuration Requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~ +This section provides network function configuration requirements for +connectivity to a VES Event Listener via a RESTful API, using a VES JSON event. + +There are several methods available to provide configuration settings to a +network function. This document does not specify the exact manner in which +the configuration elements described below must be required. The +configuration can be provided during instantiation (e.g. preload), provided by +an ONAP controller action, or provided manually. + +* **VES Event Listener IP Addresses or FQDNs resolved via DNS**: Two FQDNs + and/or IP Addresses are required. NF shall select one of the 2 FQDNs/IP + Addresses for sending events and if the NF is unable to get an + acknowledgement within predefined configurable time interval + or unable to establish a TCP connection due inability to resolve DNS query or + if the VES Event Listener is unresponsive, then the NF shall attempt to use + the other FQDN/IP Address to connect to VES Event Listener to deliver the + VES Events. The events shall only be sent to one VES Event Listener at a time. + Please note: If a FQDN is used, the DNS query would return a single IP + address. +* The active VES Event Listener (either the primary or secondary) will handle + all VES events regardless of domain. +* **VES Credentials**: If the NF is using Basic Authentication, then the NF + must support the provisioning of security and authentication parameters + (HTTP username and password) in order to be able to authenticate with the + VES Event Listener. The Username and Password should be set unique per NF + instance and should be configured during the NF deployment through a + Controller or other means. The same password must also be configured into VES + Event Listener instance for successful handshake. +* **VES Heartbeat Interval**: This must be a configurable parameter; current + default is 60 seconds. Note: the heartbeat interval should be greater than + the ack timeout value. +* **Measurement Interval**: For measurement events, the measurement interval + must be configurable and a default of 300 seconds. +* **ACK Timeout Interval**: Configurable, default 5 seconds. + +Event Domain Requirements/Expectations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* **Heartbeat**: Heartbeat events must be sent to VES Event Listener based on + configurable parameter. +* **Faults**: Fault events must be sent to the VES Event Listener as soon as + they occur. +* **Measurements**: All measurement events must be sent at the configured + measurementInterval. If the NF provides both application and GuestOS + metrics, then they must both use the same measurementInterval. +* **Syslogs**: Syslog events should be sent to the VES Event Listener as soon as + created, unless the NF is in debug mode (verbose logging enabled to get + additional data to diagnose a problem), in which case the syslogs must be + stored locally in the NF, for later access and possible secure transfer. +* **Pre-defined Events Formats (Domain: Mobile Flow, TCA, State Chang, etc)**: + Other events (State change, TCA, Mobile Flow, etc) may use other pre-defined + VES domains from the VES Common Event Format specification based on the role + of the NF. +* **otherFields**: The otherFields Record defines fields for events belonging + to the otherFields domain of the Technology Independent domain enumeration. + This record provides a mechanism to convey a complex set of fields + and is purely intended to address miscellaneous needs such as addressing + time-to-market considerations or other proof-of-concept evaluations. Hence, + use of this record type is discouraged and should be minimized. + +Use of Collector FQDNs and/or IP Address +++++++++++++++++++++++++++++++++++++++++ + +* The NF must support two configurable endpoints for the VES Event Listener. + One will be the active, primary event listener endpoint. The other + will be a standby event listener in the event the active endpoint is + unavailable. +* When sending an event (FM, PM, Syslog, HB), the NF shall establish an HTTPS + connection to one VES Event Listener FQDN/IP Address (if not already + established) and send a VES event to it. Note that connections are not + persistent. The events shall only be sent to only one VES Event Listener at a + time. +* The NF must be able to detect that a VES Event Listener endpoint is + unavailable, and trigger the fail-over to the backup endpoint. The mechanism + for detecting unavailability must be configurable by the Service Operator + (e.g. number of attempts, timeout value). +* If the NF is sending events to the VES Event Listener backup endpoint, then + the NF must poll the primary endpoint on a configurable interval to check + if the primary endpoint is now available. The NF may use the Heartbeat + event or another mechanism to test availability. If the primary endpoint + becomes available, then the NF must fallback to the primary endpoint. +* A NF must only send a unique event to a single VES Event Listener endpoint + at a time. In other words, the NF must not send a duplicate event to the + secondary endpoint unless the delivery to the primary endpoint failed. +* If both Primary and Secondary endpoints are not available, then the NF shall + buffer the events locally. Refer to the Buffering of Events section for full + details. +* If a NF is unable to establish a connection with a VES Event Listener or does + not get an acknowledgement within a specified time, then it should log this + failure and, optionally, send a fault event indicating + connection/acknowledgement failure via the alternate FQDN/IP Address. The + intent of this fault is to inform the Service Operator that the VES Event + Listener endpoint has become unreachable by the NF. + + +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 version enums as of this version of +the API spec is provided below: + +- commonEventHeader version 4.1 (note: the enum with support 4.0, + 4.0.1, 4.1 to avoid breaking clients of earlier versions of major + version 4) + +- commonEventHeader vesEventListenerVersion enum: 7.1 (note: the enum + will support 7.0, 7.0.1, 7.1 to avoid breaking clients of earlier + versions of major version 7) + +- faultFieldsVersion:4.0 + +- heartbeatFieldsVersion: 3.0 + +- measurementFieldsVersion: 4.0 + +- mobileFlowFieldsVersion: 4.0 + +- notificationFieldsVersion: 2.0 + +- otherFieldsVersion: 3.0 + +- perf3gppFieldsVersion: 1.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. + +There are 2 methods of HTTP authentication supported: Certificate Authentication +and Basic Authentication. + +Basic authentication is supported in VES Event Listener for backward +compatibility for existing NFs that are already managed by ONAP. New NFs should +support Certificate Authentication. Because the security is better, NFs may +choose to only support Certificate Authentication and not support Basic +Authentication. + +Basic Authentication +~~~~~~~~~~~~~~~~~~~~ + +When using Basic Authentication, the event source must not pass credentials 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. + +Sample Request and Response +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Sample Request +++++++++++++++ + +.. code-block:: http + + POST /eventListener/v7 HTTP/1.1 + Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== + content-type: application/json + content-length: 12345 + { + "event": { + "commonEventHeader": { + "version": "4.1", + "vesEventListenerVersion": "7.1.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 +++++++++++++++++++++++++ + +.. code-block:: http + + HTTPS/1.1 202 Accepted + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1 + + +Mutual TLS Certificate Authentication +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When using Certificate Authentication, the event source must initialize the +HTTPS connection with TLS 1.2 or higher and execute mutual authentication +procedures according to `RFC5246 <https://tools.ietf.org/html/rfc5246#section-7.4.6>`__. +The event source must authenticate the VES Listener certificate and must +provide its own X.509v3 end-entity certificate to the VES Listener for +authentication. The Subject Name in the end-entity certificate must be used +according to `RFC5280 <https://www.ietf.org/rfc/rfc5280.txt>`__. If a +certificate is provided by the NF but it is invalid, the VES Listener is +expected to reject the connection and not fall back to basic authentication. + +Resource Structure +^^^^^^^^^^^^^^^^^^ + +REST resources are defined with respect to a ServerRoot: + +ServerRoot = https://{Domain|IP}:{Port}/{optionalRoutingPath} + +The resource structure is provided below:: + + {ServerRoot} + | + |--- /eventListener/v{apiVersion} + | + |--- /eventBatch + +**Figure 1**: REST Resource Structure + +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. + +:download:`JSON <CommonEventFormat_30.1.1_ONAP.json>` + + +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 should use camel casing to separate + words and acronyms; only the first letter of each acronym shall be + capitalized. + +Common Event Datatypes +~~~~~~~~~~~~~~~~~~~~~~~~ + +Datatype: arrayOfJsonObject +++++++++++++++++++++++++++++ + +The arrayOfJsonObject datatype provides an array of json objects, each +of which is describ ed 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 | ++==============+==============+===========+===================================+ +| commonEvent\ | commonEvent\ | Yes | Fields common to all events | +| Header | Header | | | ++--------------+--------------+-----------+-----------------------------------+ +| faultFields | faultFields | No | Fields specific to fault events | ++--------------+--------------+-----------+-----------------------------------+ +| heartbeat\ | heartbeat\ | No | Fields specific to heartbeat | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| measurement\ | measurement\ | No | Fields specific to measurement | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| mobileFlow\ | mobileFlow\ | No | Fields specific to mobility flow | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| notification\| notification\| No | Fields specific to notification | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| otherFields | otherFields | No | Fields specific to other types of | +| | | | events | ++--------------+--------------+-----------+-----------------------------------+ +| perf3gpp\ | perf3gpp\ | No | Fields specific to perf3gpp | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| pnf\ | pnf\ | No | Fields specific to pnfRegistration| +| Registration\| Registration\| | events | +| Fields | Fields | | | ++--------------+--------------+-----------+-----------------------------------+ +| sipSignaling\| sipSignaling\| No | Fields specific to sipSignaling | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| stateChange\ | stateChange\ | No | Fields specific to state change | +| Fields | Fields | | events | ++--------------+--------------+-----------+-----------------------------------+ +| syslogFields | syslogFields | No | Fields specific to syslog events | ++--------------+--------------+-----------+-----------------------------------+ +| threshold\ | threshold\ | No | Fields specific to threshold | +| Crossing\ | Crossing\ | | crossing alert events | +| AlertFields | AlertFields | | | ++--------------+--------------+-----------+-----------------------------------+ +| voiceQuality\| voiceQuality\| No | Fields specific to voiceQuality | +| Fields | Fields | | 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 should use camel casing to separate words and +acronyms; only the first letter of each acronym should 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 | ++==============+==============+===========+==================================+ +| object\ | JsonObject\ | Yes | Contains one or more instances of| +| Instances | Instance [ ] | | the json object | ++--------------+--------------+-----------+----------------------------------+ +| objectName | string | Yes | Name of the json object | ++--------------+--------------+-----------+----------------------------------+ +| objectSchema | string | No | json schema for the object | ++--------------+--------------+-----------+----------------------------------+ +| objectSchema\| string | No | URL to the json schema for the | +| Url | | | object | ++--------------+--------------+-----------+----------------------------------+ +| nfSubscribed\| string | No | Name of the object associated | +| ObjectName | | | with the nfSubscriptionId | ++--------------+--------------+-----------+----------------------------------+ +| nf\ | string | No | Identifies an openConfig | +| Subscription\| | | telemetry subscription on a | +| Id | | | 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 | ++----------------+------------+----------+-----------------------------------+ +| objectInstance\| number | No | the unix time, aka epoch time, | +| EpochMicrosec | | | 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 Data Types +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +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’, ‘perf3gpp’, | +| | | | ‘pnfRegistration’, ‘sipSignaling’, | +| | | | ‘stateChange’, ‘syslog’, | +| | | | ‘thresholdCrossingAlert’, ‘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 | +| | | | startEpochMicrosec but with a different | +| | | | sequence number). Note: see section 1.3 | +| | | | for eventId use case examples. | ++-----------+----------+-----------+-----------------------------------------+ +| eventName | string | Yes | | ++-----------+----------+-----------+-----------------------------------------+ +| eventType | string | No | | ++-----------+----------+-----------+-----------------------------------------+ +| internal\ | internal\| No | Fields (not supplied by event sources) | +| Header | Header | | that the VES Event Listener service can | +| Fields | Fields | | 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. | ++-----------+----------+-----------+-----------------------------------------+ +| lastEpoch\| number | Yes | the latest unix time aka epoch time | +| Microsec | | | associated with the event from any | +| | | | component--as microseconds elapsed since| +| | | | 1 Jan 1970 not including leap seconds | ++-----------+----------+-----------+-----------------------------------------+ +| nfcNaming\| string | No | Network function component type: 3 | +| Code | | | characters (aligned with vfc naming | +| | | | standards) | ++-----------+----------+-----------+-----------------------------------------+ +| nfNaming\ | string | No | Network function type: 4 characters | +| Code | | | (aligned with vnf and pnf naming | +| | | | standards) | ++-----------+----------+-----------+-----------------------------------------+ +| nfVendor\ | string | No | | +| Name | | | | ++-----------+----------+-----------+-----------------------------------------+ +| priority | string | Yes | | ++-----------+----------+-----------+-----------------------------------------+ +| reporting\| string | No | UUID identifying the entity reporting | +| EntityId | | | 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 reportingEntityId is an id for the | +| | | | reportingEntityName. See | +| | | | ‘reportingEntityName’ for more | +| | | | information. | ++-----------+----------+-----------+-----------------------------------------+ +| reporting\| string | Yes | Name of the entity reporting the event | +| EntityName| | | 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 xNF (vnf or pnf), | +| | | | xNFC or VM, then the event must be | +| | | | reporting data for that particular xNF, | +| | | | xNFC or VM. If the sourceName is a xNF, | +| | | | comprised of multiple xNFCs, the data | +| | | | must be reported/aggregated at the xNF | +| | | | level. Data for individual xNFC must not| +| | | | be included in the xNF sourceName event.| ++-----------+----------+-----------+-----------------------------------------+ +| start\ | number | Yes | the earliest unix time aka epoch time | +| Epoch\ | | | associated with the event from any | +| Microsec | | | component--as microseconds elapsed since| +| | | | 1 Jan 1970 not including leap seconds. | +| | | | For measurements and heartbeats, where | +| | | | events are collected over predefined | +| | | | intervals, startEpochMicrosec shall be | +| | | | rounded to the nearest interval boundary| +| | | | (e.g., the epoch equivalent of 3:00PM, | +| | | | 3:10PM, 3:20PM, etc…). For fault events,| +| | | | startEpochMicrosec 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) | ++-----------+----------+-----------+-----------------------------------------+ +| timeZone\ | string | No | Offset to GMT to indicate local time | +| Offset | | | zone for device formatted as | +| | | | ‘UTC+/-hh:mm’; see | +| | | | time_zone_abbreviations_ 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. | ++-----------+----------+-----------+-----------------------------------------+ +| vesEvent\ | string | Yes | Version of the ves event listener api | +| Listener\ | | | spec that this event is compliant with | +| Version | | | (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 alarm information. | +| 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 | +| | | | alarmAdditonalInformation as | +| | | | ‘alarmId’:’alarmIdValue’. | +| | | | | +| | | | 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/problem, such as a trap | +| | | | name. Should not have white space | +| | | | (e.g., tpLgCgiNotInConfig, | +| | | | 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’, | +| | | | ‘virtualNetworkFunction’. This could| +| | | | be managed object class. | ++-----------------+---------+-----------+-------------------------------------+ +| faultFields\ | string | Yes | Version of the faultFields block as | +| Version | | | "#.#" 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 | ++===============+=========+===========+=======================================+ +| additional\ | hashMap | No | Additional expansion fields if needed | +| Fields | | | | ++---------------+---------+-----------+---------------------------------------+ +| heartbeat\ | string | Yes | Version of the heartbeatFields block | +| FieldsVersion | | | as "#.#" where # is a digit; see | +| | | | section 1 for the correct digits to | +| | | | use. | ++---------------+---------+-----------+---------------------------------------+ +| heartbeat\ | Integer | Yes | Current heartbeatInterval in seconds | +| Interval | | | | ++---------------+---------+-----------+---------------------------------------+ + +‘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 | ++============+========+===========+===========================================+ +| cpu\ | number | No | The amount of time the CPU cannot run due | +| Capacity\ | | | to contention, in milliseconds over the | +| Contention | | | measurementInterval | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | number | No | The total CPU time that the NF/NFC/VM | +| Demand\ | | | could use if there was no contention, in | +| Avg | | | milliseconds over the measurementInterval | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | number | No | CPU demand in MHz | +| Demand\ | | | | +| Mhz | | | | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | number | No | CPU demand as a percentage of the | +| Demand\ | | | provisioned capacity | +| Pct | | | | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | string | Yes | CPU Identifier | +| Identifier | | | | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | number | No | Percentage of CPU time spent in the idle | +| Idle | | | task | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | number | No | Percentage of time the VM is unable to run| +| Latency\ | | | because it is contending for access to the| +| Avg | | | physical CPUs | ++------------+--------+-----------+-------------------------------------------+ +| cpu\ | number | No | The overhead demand above available | +| Overhead\ | | | allocations and reservations, in | +| Avg | | | milliseconds over the measurementInterval | ++------------+--------+-----------+-------------------------------------------+ +| cpuSwap\ | number | No | Swap wait time, in milliseconds over the | +| WaitTime | | | measurementInterval | ++------------+--------+-----------+-------------------------------------------+ +| cpuUsage\ | number | No | Percentage of time spent servicing | +| Interrupt | | | interrupts | ++------------+--------+-----------+-------------------------------------------+ +| cpuUsage\ | number | No | Percentage of time spent running user | +| Nice | | | space processes that have been niced | ++------------+--------+-----------+-------------------------------------------+ +| cpuUsage\ | number | No | Percentage of time spent handling soft irq| +| SoftIrq | | | interrupts | ++------------+--------+-----------+-------------------------------------------+ +| cpuUsage\ | number | No | Percentage of time spent in involuntary | +| Steal | | | wait which is neither user, system or idle| +| | | | time and is effectively time that went | +| | | | missing | ++------------+--------+-----------+-------------------------------------------+ +| cpuUsage\ | number | No | Percentage of time spent on system tasks | +| System | | | running the kernel | ++------------+--------+-----------+-------------------------------------------+ +| cpuUsage\ | number | No | Percentage of time spent running un-niced | +| User | | | user space processes | ++------------+--------+-----------+-------------------------------------------+ +| cpuWait | number | No | Percentage of CPU time spent waiting for | +| | | | I/O operations to complete | ++------------+--------+-----------+-------------------------------------------+ +| percent\ | number | Yes | Aggregate cpu usage of the virtual machine| +| Usage | | | 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 | ++=============+=======+==========+============================================+ +| diskBus\ | number| No | Number of bus resets over the | +| Resets | | | measurementInterval | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | number| No | Number of disk commands aborted over the | +| Commands\ | | | measurementInterval | +| Aborted | | | | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | number| No | Average number of commands per second over | +| CommandsAvg | | | the measurementInterval | ++-------------+-------+----------+--------------------------------------------+ +| diskFlush\ | number| No | Total flush requests of the disk cache over| +| Requests | | | the measurementInterval | ++-------------+-------+----------+--------------------------------------------+ +| diskFlush\ | number| No | Milliseconds spent on disk cache flushing | +| Time | | | over the measurementInterval | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | string| Yes | Disk Identifier | +| Identifier | | | | ++-------------+-------+----------+--------------------------------------------+ +| diskIo\ | number| No | Milliseconds spent doing input/output | +| TimeAvg | | | operations over 1 sec; treat this metric as| +| | | | a device load percentage where 1000ms | +| | | | matches 100% load; provide the average over| +| | | | the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskIoTime\ | number| No | Milliseconds spent doing input/output | +| Last | | | 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| ++-------------+-------+----------+--------------------------------------------+ +| diskIo\ | number| No | Milliseconds spent doing input/output | +| TimeMax | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskIo\ | number| No | Milliseconds spent doing input/output | +| TimeMin | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical read operations that were| +| ReadAvg | | | 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| ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical read operations that were| +| ReadLast | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical read operations that were| +| ReadMax | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical read operations that were| +| ReadMin | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical write operations that | +| WriteAvg | | | 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| ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical write operations that | +| WriteLast | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical write operations that | +| WriteMax | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskMerged\ | number| No | Number of logical write operations that | +| WriteMin | | | 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 | ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second read from a | +| Read Avg | | | disk or partition; provide the average | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second read from a | +| Read | | | disk or partition; provide the last | +| | | | measurement within the measurement interval| +| Last | | | | ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second read from a | +| Read Max | | | disk or partition; provide the maximum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second read from a | +| Read Min | | | disk or partition; provide the minimum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second written to a | +| Write Avg | | | disk or partition; provide the average | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second written to a | +| Write Last | | | disk or partition; provide the last | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second written to a | +| WriteMax | | | disk or partition; provide the maximum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOctets\ | number| No | Number of octets per second written to a | +| WriteMin | | | disk or partition; provide the minimum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of read operations per second issued| +| ReadAvg | | | to the disk; provide the average | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of read operations per second issued| +| ReadLast | | | to the disk; provide the last measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of read operations per second issued| +| ReadMax | | | to the disk; provide the maximum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of read operations per second issued| +| ReadMin | | | to the disk; provide the minimum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of write operations per second | +| WriteAvg | | | issued to the disk; provide the average | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of write operations per second | +| WriteLast | | | issued to the disk; provide the last | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of write operations per second | +| Write Max | | | issued to the disk; provide the maximum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskOps\ | number| No | Number of write operations per second | +| WriteMin | | | issued to the disk; provide the minimum | +| | | | measurement within the measurement interval| ++-------------+-------+----------+--------------------------------------------+ +| diskPending\| number| No | Queue size of pending I/O operations per | +| Operations\ | | | second; provide the average measurement | +| Avg | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskPending\| number| No | Queue size of pending I/O operations per | +| Operations\ | | | second; provide the last measurement within| +| Last | | | the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskPending\| number| No | Queue size of pending I/O operations per | +| Operations\ | | | second; provide the maximum measurement | +| Max | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskPending\| number| No | Queue size of pending I/O operations per | +| Operations\ | | | second; provide the minimum measurement | +| Min | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskRead\ | number| No | Average number of read commands issued per | +| CommandsAvg | | | second to the disk over the | +| | | | measurementInterval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime | number| No | Nanoseconds spent on disk cache | +| | | | reads/writes within the measurement | +| | | | interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a read operation took to | +| ReadAvg | | | complete; provide the average measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a read operation took to | +| Read Last | | | complete; provide the last measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a read operation took to | +| Read Max | | | complete; provide the maximum measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a read operation took to | +| Read Min | | | complete; provide the minimum measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a write operation took to | +| Write Avg | | | complete; provide the average measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a write operation took to | +| Write Last | | | complete; provide the last measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a write operation took to | +| Write Max | | | complete; provide the maximum measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTime\ | number| No | Milliseconds a write operation took to | +| Write Min | | | complete; provide the minimum measurement | +| | | | within the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTotal\ | number| No | Average read time from the perspective of a| +| ReadLatency\| | | Guest OS: sum of the Kernel Read Latency | +| Avg | | | and Physical Device Read Latency in | +| | | | milliseconds over the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| diskTotal\ | number| No | Average write time from the perspective of | +| Write\ | | | a Guest OS: sum of the Kernel Write Latency| +| LatencyAvg | | | and Physical Device Write Latency in | +| | | | milliseconds over the measurement interval | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | number| No | Measure in ms over 1 sec of both I/O | +| WeightedIo\ | | | completion time and the backlog that may be| +| TimeAvg | | | accumulating. Value is the average within | +| | | | the collection interval. | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | number| No | Measure in ms over 1 sec of both I/O | +| WeightedIo\ | | | completion time and the backlog that may be| +| TimeLast | | | accumulating. Value is the last within the | +| | | | collection interval. | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | number| No | Measure in ms over 1 sec of both I/O | +| WeightedIo\ | | | completion time and the backlog that may be| +| TimeMax | | | accumulating. Value is the maximum within | +| | | | the collection interval. | ++-------------+-------+----------+--------------------------------------------+ +| disk\ | number| No | Measure in ms over 1 sec of both I/O | +| WeightedIo\ | | | completion time and the backlog that may be| +| TimeMin | | | accumulating. Value is the minimum within | +| | | | the collection interval. | ++-------------+-------+----------+--------------------------------------------+ +| diskWrite\ | number| No | Average number of write commands issued per| +| CommandsAvg | | | second to the disk over the | +| | | | measurementInterval | ++-------------+-------+----------+--------------------------------------------+ + +Datatype: filesystemUsage +*************************** + +The filesystemUsage datatype consists of the following fields: + ++-------------+--------+-----------+------------------------------------------+ +| Field | Type | Required? | Description | ++=============+========+===========+==========================================+ +| filesystem\ | string | Yes | File system name | +| Name | | | | ++-------------+--------+-----------+------------------------------------------+ +| block\ | number | Yes | Configured block storage capacity in GB | +| Configured | | | | ++-------------+--------+-----------+------------------------------------------+ +| blockIops | number | Yes | Block storage input-output operations per| +| | | | second | ++-------------+--------+-----------+------------------------------------------+ +| blockUsed | number | Yes | Used block storage capacity in GB | ++-------------+--------+-----------+------------------------------------------+ +| ephemeral\ | number | Yes | Configured ephemeral storage capacity in | +| Configured | | | GB | ++-------------+--------+-----------+------------------------------------------+ +| ephemeral\ | number | Yes | Ephemeral storage input-output operations| +| Iops | | | per second | ++-------------+--------+-----------+------------------------------------------+ +| ephemeral\ | number | Yes | Used ephemeral storage capacity in GB | +| Used | | | | ++-------------+--------+-----------+------------------------------------------+ + +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 | ++=============+=====================+===========+=============================+ +| exitAir\ | number | No | System fan exit air flow | +| Temperature | | | temperature in Celsius | ++-------------+---------------------+-----------+-----------------------------+ +| frontPanel\ | number | No | Front panel temp in Celsius | +| Temperature | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ioModule\ | number | No | Io module temp in Celsius | +| Temperature | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ipmi\ | ipmiBaseboard | No | Array of ipmiBaseboard | +| Baseboard\ | Temperature [ ] | | Temperature objects | +| Temperature\| | | | +| Array | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ipmi\ | ipmiBaseboard | No | Array of ipmiBaseboard | +| Baseboard\ | VoltageRegulator [ ]| | VoltageRegulator objects | +| Voltage\ | | | | +| Regulator | | | | +| Array | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ipmiBattery\| ipmiBattery [ ] | No | Array of ipmiBattery objects| +| Array | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ipmiFanArray| ipmiFan [ ] | No | Array of ipmiFan objects | ++-------------+---------------------+-----------+-----------------------------+ +| ipmiGlobal\ | ipmiGlobalAggregate\| No | ipmi global aggregate | +| Aggregate\ | TemperatureMargin []| | temperature margin | +| Temperature\| | | | +| MarginArray | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ipmiHsbp\ | ipmiHsbp [ ] | No | Array of ipmiHsbp objects | +| Array | | | | ++-------------+---------------------+-----------+-----------------------------+ +| ipmiNicArray| ipmiNic [ ] | No | Array of ipmiNic objects | ++-------------+---------------------+-----------+-----------------------------+ +| ipmiPower\ | ipmiPowerSupply [ ] | No | Array of ipmiPowerSupply | +| SupplyArray | | | objects | ++-------------+---------------------+-----------+-----------------------------+ +| ipmi\ | ipmiProcessor [ ] | No | Array of ipmiProcessor | +| Processor\ | | | objects | +| Array | | | | ++-------------+---------------------+-----------+-----------------------------+ +| system\ | number | No | Airflow in cubic feet per | +| Airflow | | | minute (cfm) | ++-------------+---------------------+-----------+-----------------------------+ + +Datatype: ipmiBaseboardTemperature +************************************ + +The ipmiBaseboardTemperature datatype consists of the following fields +which describe ipmi baseboard temperature metrics: + ++-------------+--------+-----------+------------------------------------------+ +| Field | Type | Required? | Description | ++=============+========+===========+==========================================+ +| baseboard\ | number | No | Baseboard temperature in celsius | +| Temperature | | | | ++-------------+--------+-----------+------------------------------------------+ +| baseboard\ | string | Yes | Identifier for the location where the | +| Temperature\| | | temperature is taken | +| Identifier | | | | ++-------------+--------+-----------+------------------------------------------+ + +Datatype: ipmiBaseboardVoltageRegulator +***************************************** + +The ipmiBaseboardVoltageRegulator datatype consists of the following +fields which describe ipmi baseboard voltage regulator metrics: + ++--------------------+-------+----------+-------------------------------------+ +| Field | Type | Required?| Description | ++====================+=======+==========+=====================================+ +| baseboardVoltage\ | string| Yes | Identifier for the baseboard voltage| +| RegulatorIdentifier| | | regulator | ++--------------------+-------+----------+-------------------------------------+ +| voltageRegulator\ | number| No | Voltage regulator temperature in | +| Temperature | | | 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 | ++=============+=======+==========+============================================+ +| global\ | number| No | Temperature margin in Celsius relative to a| +| Aggregate\ | | | throttling thermal trip point | +| Temperature\| | | | +| Margin | | | | ++-------------+-------+----------+--------------------------------------------+ +| global\ | string| Yes | Identifier for the ipmi global aggregate | +| Aggregate\ | | | temperature margin metrics | +| Temperature\| | | | +| Margin\ | | | | +| Identifier | | | | ++-------------+-------+----------+--------------------------------------------+ + +Datatype: ipmiHsbp +******************* + +The ipmiHsbp datatype provides ipmi hot swap backplane power metrics; it +consists of the following fields: + ++------------+-------+----------+---------------------------------------------+ +| Field | Type | Required?| Description | ++============+=======+==========+=============================================+ +| hsbp\ | string| Yes | Identifier for the hot swap backplane power | +| Identifier | | | unit | ++------------+-------+----------+---------------------------------------------+ +| hsbp\ | number| No | Hot swap backplane power temperature in | +| Temperature| | | celsius | ++------------+-------+----------+---------------------------------------------+ + +Datatype: ipmiNic +****************** + +The ipmiNic datatype provides network interface control care metrics; it +consists of the following fields: + ++------------+-------+----------+---------------------------------------------+ +| Field | Type | Required?| Description | ++============+=======+==========+=============================================+ +| nic\ | string| Yes | Identifier for the network interface control| +| Identifier | | | card | ++------------+-------+----------+---------------------------------------------+ +| nic\ | number| No | nic temperature in Celsius | +| Temperature| | | | ++------------+-------+----------+---------------------------------------------+ + +Datatype: ipmiPowerSupply +************************** + +The ipmiPowerSupply datatype provides ipmi power supply metrics; it +consists of the following fields: + ++-----------+-------+----------+----------------------------------------------+ +|Field | Type | Required?| Description | ++===========+=======+==========+==============================================+ +|power\ | number| No | Current output voltage as a percentage of the| +|Supply\ | | | design specified level | +|Current\ | | | | +|Output\ | | | | +|Percent | | | | ++-----------+-------+----------+----------------------------------------------+ +|power\ | string| Yes | Identifier for the power supply | +|Supply\ | | | | +|Identifier | | | | ++-----------+-------+----------+----------------------------------------------+ +|power\ | number| No | Input power in watts | +|Supply\ | | | | +|Input\ | | | | +|Power | | | | ++-----------+-------+----------+----------------------------------------------+ +|power\ | number| No | Power supply temperature in Celsius | +|Supply\ | | | | +|Temperature| | | | ++-----------+-------+----------+----------------------------------------------+ + +Datatype: ipmiProcessor +************************ + +The ipmiProcessor datatype provides ipmi processor metrics; it consists +of the following fields: + ++------------+------------------+-----------+---------------------------------+ +| Field | Type | Required? | Description | ++============+==================+===========+=================================+ +| processor\ | processorDimm | No | Array of processorDimmAggregate | +| Dimm\ | AggregateThermal | | ThermalMargin objects | +| Aggregate\ | Margin [ ] | | | +| Thermal\ | | | | +| MarginArray| | | | ++------------+------------------+-----------+---------------------------------+ +| processor\ | number | No | Front panel temperature in | +| DtsThermal\| | | celsius | +| Margin | | | | ++------------+------------------+-----------+---------------------------------+ +| processor\ | string | Yes | Identifier for the power supply | +| Identifier | | | | ++------------+------------------+-----------+---------------------------------+ +| processor\ | number | No | Io module temperatue in celsius | +| Thermal\ | | | | +| Control\ | | | | +| Percent | | | | ++------------+------------------+-----------+---------------------------------+ + +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 | ++===========+=======+==========+==============================================+ +| counts\ | number| Yes | Number of counts falling within a defined | +| InThe\ | | | latency bucket | +| Bucket | | | | ++-----------+-------+----------+----------------------------------------------+ +| highEnd\ | number| No | High end of bucket range (typically in ms) | +| OfLatency\| | | | +| Bucket | | | | ++-----------+-------+----------+----------------------------------------------+ +| lowEndOf\ | number| No | Low end of bucket range (typically in ms) | +| Latency\ | | | | +| Bucket | | | | ++-----------+-------+----------+----------------------------------------------+ + +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 | ++=============+=======+==========+============================================+ +| corrected\ | number| No | Total hardware errors that were corrected | +| Memory\ | | | by the hardware (e.g. data corruption | +| Errors | | | corrected via ECC) over the | +| | | | measurementInterval. These errors do not | +| | | | require immediate software actions, but are| +| | | | still reported for accounting and | +| | | | predictive failure analysis | ++-------------+-------+----------+--------------------------------------------+ +| corrected\ | number| No | Total hardware errors that were corrected | +| Memory\ | | | by the hardware over the last one hour | +| Errors | | | | +| In1Hr | | | | ++-------------+-------+----------+--------------------------------------------+ +| uncorrected\| number| No | Total uncorrected hardware errors that were| +| Memory\ | | | detected by the hardware (e.g., causing | +| Errors | | | data corruption) over the | +| | | | measurementInterval. These errors require a| +| | | | software response. | ++-------------+-------+----------+--------------------------------------------+ +| uncorrected\| number| No | Total uncorrected hardware errors that were| +| Memory\ | | | detected by the hardware over the last one | +| Errors | | | hour | +| In1Hr | | | | ++-------------+-------+----------+--------------------------------------------+ +| vm\ | string| Yes | Virtual machine identifier associated with | +| Identifier | | | the machine check exception | ++-------------+-------+----------+--------------------------------------------+ + +Datatype: measurementFields +**************************** + +The measurementFields datatype consists of the following fields: + ++-------------+--------------+----------+-------------------------------------+ +| Field | Type | Required?| Description | ++=============+==============+==========+=====================================+ +| additional\ | hashMap | No | Additional measurement fields if | +| Fields | | | needed | ++-------------+--------------+----------+-------------------------------------+ +| additional\ | arrayOfNamed\| No | Array of named hashMap if needed | +| Measurements| HashMap | | | ++-------------+--------------+----------+-------------------------------------+ +| additional\ | arrayOf\ | No | Array of JSON objects described by | +| Objects | JsonObject | | name, schema and other | +| | | | meta-information, if needed | ++-------------+--------------+----------+-------------------------------------+ +| codec\ | codecs\ | No | Array of codecs in use | +| Usage\ | InUse [] | | | +| Array | | | | ++-------------+--------------+----------+-------------------------------------+ +| concurrent\ | integer | No | Peak concurrent sessions for the VM | +| Sessions | | | or xNF (depending on the context) | +| | | | over the measurementInterval | ++-------------+--------------+----------+-------------------------------------+ +| configured\ | integer | No | Depending on the context over the | +| Entities | | | measurementInterval: peak total | +| | | | number of users, subscribers, | +| | | | devices, adjacencies, etc., for the | +| | | | VM, or peak total number of | +| | | | subscribers, devices, etc., for the | +| | | | xNF | ++-------------+--------------+----------+-------------------------------------+ +| cpuUsage\ | cpuUsage [] | No | Usage of an array of CPUs | +| Array | | | | ++-------------+--------------+----------+-------------------------------------+ +| diskUsage\ | diskUsage [] | No | Usage of an array of disks | +| Array | | | | ++-------------+--------------+----------+-------------------------------------+ +| feature\ | hashMap | No | The hashMap key should identify the | +| UsageArray | | | feature, while the value defines the| +| | | | number of times the identified | +| | | | feature was used | ++-------------+--------------+----------+-------------------------------------+ +| filesystem\ | filesystem\ | No | Filesystem usage of the VM on which | +| UsageArray | Usage [ ] | | the xNFC reporting the event is | +| | | | running | ++-------------+--------------+----------+-------------------------------------+ +| hugePages\ | hugePages [ ]| No | Array of metrics on hugePages | +| Array | | | | ++-------------+--------------+----------+-------------------------------------+ +| ipmi | ipmi | No | Intelligent platform management | +| | | | interface metrics | ++-------------+--------------+----------+-------------------------------------+ +| latency\ | latency\ | No | Array of integers representing | +| Distribution| Bucket\ | | counts of requests whose latency in | +| | Measure [ ] | | 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 | ++-------------+--------------+----------+-------------------------------------+ +| machine\ | machine\ | No | Array of machine check exceptions | +| Check\ | Check\ | | | +| Exception\ | Exception [ ]| | | +| Array | | | | ++-------------+--------------+----------+-------------------------------------+ +| mean\ | number | No | Mean seconds required to respond to | +| Request\ | | | each request for the VM on which the| +| Latency | | | xNFC reporting the event is running | ++-------------+--------------+----------+-------------------------------------+ +| measurement\| string | Yes | Version of the measurementFields | +| Fields\ | | | block as "#.#" where # is a digit; | +| Version | | | see section 1 for the correct digits| +| | | | to use. | ++-------------+--------------+----------+-------------------------------------+ +| measurement\| number | Yes | Interval over which measurements are| +| Interval | | | being reported in seconds | ++-------------+--------------+----------+-------------------------------------+ +| memoryUsage\| memory\ | No | Memory usage of an array of VMs | +| Array | Usage [] | | | ++-------------+--------------+----------+-------------------------------------+ +| nfcScaling\ | integer | No | Represents busy-ness of the network | +| Metric | | | function from 0 to 100 as reported | +| | | | by the nfc | ++-------------+--------------+----------+-------------------------------------+ +| nic\ | nic\ | No | Performance metrics of an array of | +| Performance\| Performance | | network interface cards | +| Array | [ ] | | | ++-------------+--------------+----------+-------------------------------------+ +| numberOf\ | integer | No | Number of media ports in use | +| MediaPorts\ | | | | +| InUse | | | | ++-------------+--------------+----------+-------------------------------------+ +| process\ | process\ | No | Array of metrics on system processes| +| StatsArray | Stats [ ] | | | ++-------------+--------------+----------+-------------------------------------+ +| request\ | number | No | Peak rate of service requests per | +| Rate | | | second to the xNF over the | +| | | | measurementInterval | ++-------------+--------------+----------+-------------------------------------+ + +Datatype: memoryUsage +********************** + +The memoryUsage datatype defines the memory usage of a virtual machine +and consists of the following fields: + ++-----------+-------+----------+----------------------------------------------+ +| Field | Type | Required?| Description | ++===========+=======+==========+==============================================+ +| memory\ | number| No | Kibibytes of temporary storage for raw disk | +| Buffered | | | blocks | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Kibibytes of memory used for cache | +| Cached | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Kibibytes of memory configured in the virtual| +| Configured| | | machine on which the xNFC reporting the event| +| | | | is running | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Host demand in kibibytes | +| Demand | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| Yes | Kibibytes of physical RAM left unused by the | +| Free | | | system | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Percentage of time the VM is waiting to | +| Latency\ | | | access swapped or compressed memory | +| Avg | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Shared memory in kilobytes | +| Shared\ | | | | +| Avg | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | The part of the slab that can be reclaimed | +| SlabRecl | | | such as caches measured in kibibytes | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | The part of the slab that cannot be reclaimed| +| Slab\ | | | even when lacking memory measure in kibibytes| +| Unrecl | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Amount of memory swapped-in from host cache | +| SwapIn\ | | | in kibibytes | +| Avg | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Rate at which memory is swapped from disk | +| SwapIn\ | | | into active memory during the interval in | +| RateAvg | | | kilobytes per second | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Amount of memory swapped-out to host cache in| +| SwapOut\ | | | kibibytes | +| Avg | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Rate at which memory is being swapped from | +| SwapOut\ | | | active memory to disk during the current | +| RateAvg | | | interval in kilobytes per second | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| No | Space used for caching swapped pages in the | +| Swap\ | | | host cache in kibibytes | +| UsedAvg | | | | ++-----------+-------+----------+----------------------------------------------+ +| memory\ | number| Yes | Total memory minus the sum of free, buffered,| +| Used | | | cached and slab memory measured in kibibytes | ++-----------+-------+----------+----------------------------------------------+ +| percent\ | number| No | Percentage of memory usage; value = | +| Memory\ | | | (memoryUsed / (memoryUsed + memoryFree) x 100| +| Usage | | | if denomintor is nonzero, or 0, if otherwise.| ++-----------+-------+----------+----------------------------------------------+ +| vm\ | string| Yes | Virtual Machine identifier associated with | +| Identifier| | | 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 | ++================+=======+==========+=========================================+ +| administrative\| string| No | Administrative state: enum: ‘inService’,| +| State | | | ‘outOfService’ | ++----------------+-------+----------+-----------------------------------------+ +| nicIdentifier | string| Yes | Network interface card identifier | ++----------------+-------+----------+-----------------------------------------+ +| operational\ | string| No | Operational state: enum: ‘inService’, | +| State | | | ‘outOfService’ | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Cumulative count of broadcast packets | +| Broadcast\ | | | received as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Count of broadcast packets received | +| Broadcast\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Cumulative count of discarded packets | +| Discarded\ | | | received as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Count of discarded packets received | +| Discarded\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Cumulative count of error packets | +| ErrorPackets\ | | | received as read at the end of the | +| Accumulated | | | measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| receivedError\ | number| No | Count of error packets received within | +| PacketsDelta | | | the measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Cumulative count of multicast packets | +| Multicast\ | | | received as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Count of multicast packets received | +| Multicast\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Cumulative count of octets received as | +| Octets\ | | | read at the end of the measurement | +| Accumulated | | | interval | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Count of octets received within the | +| OctetsDelta | | | measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Percentage of discarded packets | +| Percent\ | | | received; value = | +| Discard | | | (receivedDiscardedPacketsDelta / | +| | | | receivedTotalPacketsDelta) x 100, if | +| | | | denominator is nonzero, or 0, if | +| | | | otherwise. | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Percentage of error packets received; | +| PercentError | | | value = (receivedErrorPacketsDelta / | +| | | | receivedTotalPacketsDelta) x 100, if | +| | | | denominator is nonzero, or 0, if | +| | | | otherwise. | ++----------------+-------+----------+-----------------------------------------+ +| receivedTotal\ | number| No | Cumulative count of all packets received| +| Packets\ | | | as read at the end of the measurement | +| Accumulated | | | interval | ++----------------+-------+----------+-----------------------------------------+ +| receivedTotal\ | number| No | Count of all packets received within the| +| PacketsDelta | | | measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Cumulative count of unicast packets | +| Unicast\ | | | received as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Count of unicast packets received within| +| Unicast\ | | | the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| received\ | number| No | Percentage of utilization received; | +| Utilization | | | value = (receivedOctetsDelta / (speed x | +| | | | (lastEpochMicrosec - startEpochMicrosec)| +| | | | )) x 100, if denominator is nonzero, or | +| | | | 0, if otherwise. | ++----------------+-------+----------+-----------------------------------------+ +| speed | number| No | Speed configured in mbps. | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of broadcast packets | +| Broadcast\ | | | transmitted as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of broadcast packets transmitted | +| Broadcast\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of discarded packets | +| Discarded\ | | | transmitted as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of discarded packets transmitted | +| Discarded\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of error packets | +| ErrorPackets\ | | | transmitted as read at the end of the | +| Accumulated | | | measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of error packets transmitted | +| ErrorPackets\ | | | within the measurement interval | +| Delta | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of multicast packets | +| Multicast\ | | | transmitted as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of multicast packets transmitted | +| Multicast\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of octets transmitted | +| Octets\ | | | as read at the end of the measurement | +| Accumulated | | | interval | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of octets transmitted within the | +| OctetsDelta | | | measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Percentage of discarded packets | +| PercentDiscard | | | transmitted; value = | +| | | | (transmittedDiscardedPacketsDelta / | +| | | | transmittedTotalPacketsDelta) x 100, if | +| | | | denominator is nonzero, or 0, if | +| | | | otherwise. | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Percentage of error packets received; | +| PercentError | | | value = (transmittedErrorPacketsDelta / | +| | | | transmittedTotalPacketsDelta) x 100, if | +| | | | denominator is nonzero, or 0, if | +| | | | otherwise. | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of all packets | +| TotalPackets\ | | | transmitted as read at the end of the | +| Accumulated | | | measurement interval | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of all packets transmitted within | +| TotalPackets\ | | | the measurement interval | +| Delta | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Cumulative count of unicast packets | +| Unicast\ | | | transmitted as read at the end of the | +| Packets\ | | | measurement interval | +| Accumulated | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Count of unicast packets transmitted | +| Unicast\ | | | within the measurement interval | +| PacketsDelta | | | | ++----------------+-------+----------+-----------------------------------------+ +| transmitted\ | number| No | Percentage of utilization transmitted; | +| Utilization | | | value = (transmittedOctetsDelta / (speed| +| | | | x (lastEpochMicrosec - | +| | | | startEpochMicrosec))) x 100, if | +| | | | denominator is nonzero, or 0, if | +| | | | otherwise. | ++----------------+-------+----------+-----------------------------------------+ +| values\ | string| Yes | Enumeration: ‘true’ or ‘false’. If | +| AreSuspect | | | ‘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 | ++=================+=======+==========+========================================+ +| processor\ | string| Yes | identifier for the aggregate thermal | +| DimmAggregate\ | | | margin metrics from the processor dual | +| Thermal | | | inline memory module | +| MarginIdentifier| | | | ++-----------------+-------+----------+----------------------------------------+ +| thermalMargin | number| Yes | the difference between the DIMM's | +| | | | current temperature, in celsius, and | +| | | | the DIMM's throttling thermal trip | ++-----------------+-------+----------+----------------------------------------+ + +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 | ++-----------+-------+----------+----------------------------------------------+ +| process\ | string| Yes | processIdentifier | +| Identifier| | | | ++-----------+-------+----------+----------------------------------------------+ +| psState\ | number| No | The number of processes in a blocked state | +| Blocked | | | | ++-----------+-------+----------+----------------------------------------------+ +| psState\ | number| No | The number of processes in a paging state | +| Paging | | | | ++-----------+-------+----------+----------------------------------------------+ +| psState\ | number| No | The number of processes in a running state | +| Running | | | | ++-----------+-------+----------+----------------------------------------------+ +| psState\ | number| No | The number of processes in a sleeping state | +| Sleeping | | | | ++-----------+-------+----------+----------------------------------------------+ +| psState\ | number| No | The number of processes in a stopped state | +| Stopped | | | | ++-----------+-------+----------+----------------------------------------------+ +| psState\ | number| No | The number of processes in a zombie state | +| Zombie | | | | ++-----------+-------+----------+----------------------------------------------+ + +‘Notification’ Domain Datatypes +++++++++++++++++++++++++++++++++ + +Datatype: notificationFields +****************************** + +The notificationFields datatype consists of the following fields: + ++--------------+-----------+----------+---------------------------------------+ +| Field | Type | Required?| Description | ++==============+===========+==========+=======================================+ +| additional\ | hashMap | No | Additional notification fields if | +| Fields | | | needed | ++--------------+-----------+----------+---------------------------------------+ +| arrayOfNamed\| namedHash\| No | Array of named hashMaps | +| HashMap | Map [ ] | | | ++--------------+-----------+----------+---------------------------------------+ +| change\ | string | No | Identifier for a contact related to | +| Contact | | | the change | ++--------------+-----------+----------+---------------------------------------+ +| change\ | string | Yes | System or session identifier | +| 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’ | ++--------------+-----------+----------+---------------------------------------+ +| notification\| string | Yes | Version of the notificationFields | +| FieldsVersion| | | 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’ | ++--------------+-----------+----------+---------------------------------------+ +| state\ | string | No | Card or port name of the entity that | +| Interface | | | changed state | ++--------------+-----------+----------+---------------------------------------+ + +The fileReady notification event is used by 3GPP-compliant NFs to notify +ONAP that a PM file is available for upload. The notificationFields are +populated as follows: + +**arrayOfNamedHashMap:** The array is named for the PM file as defined +in 3GPP TS 28.550. The array contains the following key value pairs: + +- **location** in the form protocol://ipAddress:port/path/filename; + e.g. "location" : + "ftpes://135.3.1.44:21/pmfiles/A20180531.1030+0600-1045+0600\A20000626.2315+0200-2330+0200_NodeBId.gz" + +- **compression** containing the compression type used for the PM file; + e.g. "compression" : "gzip" + +- **fileFormatType** containing the format type of the PM file; e.g. + "fileFormatType" : "org.3GPP.32.435#measCollec" + +- **fileFormatVersion** containing the format version of the PM file; + e.g. "fileFormatVersion" : "V10" + +- other vendor-defined key-value pairs as needed + +**changeIdentifier:** set to PM\_MEAS\_FILES + +**changeType:** set to fileReady + +Other notificationFields are not used for fileReady. + +‘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 | ++=============+=============+==========+======================================+ +| arrayOf\ | arrayOf\ | No | Array of named hashMaps | +| NamedHashMap| NamedHashMap| | | ++-------------+-------------+----------+--------------------------------------+ +| hashMap | hashMap | No | Array of name-value pairs | ++-------------+-------------+----------+--------------------------------------+ +| jsonObjects | arrayOf\ | No | Array of JSON objects described by | +| | JsonObject | | name, schema and other | +| | | | meta-information | ++-------------+-------------+----------+--------------------------------------+ +| otherFields\| string | Yes | Version of the otherFields block as | +| Version | | | "#.#" where # is a digit; see section| +| | | | 1 for the correct digits to use. | ++-------------+-------------+----------+--------------------------------------+ + +‘perf3gpp’ Domain Datatypes +++++++++++++++++++++++++++++ + +Datatype: measDataCollection +***************************** + +The measDataCollection datatype defines a 3GPP measurement collection +structure aligned with the 3GPP PM format; it consists of the following +fields: + ++----------------+---------+----------+---------------------------------------+ +| Field | Type | Required?| Description | ++================+=========+==========+=======================================+ +| format\ | string | No | 3GPP PM reporting file format version | +| Version | | | from pre-standard TS 28.550 v2.0.0 | ++----------------+---------+----------+---------------------------------------+ +| granularity\ | string | Yes | Granularity period for the PM report | +| Period | | | in seconds | ++----------------+---------+----------+---------------------------------------+ +| measInfoList | measInfo| Yes | Array of measInfo measurements | +| | [ ] | | | ++----------------+---------+----------+---------------------------------------+ +| measObjInst\ | string | No | Array of monitored object local | +| IdList | [ ] | | distinguished name ids per 3GPP TS | +| | | | 32.300 | ++----------------+---------+----------+---------------------------------------+ +| measured\ | string | Yes | Distinguished name per 3GPP TS 28.550 | +| EntityDn | | | | ++----------------+---------+----------+---------------------------------------+ +| measuredEntity\| string | No | Software version for the NF providing | +| SoftwareVersion| | | the PM data as specified in 3GPP TS | +| | | | 28.550 | ++----------------+---------+----------+---------------------------------------+ +| measuredEntity\| string | No | User Definable name for the measured | +| UserName | | | object per 3GPP TS 28.550 | ++----------------+---------+----------+---------------------------------------+ + +Datatype: measInfo +******************** + +The measInfo datatype provides measurement information; it consists of +the following fields: + ++-------+--------------------------+----------+-------------------------------+ +| Field | Type | Required?| Description | ++=======+==========================+==========+===============================+ +| jobId | string | No | Name of the measurement job | ++-------+--------------------------+----------+-------------------------------+ +| meas\ | oneOf [ measInfoIdInteger| No | Measurement group Identifier | +| InfoId| , measInfoIdString ] | | | ++-------+--------------------------+----------+-------------------------------+ +| meas\ | oneOf [ measTypesInteger | Yes | Array of measurement | +| Types | , measTypesString ] | | identifiers associated with | +| | | | the measurement results | +| | | | expressed as integers for | +| | | | efficiency rather than strings| ++-------+--------------------------+----------+-------------------------------+ +| meas\ | measValues [ ] | Yes | Array of measValues | +| Values| | | | ++-------+--------------------------+----------+-------------------------------+ + +Datatype: measInfoIdInteger +**************************** + +The measInfoIdInteger datatype provides an integer measurement group +identifier; it consists of the following fields: + ++---------------+---------+----------+--------------------------------------+ +| Field | Type | Required?| Description | ++===============+=========+==========+======================================+ +| iMeasInfoId | integer | Yes | Integer measurement group Identifier | ++---------------+---------+----------+--------------------------------------+ + +Datatype: measInfoIdString +*************************** + +The measInfoIdString datatype provides a string measurement group +identifier; it consists of the following fields: + ++---------------+-----------+----------+--------------------------------------+ +| Field | Type | Required?| Description | ++===============+===========+==========+======================================+ +| sMeasInfoId | integer | Yes | String measurement group Identifier | ++---------------+-----------+----------+--------------------------------------+ + +Datatype: measResultInteger +**************************** + +The measResultInteger datatype provides an integer 3GPP PM measurement +result; it consists of the following fields: + ++----------+-----------+-------------+------------------------------------+ +| Field | Type | Required? | Description | ++==========+===========+=============+====================================+ +| p | integer | Yes | Integer reference to the counter | ++----------+-----------+-------------+------------------------------------+ +| iValue | integer | Yes | Integer counter value | ++----------+-----------+-------------+------------------------------------+ + +Datatype: measResultNull +************************* + +The measResultNull datatype provides a null 3GPP PM measurement result; +it consists of the following fields: + ++----------+-----------+-------------+------------------------------------+ +| Field | Type | Required? | Description | ++==========+===========+=============+====================================+ +| p | integer | Yes | Integer reference to the counter | ++----------+-----------+-------------+------------------------------------+ +| isNull | string | Yes | Enumeration: ‘true’ or ‘false’ | ++----------+-----------+-------------+------------------------------------+ + +Datatype: measResultNumber +*************************** + +The measResultNumber datatype provides a number 3GPP PM measurement +result; it consists of the following fields: + ++----------+-----------+-------------+------------------------------------+ +| Field | Type | Required? | Description | ++==========+===========+=============+====================================+ +| p | integer | Yes | Integer reference to the counter | ++----------+-----------+-------------+------------------------------------+ +| rValue | number | Yes | Number counter value | ++----------+-----------+-------------+------------------------------------+ + +Datatype: measResultString +*************************** + +The measResultString datatype provides a string 3GPP PM measurement +result; it consists of the following fields: + ++----------+-----------+-------------+------------------------------------+ +| Field | Type | Required? | Description | ++==========+===========+=============+====================================+ +| p | integer | Yes | Integer reference to the counter | ++----------+-----------+-------------+------------------------------------+ +| sValue | string | Yes | String counter value | ++----------+-----------+-------------+------------------------------------+ + +Datatype: measTypesInteger +*************************** + +The measTypesInteger datatype provides an array of integer measurement +identifiers associated with the measurement results; it consists of the +following fields: + ++----------+--------+----------+----------------------------------------------+ +| Field | Type | Required?| Description | ++==========+========+==========+==============================================+ +| iMeas\ | integer| Yes | Array of integer measurement identifiers | +| TypesList| [ ] | | associated with the measurement results | ++----------+--------+----------+----------------------------------------------+ + +Datatype: measTypesString +************************** + +The measTypesString datatype provides an array of string measurement +identifiers associated with the measurement results; it consists of the +following fields: + ++----------+-------+----------+-----------------------------------------------+ +| Field | Type | Required?| Description | ++==========+=======+==========+===============================================+ +| sMeas\ | string| Yes | Array of string measurement identifiers | +| TypesList| [ ] | | associated with the measurement results | ++----------+-------+----------+-----------------------------------------------+ + +Datatype: measValues +********************* + +The measValues datatype provides 3GPP measurement values; it consists of +the following fields: + ++---------+----------------------------------+----------+---------------------+ +| Field | Type | Required?| Description | ++=========+==================================+==========+=====================+ +| measObj\| hashMap | No | Additional key-value| +| AddlFlds| | | pairs if needed | ++---------+----------------------------------+----------+---------------------+ +| measObj\|measDataCollection | Yes | Monitored object | +| InstId | | | local distinguished | +| | | | name per 3GPP TS | +| | | | 32.300 and 3GPP TS | +| | | | 32.432 | ++---------+----------------------------------+----------+---------------------+ +| meas\ | Array of items where each item is| Yes | Array of results | +| Results | oneOf [ measResultInteger, | | | +| | measResultNull, measResultNumber,| | | +| | measResultString ] | | | ++---------+----------------------------------+----------+---------------------+ +| suspect\| string | No | Enumeration: ‘true’,| +| Flag | | | ‘false’. Indicates | +| | | | if the values are | +| | | | suspect | ++---------+----------------------------------+----------+---------------------+ + +Datatype: perf3gppFields +************************* + +The perf3gppFields datatype defines fields for 3GPP PM format events, +based on 3GPP TS 28.550, belonging to the 'perf3gpp' domain of the +commonEventHeader domain enumeration; it consists of the following +fields: + ++--------------+-----------+----------+---------------------------------------+ +| Field | Type | Required?| Description | ++==============+===========+==========+=======================================+ +| eventAddl\ | hashMap | No | Additional key-value pairs if needed | +| Fields | | | | ++--------------+-----------+----------+---------------------------------------+ +| measData\ | measData | Yes | 3GPP measurement collection structure | +| Collection | Collection| | | ++--------------+-----------+----------+---------------------------------------+ +| perf3gpp\ | string | Yes | Version of the perf3gpp event | +| FieldsVersion| | | | ++--------------+-----------+----------+---------------------------------------+ + +‘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 | ++=================+========+==========+=======================================+ +| additional\ | hashMap| No | Additional pnfRegistration fields if | +| Fields | | | needed | ++-----------------+--------+----------+---------------------------------------+ +| last\ | string | No | TS 32.692 dateOfLastService = date of | +| ServiceDate | | | last service; e.g. 15022017 | ++-----------------+--------+----------+---------------------------------------+ +| macAddress | string | No | MAC address of OAM interface of the | +| | | | unit | ++-----------------+--------+----------+---------------------------------------+ +| manufacture\ | string | No | TS 32.692 dateOfManufacture = | +| Date | | | 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 | ++-----------------+--------+----------+---------------------------------------+ +| oamV4\ | string | No | IPv4 m-plane IP address to be used by | +| IpAddress | | | the manager to contact the PNF | ++-----------------+--------+----------+---------------------------------------+ +| oamV6\ | string | No | IPv6 m-plane IP address to be used by | +| IpAddress | | | the manager to contact the PNF | ++-----------------+--------+----------+---------------------------------------+ +| pnfRegistration\| string | Yes | Version of the pnfRegistrationFields | +| FieldsVersion | | | 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 | ++-----------------+--------+----------+---------------------------------------+ +| software\ | string | No | TS 32.692 swName = active SW running | +| Version | | | on the unit; e.g. 5gDUv18.05.201 | ++-----------------+--------+----------+---------------------------------------+ +| unitFamily | string | No | TS 32.692 vendorUnitFamilyType = | +| | | | general type of HW unit; e.g. BBU | ++-----------------+--------+----------+---------------------------------------+ +| unitType | string | No | TS 32.692 vendorUnitTypeNumber = | +| | | | 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 | ++==============+========+==========+==========================================+ +| additional\ | hashMap| No | Additional stateChange fields if needed | +| Fields | | | | ++--------------+--------+----------+------------------------------------------+ +| newState | string | Yes | New state of the entity: ‘inService’, | +| | | | ‘maintenance’, ‘outOfService’ | ++--------------+--------+----------+------------------------------------------+ +| oldState | string | Yes | Previous state of the entity: ‘inService’| +| | | | , ‘maintenance’, ‘outOfService’ | ++--------------+--------+----------+------------------------------------------+ +| stateChange\ | string | Yes | Version of the stateChangeFields block as| +| FieldsVersion| | | "#.#" where # is a digit; see section 1 | +| | | | for the correct digits to use. | ++--------------+--------+----------+------------------------------------------+ +| state\ | string | Yes | Card or port name of the entity that | +| Interface | | | changed state | ++--------------+--------+----------+------------------------------------------+ + +‘Syslog’ Domain Datatypes +++++++++++++++++++++++++++ + +Datatype: syslogFields +*********************** + +The syslogFields datatype consists of the following fields: + ++------------+--------+----------+--------------------------------------------+ +| Field | Type | Required?| Description | ++============+========+==========+============================================+ +| additional\| hashMap| No | Additional syslog fields if needed Ex: | +| Fields | | | {"name1": "value1", "name2: "value2" … } | ++------------+--------+----------+--------------------------------------------+ +| event\ | string | No | Hostname of the device | +| SourceHost | | | | ++------------+--------+----------+--------------------------------------------+ +| event\ | string | Yes | Examples: ‘other’, ‘router’, ‘switch’, | +| SourceType | | | ‘host’, ‘card’, ‘port’, ‘slotThreshold’, | +| | | | ‘portThreshold’, ‘virtualMachine’, | +| | | | ‘virtualNetworkFunction’ | ++------------+--------+----------+--------------------------------------------+ +| syslog\ | integer| No | Numeric code from 0 to 23 for facility: | +| Facility | | | | +| | | | | +| | | | 0 kernel messages | +| | | | | +| | | | 1 user-level messages | +| | | | | +| | | | 2 mail system | +| | | | | +| | | | 3 system daemons | +| | | | | +| | | | 4 security/authorization messages | +| | | | | +| | | | 5 messages generated internally by syslogd | +| | | | | +| | | | 6 line printer subsystem | +| | | | | +| | | | 7 network news subsystem | +| | | | | +| | | | 8 UUCP subsystem | +| | | | | +| | | | 9 clock daemon | +| | | | | +| | | | 10 security/authorization 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 ) | ++------------+--------+----------+--------------------------------------------+ +| syslog\ | string | Yes | Version of the syslogFields block as "#.#" | +| Fields\ | | | where # is a digit; see section 1 for the | +| Version | | | correct digits to use. | ++------------+--------+----------+--------------------------------------------+ +| syslogMsg | string | Yes | Syslog message | ++------------+--------+----------+--------------------------------------------+ +| syslog\ | string | No | Hostname parsed from non-VES syslog message| +| MsgHost | | | | ++------------+--------+----------+--------------------------------------------+ +| syslogPri | integer| No | 0-192 | +| | | | | +| | | | Combined Severity and Facility(see rfc5424)| ++------------+--------+----------+--------------------------------------------+ +| syslogProc | string | No | Identifies the application that originated | +| | | | the message | ++------------+--------+----------+--------------------------------------------+ +| syslog\ | number | No | The process number assigned by the OS when | +| ProcId | | | the application was started | ++------------+--------+----------+--------------------------------------------+ +| syslog\ | string | No | A <space> separated list of key="value" | +| SData | | | 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-severity 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\_CHANGE’; | +| | | | ‘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 | ++------------+--------+----------+--------------------------------------------+ +| threshhold\| string | Yes | Last threshold that was crossed | +| Crossed | | | | ++------------+--------+----------+--------------------------------------------+ + +Datatype: thresholdCrossingAlertFields +**************************************** + +The thresholdCrossingAlertFields datatype consists of the following +fields: + ++------------+------------+----------+----------------------------------------+ +| Field | Type | Required?| Description | ++============+============+==========+========================================+ +| additional\| hashMap | No | Additional threshold crossing alert | +| Fields | | | fields if needed | ++------------+------------+----------+----------------------------------------+ +| additional\| counter [ ]| Yes | Array of performance counters | +| Parameters | | | | ++------------+------------+----------+----------------------------------------+ +| alert\ | string | Yes | Enumeration: ‘SET’, ‘CONT’, ‘CLEAR’ | +| Action | | | | ++------------+------------+----------+----------------------------------------+ +| alert\ | string | Yes | Unique short alert description (e.g., | +| Description| | | NE-CPUMEM) | ++------------+------------+----------+----------------------------------------+ +| alertType | string | Yes | Enumeration: ‘CARD-ANOMALY’, | +| | | | ‘INTERFACE-ANOMALY’, ELEMENT-ANOMALY’, | +| | | | ‘SERVICE-ANOMALY’ | ++------------+------------+----------+----------------------------------------+ +| alertValue | string | No | Calculated API value (if applicable) | ++------------+------------+----------+----------------------------------------+ +| associated\| string [ ] | No | List of eventIds associated with the | +| AlertIdList| | | event being reported | ++------------+------------+----------+----------------------------------------+ +| collection\| string | Yes | Time when the performance collector | +| Timestamp | | | picked up the data; with RFC 2822 | +| | | | compliant format: ‘Sat, 13 Mar 2010 | +| | | | 11:29:05 -0800’ | ++------------+------------+----------+----------------------------------------+ +| data\ | string | No | Specific performance collector instance| +| Collector | | | used | ++------------+------------+----------+----------------------------------------+ +| elementType| string | No | Type of network element (internal AT&T | +| | | | field) | ++------------+------------+----------+----------------------------------------+ +| event\ | string | Yes | Event severity or priority enumeration:| +| Severity | | | ‘CRITICAL’, ‘MAJOR’, ‘MINOR’, ‘WARNING’| +| | | | , ‘NORMAL’ | ++------------+------------+----------+----------------------------------------+ +| eventStart\| string | Yes | Time closest to when the measurement | +| Timestamp | | | was made; with RFC 2822 compliant | +| | | | format: ‘Sat, 13 Mar 2010 11:29:05 | +| | | | -0800’ | ++------------+------------+----------+----------------------------------------+ +| interface\ | string | No | Physical or logical port or card (if | +| Name | | | applicable) | ++------------+------------+----------+----------------------------------------+ +| network\ | string | No | Network name (internal AT&T field) | +| Service | | | | ++------------+------------+----------+----------------------------------------+ +| possible\ | string | No | Reserved for future use | +| RootCause | | | | ++------------+------------+----------+----------------------------------------+ +| threshold\ | string | Yes | Version of the | +| Crossing | | | thresholdCrossingAlertFields block as | +| Fields\ | | | "#.#" where # is a digit; see section 1| +| Version | | | 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 | ++===============+========+==========+=========================================+ +| avgBit\ | number | Yes | Average bit error rate | +| ErrorRate | | | | ++---------------+--------+----------+-----------------------------------------+ +| avgPacket\ | number | Yes | Average packet delay variation or jitter| +| Delay\ | | | in milliseconds for received packets: | +| Variation | | | Average difference between the packet | +| | | | timestamp and time received for all | +| | | | pairs of consecutive packets | ++---------------+--------+----------+-----------------------------------------+ +| avgPacket\ | number | Yes | Average delivery latency | +| Latency | | | | ++---------------+--------+----------+-----------------------------------------+ +| avgReceive\ | number | Yes | Average receive throughput | +| Throughput | | | | ++---------------+--------+----------+-----------------------------------------+ +| avgTransmit\ | number | Yes | Average transmit throughput | +| Throughput | | | | ++---------------+--------+----------+-----------------------------------------+ +| dur\ | number | No | Duration of failed state in milliseconds| +| Connection\ | | | , computed as the cumulative time | +| FailedStatus | | | between a failed echo request and the | +| | | | next following successful error request,| +| | | | over this reporting interval | ++---------------+--------+----------+-----------------------------------------+ +| durTunnel\ | number | No | Duration of errored state, computed as | +| FailedStatus | | | the cumulative time between a tunnel | +| | | | error indicator and the next following | +| | | | non-errored indicator, over this | +| | | | reporting interval | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | string | No | Endpoint activating the flow | +| ActivatedBy | | | | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | number | Yes | Time the connection is activated in the | +| Activation\ | | | flow (connection) being reported on, or | +| Epoch | | | transmission time of the first packet if| +| | | | activation time is not available | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | number | Yes | Integer microseconds for the start of | +| Activation\ | | | the flow connection | +| Microsec | | | | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | string | No | Time the connection is activated in the | +| Activation\ | | | flow being reported on, or transmission | +| Time | | | time of the first packet if activation | +| | | | time is not available; with RFC 2822 | +| | | | compliant format: ‘Sat, 13 Mar 2010 | +| | | | 11:29:05 -0800’ | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | string | No | Endpoint deactivating the flow | +| Deactivated\ | | | | +| By | | | | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | number | Yes | Time for the start of the flow | +| Deactivation\ | | | connection, in integer UTC epoch time | +| Epoch | | | aka UNIX time | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | number | Yes | Integer microseconds for the start of | +| Deactivation\ | | | the flow connection | +| Microsec | | | | ++---------------+--------+----------+-----------------------------------------+ +| flow\ | string | Yes | Transmission time of the first packet in| +| Deactivation\ | | | the flow connection being reported on; | +| Time | | | 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 | ++---------------+--------+----------+-----------------------------------------+ +| gtp\ | string | No | Current connection state at reporting | +| Connection\ | | | time | +| Status | | | | ++---------------+--------+----------+-----------------------------------------+ +| gtpTunnel\ | string | No | Current tunnel state at reporting time | +| Status | | | | ++---------------+--------+----------+-----------------------------------------+ +| ipTos\ | hashMap| No | Array of key: value pairs where the keys| +| CountList | | | 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' | ++---------------+--------+----------+-----------------------------------------+ +| large\ | number | No | large packet round trip time | +| PacketRtt | | | | ++---------------+--------+----------+-----------------------------------------+ +| largePacket\ | number | No | large packet threshold being applied | +| Threshold | | | | ++---------------+--------+----------+-----------------------------------------+ +| maxPacket\ | number | Yes | Maximum packet delay variation or jitter| +| Delay\ | | | in milliseconds for received packets: | +| Variation | | | Maximum of the difference between the | +| | | | packet timestamp and time received for | +| | | | all pairs of consecutive packets | ++---------------+--------+----------+-----------------------------------------+ +| maxReceive\ | number | No | maximum receive bit rate" | +| BitRate | | | | ++---------------+--------+----------+-----------------------------------------+ +| maxTransmit\ | number | No | maximum transmit bit rate | +| BitRate | | | | ++---------------+--------+----------+-----------------------------------------+ +| mobileQci\ | hashMap| No | array of key: value pairs where the keys| +| CosCountList | | | 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 | ++---------------+--------+----------+-----------------------------------------+ +| mobileQci\ | string | No | Array of unique LTE QCI or UMTS | +| CosList | | | class-of-service values observed in the | +| | | | flow | ++---------------+--------+----------+-----------------------------------------+ +| num\ | number | Yes | Number of failed activation requests, as| +| Activation\ | | | observed by the reporting node | +| Failures | | | | ++---------------+--------+----------+-----------------------------------------+ +| numBit\ | number | Yes | number of errored bits | +| Errors | | | | ++---------------+--------+----------+-----------------------------------------+ +| numBytes\ | number | Yes | number of bytes received, including | +| Received | | | retransmissions | ++---------------+--------+----------+-----------------------------------------+ +| numBytes\ | number | Yes | number of bytes transmitted, including | +| Transmitted | | | retransmissions | ++---------------+--------+----------+-----------------------------------------+ +| numDropped\ | number | Yes | number of received packets dropped due | +| Packets | | | to errors per virtual interface | ++---------------+--------+----------+-----------------------------------------+ +| numGtp\ | number | No | Number of Echo request path failures | +| EchoFailures | | | where failed paths are defined in 3GPP | +| | | | TS 29.281 sec 7.2.1 and 3GPP TS 29.060 | +| | | | sec. 11.2 | ++---------------+--------+----------+-----------------------------------------+ +| numGtp\ | number | No | Number of tunnel error indications where| +| TunnelErrors | | | errors are defined in 3GPP TS 29.281 sec| +| | | | 7.3.1 and 3GPP TS 29.060 sec. 11.1 | ++---------------+--------+----------+-----------------------------------------+ +| numHttp\ | number | No | Http error count | +| Errors | | | | ++---------------+--------+----------+-----------------------------------------+ +| numL7Bytes\ | number | Yes | number of tunneled layer 7 bytes | +| Received | | | received, including retransmissions | ++---------------+--------+----------+-----------------------------------------+ +| numL7Bytes\ | number | Yes | number of tunneled layer 7 bytes | +| Transmitted | | | transmitted, excluding retransmissions | ++---------------+--------+----------+-----------------------------------------+ +| numLost\ | number | Yes | number of lost packets | +| Packets | | | | ++---------------+--------+----------+-----------------------------------------+ +| numOutOf\ | number | Yes | number of out-of-order packets | +| OrderPackets | | | | ++---------------+--------+----------+-----------------------------------------+ +| numPacket\ | number | Yes | number of errored packets | +| Errors | | | | ++---------------+--------+----------+-----------------------------------------+ +| numPackets\ | number | Yes | number of packets received, excluding | +| ReceivedExcl\ | | | retransmission | +| Retrans | | | | ++---------------+--------+----------+-----------------------------------------+ +| numPackets\ | number | Yes | number of packets received, including | +| ReceivedIncl\ | | | retransmission | +| Retrans | | | | ++---------------+--------+----------+-----------------------------------------+ +| numPackets\ | number | Yes | number of packets transmitted, including| +| Transmitted\ | | | retransmissions | +| InclRetrans | | | | ++---------------+--------+----------+-----------------------------------------+ +| numRetries | number | Yes | number of packet retrie | ++---------------+--------+----------+-----------------------------------------+ +| numTimeouts | number | Yes | number of packet timeouts | ++---------------+--------+----------+-----------------------------------------+ +| numTunneled\ | number | Yes | number of tunneled layer 7 bytes | +| L7Bytes\ | | | received, excluding retransmissions | +| Received | | | | ++---------------+--------+----------+-----------------------------------------+ +| roundTrip\ | number | Yes | Round Trip time | +| Time | | | | ++---------------+--------+----------+-----------------------------------------+ +| tcpFlag\ | hashMap| No | Array of key: value pairs where the keys| +| CountList | | | are drawn from TCP Flags and the values | +| | | | are the count of packets that had that | +| | | | TCP Flag in the flow | ++---------------+--------+----------+-----------------------------------------+ +| tcpFlag\ | string | No | Array of unique TCP Flags observed in | +| List | | | the flow | ++---------------+--------+----------+-----------------------------------------+ +| timeTo\ | number | Yes | Time in milliseconds between the | +| FirstByte | | | connection activation and first byte | +| | | | received | ++---------------+--------+----------+-----------------------------------------+ + +Datatype: mobileFlowFields +*************************** + +The mobileFlowFields datatype consists of the following fields: + ++-------------+------------+----------+---------------------------------------+ +| Field | Type | Required?| Description | ++=============+============+==========+=======================================+ +| additional\ | hashMap | No | Additional mobileFlow fields if needed| +| Fields | | | | ++-------------+------------+----------+---------------------------------------+ +| application\| string | No | Application type inferred | +| Type | | | | ++-------------+------------+----------+---------------------------------------+ +| appProtocol\| string | No | Application protocol | +| Type | | | | ++-------------+------------+----------+---------------------------------------+ +| appProtocol\| string | No | Application version | +| Version | | | | ++-------------+------------+----------+---------------------------------------+ +| cid | string | No | Cell Id | ++-------------+------------+----------+---------------------------------------+ +| connection\ | string | No | Abbreviation referencing a 3GPP | +| Type | | | reference point e.g., S1-U, S11, etc | ++-------------+------------+----------+---------------------------------------+ +| ecgi | string | No | Evolved Cell Global Id | ++-------------+------------+----------+---------------------------------------+ +| flow\ | string | Yes | Flow direction, indicating if the | +| Direction | | | reporting node is the source of the | +| | | | flow or destination for the flow | ++-------------+------------+----------+---------------------------------------+ +| gtpPer\ | gtpPer | Yes | Mobility GTP Protocol per flow metrics| +| FlowMetrics | FlowMetrics| | | ++-------------+------------+----------+---------------------------------------+ +| gtpProtocol\| string | No | GTP protocol | +| Type | | | | ++-------------+------------+----------+---------------------------------------+ +| 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 | ++-------------+------------+----------+---------------------------------------+ +| ipProtocol\ | string | Yes | IP protocol type e.g.,TCP, UDP, RTP...| +| Type | | | | ++-------------+------------+----------+---------------------------------------+ +| 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 | ++-------------+------------+----------+---------------------------------------+ +| mobileFlow\ | string | Yes | Version of the mobileFlowFields block | +| Fields\ | | | as "#.#" where # is a digit; see | +| Version | | | 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 | ++-------------+------------+----------+---------------------------------------+ +| other\ | string | Yes | IP address for the other endpoint, as | +| EndpointIp\ | | | used for the flow being reported on | +| Address | | | | ++-------------+------------+----------+---------------------------------------+ +| other\ | integer | Yes | IP Port for the reporting entity, as | +| Endpoint\ | | | used for the flow being reported on | +| Port | | | | ++-------------+------------+----------+---------------------------------------+ +| other\ | string | No | Functional role of the other endpoint | +| Functional\ | | | for the flow being reported on e.g., | +| Role | | | MME, S-GW, P-GW, PCRF... | ++-------------+------------+----------+---------------------------------------+ +| rac | string | No | Routing area code | ++-------------+------------+----------+---------------------------------------+ +| radioAccess\| string | No | Radio Access Technology e.g., 2G, 3G, | +| Technology | | | LTE | ++-------------+------------+----------+---------------------------------------+ +| reporting\ | string | Yes | IP address for the reporting entity, | +| EndpointIp\ | | | as used for the flow being reported on| +| Addr | | | | ++-------------+------------+----------+---------------------------------------+ +| reporting\ | integer | Yes | IP port for the reporting entity, as | +| EndpointPort| | | used for the flow being reported on | ++-------------+------------+----------+---------------------------------------+ +| sac | string | No | Service area code | ++-------------+------------+----------+---------------------------------------+ +| sampling\ | integer | No | Integer identifier for the sampling | +| Algorithm | | | 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 | ++==============+===========+==========+=======================================+ +| additional\ | hashMap | No | Additional sipSignaling fields | +| Information | | | | ++--------------+-----------+----------+---------------------------------------+ +| compressed\ | string | No | The full SIP request/response | +| Sip | | | including headers and bodies | ++--------------+-----------+----------+---------------------------------------+ +| correlator | string | Yes | Constant across all events on this | +| | | | call | ++--------------+-----------+----------+---------------------------------------+ +| local\ | string | Yes | Ip address on xNF | +| IpAddress | | | | ++--------------+-----------+----------+---------------------------------------+ +| localPort | string | Yes | Port on xNF | ++--------------+-----------+----------+---------------------------------------+ +| remote\ | string | Yes | IP address of peer endpoint | +| IpAddress | | | | ++--------------+-----------+----------+---------------------------------------+ +| remotePort | string | Yes | Port of peer endpoint | ++--------------+-----------+----------+---------------------------------------+ +| sipSignaling\| string | Yes | Version of the sipSignalingFields | +| FieldsVersion| | | 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) | ++--------------+-----------+----------+---------------------------------------+ +| vendorNf\ | vendorNf | Yes | Vendor, NF and nfModule names | +| NameFields | NameFields| | | ++--------------+-----------+----------+---------------------------------------+ + +‘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 | ++==============+=======+==========+===========================================+ +| adjacency\ | string| Yes | Adjacency name | +| Name | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpoint\ | number| No | Endpoint average jitter | +| AverageJitter| | | | ++--------------+-------+----------+-------------------------------------------+ +| endpoint\ | string| Yes | Enumeration: ‘Caller’, ‘Callee’ | +| Description | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpoint\ | number| No | Endpoint maximum jitter | +| MaxJitter | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP octets discarded | +| Octets\ | | | | +| Discarded | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP octets lost | +| OctetsLost | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP octets received | +| Octets\ | | | | +| Received | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP octets sent | +| OctetsSent | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP packets discarded | +| Packets\ | | | | +| Discarded | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP packets lost | +| PacketsLost | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP packets received | +| Packets\ | | | | +| Received | | | | ++--------------+-------+----------+-------------------------------------------+ +| endpointRtp\ | number| No | Endpoint RTP packets sent | +| PacketsSent | | | | ++--------------+-------+----------+-------------------------------------------+ +| local\ | number| No | Local average jitter | +| Average\ | | | | +| Jitter | | | | ++--------------+-------+----------+-------------------------------------------+ +| localAverage\| number| No | Local average jitter buffer delay | +| JitterBuffer\| | | | +| Delay | | | | ++--------------+-------+----------+-------------------------------------------+ +| localMax\ | number| No | Local maximum jitter | +| Jitter | | | | ++--------------+-------+----------+-------------------------------------------+ +| localMax\ | number| No | Local max jitter buffer delay | +| JitterBuffer\| | | | +| Delay | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP octets discarded | +| Octets\ | | | | +| Discarded | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP octets lost | +| OctetsLost | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP octets received | +| Octets\ | | | | +| Received | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP octets sent | +| OctetsSent | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP packets discarded | +| Packets\ | | | | +| Discarded | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP packets lost | +| PacketsLost | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP packets received | +| Packets\ | | | | +| Received | | | | ++--------------+-------+----------+-------------------------------------------+ +| localRtp\ | number| No | Local RTP packets sent | +| PacketsSent | | | | ++--------------+-------+----------+-------------------------------------------+ +| mosCqe | number| No | Decimal range from 1 to 5(1 decimal place)| ++--------------+-------+----------+-------------------------------------------+ +| oneWayDelay | number| No | one-way path delay in milliseconds | ++--------------+-------+----------+-------------------------------------------+ +| packet\ | number| No | Calculated percentage packet loss based on| +| LossPercent | | | 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 | ++--------------+-------+----------+-------------------------------------------+ +| round\ | number| No | Round trip delay in milliseconds | +| TripDelay | | | | ++--------------+-------+----------+-------------------------------------------+ + +Datatype: voiceQualityFields +***************************** + +The voiceQualityFields datatype provides statistics related to customer +facing voice products; consists of the following fields: + ++--------------+-------------+----------+-------------------------------------+ +| Field | Type | Required?| Description | ++==============+=============+==========+=====================================+ +| additional\ | hashMap | No | Additional voice quality fields | +| Information | | | | ++--------------+-------------+----------+-------------------------------------+ +| callee\ | string | Yes | Callee codec for the call | +| SideCodec | | | | ++--------------+-------------+----------+-------------------------------------+ +| caller\ | string | Yes | Caller codec for the call | +| SideCodec | | | | ++--------------+-------------+----------+-------------------------------------+ +| correlator | string | Yes | Constant across all events on this | +| | | | call | ++--------------+-------------+----------+-------------------------------------+ +| endOfCall\ | endOfCallVqm| No | End of call voice quality metric | +| VqmSummaries | Summaries | | 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) | ++--------------+-------------+----------+-------------------------------------+ +| vendorNf\ | vendorNf | Yes | Vendor, NF and nfModule names | +| NameFields | NameFields | | | ++--------------+-------------+----------+-------------------------------------+ +| voiceQuality\| string | Yes | Version of the voiceQualityFields | +| FieldsVersion| | | 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 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 more strings that | +| | [0..unbounded]| | 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| Description | Text | Variables | Parent | +| | / Comment | | | HTTP Code| ++==========+==============+=======================+================+==========+ +| SVC0001 | General | <custom error message>| None | 400 | +| | service error| | | | +| | (see SVC2000)| | | | ++----------+--------------+-----------------------+----------------+----------+ +| SVC0002 | Bad parameter| Invalid input value | %1: message | 400 | +| | | for message part %1 | part | | ++----------+--------------+-----------------------+----------------+----------+ +| SVC1000 | No server | No server resources | None | 500 | +| | resources | available to process | | | +| | | the request | | | ++----------+--------------+-----------------------+----------------+----------+ +| SVC2000 | More | The following service | %1: human | 400 | +| | elaborate | error occurred: %1. | readable | | +| | version of | | description of | | +| | SVC0001 | | the error | | +| | | | | | +| | | Error code is %2. | %2: error code | | ++----------+--------------+-----------------------+----------------+----------+ + + Table - 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| Description |Text | Variables | Parent | +| | / Comment | | | HTTP Code| ++==========+===============+=======================+===============+==========+ +| POL0001 | General policy| A policy error | None | 401 | +| | error (see | occurred. | | | +| | POL2000) | | | | ++----------+---------------+-----------------------+---------------+----------+ +| POL1009 | User not | User has not been | None | 401 | +| | provisioned | provisioned for | | | +| | for service | service | | | ++----------+---------------+-----------------------+---------------+----------+ +| POL1010 | User suspended| User has been | None | 401 | +| | from service | suspended from service| | | ++----------+---------------+-----------------------+---------------+----------+ +| POL2000 | More elaborate| The following policy | %1: human | 401 | +| | version of | error occurred: %1. | readable | | +| | POL0001 | Error code is %2. | description of| | +| | | | the error | | +| | | | | | +| | | | %2: error code| | ++----------+---------------+-----------------------+---------------+----------+ +| POL9003 | Message size | Message content size | None | 400 | +| | exceeds limit | exceeds the allowable | | | +| | | limit | | | ++----------+---------------+-----------------------+---------------+----------+ + + Table - Policy Exceptions + +RESTful Web Services Definition +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +REST Operation Overview +~~~~~~~~~~~~~~~~~~~~~~~~~ + +REST Operation Summary ++++++++++++++++++++++++ + ++---------------------+---------+------------------------------------------+ +| **Operation Action**| **HTTP**| Resource URL relative to {ServerRoot}\ | +| | | , which is defined in section 3 | +| | **Verb**| | ++---------------------+---------+------------------------------------------+ +| publishAnyEvent | POST | /eventListener/v{apiVersion} | ++---------------------+---------+------------------------------------------+ +| publishEventBatch | POST | /eventListener/v{apiVersion}/eventBatch | ++---------------------+---------+------------------------------------------+ + +Table - 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: 1 + +- X-PatchVersion: 1 + +- X-LatestVersion: 7.1 + +If a client requests major version 7 (per the REST resource URL) and +does not specify the above headers, then they will be provided with the +latest patch version of 7.0.x (which is 7.0.1). If the client wants a +minor version of major version 7, then they need to supply +the X-MinorVersion header with their request. For example, if they +request major version 7 with X-MinorVersion: 1, they will get the latest +patch version of 7.1, which is 7.1.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, and re-transmit them once a connection has been +established. + +The following events should be buffered: + +* Faults with eventSeverity of ``MINOR``, ``MAJOR``, ``NORMAL``, or ``CRITICAL`` + with following expected behavior: + + * NF keeps a First-In-First-Out buffer. + * Until the collectors are working again, it is desired that the NF sends + the final state events only, and not intermediate ones. However, it is + acceptable to buffer all events and send them over to the collector in + the same order in which they were generated/received. + +* When one VES Event Listener connectivity is re-established, NF should first + send the buffered events and then start sending the new events. + + * Syslog with syslogSev of ``Emergency``, ``Alert``, ``Critical``, + ``Error``, or ``Warning`` + +* All measurements events + +publishEventBatch Requirements +****************************** + +Buffered events can be sent in batch using ``publishEventBatch``. However, a +NF vendor must only include multiple events for the same domain in the +``publishEventBatch``. The ``publishEventBatch`` event must also conform to +event size limits. + +``publishEventBatch`` events are handled similarly to a single event. The +acknowledgement from the VES Event Listener is for the ``publishEventBatch`` and +not individual events within the ``publishEventBatch``. + +Debug Mode +********** + +NFs acting as event sources should not send syslog events to the +VES Event Listener during debug mode, but should store syslog events locally +for access, and possible FTP transfer, via the NF console (e.g., command line +interface). + +.. _msg-size: + +Message Size +++++++++++++ + +The maximum allowed message size is 2 megabytes of uncompressed text. +However,messages of this size have been known to cause performance and data +loss. It is strongly recommended,that messages not exceed 1 megabyte. +In a future version of the specification, a 1 megabyte limit will become +a mandatory requirement. + +Operation: publishAnyEvent +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Functional Behavior ++++++++++++++++++++++ + +Allows authorized clients to publish any single event to the VES event +listener. + +- Supports only HTTPS access. + +- Uses the HTTP verb POST + +- Supports JSON content types + +- Provides HTTP response codes as well as Service and Policy error + messages + +Call Flow +++++++++++ + +.. seqdiag:: + :caption: ``publishAnyEvent`` Call Flow + + seqdiag { + edge_length = 250; + client -> listener [label = "POST /eventlistener/v7"]; + client <- listener [label = "HTTP 202 Accepted", note = "sync response"]; + === Error Scenario === + client -> listener [label = "POST /eventlistener/v7"]; + client <- listener [label = "HTTP 4XX/5XX", note = "sync response"]; + } + +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 | No | The username and password are formed | +| | | | into one string as | +| | | | ``username:password``. 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| +| | | | 2 Megabyte (see :ref:`msg-size`) | ++---------------+----------+----------+---------------------------------------+ +| 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-Latest\ | string | No | The full version of the API requested | +| Version | | | 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 | A request was made of a resource using a request method| +| | Allowed | not supported by that resource (e.g., using PUT on a | +| | | REST resource that only supports POST). | ++-----+--------------+--------------------------------------------------------+ +| 500 | Internal | The server encountered an internal error or timed out; | +| | Server Error | please retry (general catch-all server-side error).HTTP| +| | | 500 errors may be mapped to SVC1000 (no server | +| | | resources). | ++-----+--------------+--------------------------------------------------------+ + +Sample Request and Response +++++++++++++++++++++++++++++ + +Sample Request +*************** + +.. code-block:: http + + POST /eventListener/v7 HTTP/1.1 + Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== + content-type: application/json + content-length: 12345 + X-MinorVersion: 1 + + { + "event": { + "commonEventHeader": { + "version": "4.1", + "vesEventListenerVersion": "7.1.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 +************************ + +.. code-block:: http + + HTTPS/1.1 202 Accepted + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 + +Sample Error Responses +************************ + +Sample Policy Exception +"""""""""""""""""""""""" + +.. code-block:: http + + HTTPS/1.1 400 Bad Request + content-type: application/json + content-length: 12345 + Date: Thu, 04 Jun 2009 02:51:59 GMT + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 + + { + "requestError": { + "policyException": { + "messageId": "POL9003", + "text": "Message content size exceeds the allowable limit", + } + } + } + + +Sample Service Exception +""""""""""""""""""""""""" + +.. code-block:: http + + HTTPS/1.1 400 Bad Request + content-type: application/json + content-length: 12345 + Date: Thu, 04 Jun 2009 02:51:59 GMT + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 + + { + "requestError": { + "serviceException": { + "messageId": "SVC2000", + "text": "Missing Parameter: %1. Error code is %2" + "variables": [ + "severity", + "400" + ] + } + } + } + +Operation: publishEventBatch +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Functional Behavior ++++++++++++++++++++ + +Allows authorized clients to publish a batch of events to the VES event +listener. + +- Supports only HTTPS access. + +- Uses the HTTP verb POST + +- Supports JSON content types + +- Provides HTTP response codes as well as Service and Policy error + messages + +Call Flow ++++++++++++ + +.. seqdiag:: + :caption: ``publishEventBatch`` Call Flow + + seqdiag { + edge_length = 250; + client -> listener [label = "POST /eventlistener/v7/eventBatch"]; + client <- listener [label = "HTTP 202 Accepted", note = "sync response"]; + === Error Scenario === + client -> listener [label = "POST /eventlistener/v7/eventBatch"]; + client <- listener [label = "HTTP 4XX/5XX", note = "sync response"]; + } + +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 | No | The username and password are formed | +| | | | into one string as "username:password"| +| | | | . 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| +| | | | 2 megabyte (see :ref:`msg-size`). | ++---------------+----------+----------+---------------------------------------+ +| 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-Latest\ | string | No | The full version of the API requested | +| Version | | | 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 ++++++++++++++++++++ + +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 | A request was made of a resource using a request method| +| | Allowed | not supported by that resource (e.g., using PUT on a | +| | | REST resource that only supports POST). | ++-----+--------------+--------------------------------------------------------+ +| 500 | Internal | The server encountered an internal error or timed out; | +| | Server Error | please retry (general catch-all server-side error).HTTP| +| | | 500 errors may be mapped to SVC1000 (no server | +| | | resources). | ++-----+--------------+--------------------------------------------------------+ + +Sample Request and Response ++++++++++++++++++++++++++++++ + +Sample Request +**************** + +.. code-block:: http + + POST /eventListener/v7/eventBatch HTTP/1.1 + Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== + content-type: application/json + content-length: 12345 + X-MinorVersion: 1 + + { + "eventList": [ + { + "commonEventHeader": { + "version": "4.1", + "vesEventListenerVersion": "7.1.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.1", + "vesEventListenerVersion": "7.1.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 +************************* + +.. code-block:: http + + HTTPS/1.1 202 Accepted + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 + +Sample Error Responses +************************ + +Sample Policy Exception +"""""""""""""""""""""""" + +.. code-block:: http + + HTTPS/1.1 400 Bad Request + content-type: application/json + content-length: 12345 + Date: Thu, 04 Jun 2009 02:51:59 GMT + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 + + { + "requestError": { + "policyException": { + "messageId": "POL9003", + "text": "Message content size exceeds the allowable limit", + } + } + } + + + +Sample Service Exception +""""""""""""""""""""""""" + +.. code-block:: http + + HTTPS/1.1 400 Bad Request + content-type: application/json + content-length: 12345 + Date: Thu, 04 Jun 2009 02:51:59 GMT + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 + + { + "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. + +**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 MeasurementFields 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 | +| | | thresholdCrossingAlertFields. Updated the domain | +| | | field of the eventHeader to match. | ++-----------+---------+-------------------------------------------------------+ +| 7/23/2015 | v1.1 | Changes to eventHeader data format: | +| | | | +| | | - moved sourceInstance to internalHeaderFields | +| | | | +| | | - moved serviceInstanceId to internalHeaderFields | +| | | | +| | | - moved productId to internalHeaderFields | +| | | | +| | | - moved subscriberId to internalHeaderFields | +| | | | +| | | - moved location to internalHeaderFields | +| | | | +| | | - added the following new fields in | +| | | internalHeaderFields: policyType, policyName, | +| | | correlationEventType, correlationType, | +| | | correlationName, correlationRootEventId | +| | | | +| | | Changes to faultFields data format: | +| | | | +| | | - moved the eventSourceDeviceDescription to | +| | | internalFaultFields and renamed it | +| | | equipmentVendorModel | +| | | | +| | | - moved eventSourceHostname to internalFaultFields | +| | | | +| | | - changed alarmObjectInterface to alarmInterfaceA | +| | | | +| | | - changed alarmRemoteObject to alarmRemoteObjectZ and| +| | | moved it to internalFaultFields | +| | | | +| | | - changed alarmRemoteObjectInterface to | +| | | alarmInterfaceZ and moved it to internalFaultFields| +| | | | +| | | Changes to thresholdCrossingFields data format: | +| | | | +| | | - changed several references from the old | +| | | ‘performanceFields’ block to the new | +| | | ‘thresholdCrossingFields’ 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-schema-validator.herokuapp.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 internalFaultFields were merged into the | +| | | internalHeaderFields; then the internalFaultFields | +| | | 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 'commonEventHeader' | +| | | | +| | | - Moved 'eventSeverity' from the 'commonEventHeader' | +| | | to 'faultFields' | +| | | | +| | | - Added 'priority' to 'commonEventHeader' | +| | | | +| | | - moved 'vFstatus' to 'faultFields' | +| | | | +| | | - removed 'firstDateTime' and 'lastDateTime' and | +| | | changed 'firstEpoch' to 'startEpochMicrosec' and | +| | | changed 'lastEpoch' to 'lastEpochMicrosec'. | +| | | | +| | | - Added 'functionalRole' to the commonEventHeader | +| | | | +| | | - In the commonEventHeader, changed the 'eventDomain'| +| | | enumeration to remove 'measurements' and add | +| | | 'measurementsForVfScaling'. | +| | | | +| | | - Changed the 'measurementFields' to | +| | | 'measurementsForVfScalingFields' | +| | | | +| | | - In the commonEventHeader, 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 | +| | | commonEventHeader ‘domain’ enumeration. Added the | +| | | mobileFlowFields datatype and the gtpPerFlowMetrics| +| | | 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 | +| | | measurementsForVfScalingFields, namely, changed | +| | | ‘configuredEntites’ to ‘configuredEntities’. | +| | | 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 mobileFlowFields 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 | +| | | commonEventHeader; 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| +| | | 'thresholdCrossingFields' to | +| | | 'thresholdCrossingAlertFields' to product v18 of | +| | | the schema. | +| | | | +| | | - 'codecsInUse' data structure: changed 'numberInUse'| +| | | to 'codecUtilization’ | ++-----------+---------+-------------------------------------------------------+ +| 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: | +| | | eventDomainThrottleSpecification, | +| | | eventDomainThrottleSpecificationList, | +| | | eventThrottlingState, suppressedNvPairs | +| | | | +| | | - Modifed the commonEventFormat json schema to v19 | +| | | | +| | | - Note: for the VendorEventListener: added new | +| | | licensing language on the back of the title page; | +| | | added an "attCopyrightNotice" definition at the top| +| | | of the commonEventFormat\_Vendors.json file; also | +| | | removed all references to internalHeaderFields from| +| | | this file and from the VendorEventListener 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, | +| | | measurementsForVfScaling and usage domains in the | +| | | domain enumeration | +| | | | +| | | - commonHeader: added the following domains to the | +| | | domain enumeration: licensingKci, scalingKpi, | +| | | stateChange | +| | | | +| | | - event: removed references to capacityFields, | +| | | measurementsForVfScalingFields and usageFields and | +| | | added references to licensingKciFields, | +| | | scalingKpiFields, stateChangeFields | +| | | | +| | | - licensingKciFields: added this section along with | +| | | 'additionalMeasurements', which is an optional list| +| | | of measurementGroup structures. Changed the name of| +| | | kciFieldsVersion to licensingKciFieldsVersion. | +| | | | +| | | - scalingKpiFields: added this section but changed | +| | | measurementFieldsVersion to scalingKpiFieldsVersion| +| | | | +| | | - stateChangeFields: added this section along with | +| | | 'additionalFields', 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 'additionalFields', 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 measurementsForVfScaling domain| +| | | back and removed the licensingKci and scalingKpi | +| | | domains | +| | | | +| | | - event: removed references to licensingKciFields and| +| | | scalingKpiFields; added references to | +| | | measurementsForVfScalingFields | +| | | | +| | | - measurementsForVfScalingFields: combined the | +| | | kciDetail and kpiDetail structures into the | +| | | measurementsForVfScalingFields 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, | +| | | scalingKpiFields and licensingKciFields | +| | | | +| | | - eventDomainThrottleSpecification: updated the | +| | | reference to commonEventHeader 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 | +| | | reportingEntityId and reportingEntityNames to the | +| | | same relative place in all sample requests in the | +| | | document | +| | | | +| | | - Fixed the sample request shown for | +| | | publishEventBatch to take an eventList as input. | +| | | | +| | | - Fixed the sample request shown for | +| | | publishSpecificTopic to put the topic in the URL | +| | | | +| | | - errors: changed the receiveErrors and | +| | | transmitErrors fields to be datatype number | +| | | | +| | | - codesInUse: changed 'codecUtilization' 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: commonEventHeader:version,| +| | | faultFields:faultFieldsVersion, | +| | | measurementsForVfScalingFields:measurementsForVf\ | +| | | ScalingFieldsVersion, stateChangeFields:state\ | +| | | ChangeFieldsVersion, sysLogFields:syslogFields\ | +| | | Version, thresholdCrossingAlertFields:threshold\ | +| | | CrossingFieldsVersion | +| | | | +| | | - stateChangeFields: made stateInterface mandatory | +| | | | +| | | - changed 'enum' to 'enumeration' throughout section | +| | | 4 of the document (note: this can't be done in the | +| | | JSON schema). | +| | | | +| | | - measurementsForVfScalingFields: made the following | +| | | fields optional: conurrentSessions, configured\ | +| | | Entitites, cpuUsageArray, fileSystemUsageArray, | +| | | memoryConfigured, memoryUsed, requestRate, | +| | | vNicUsageArray | +| | | | +| | | - measurementsForVfScalingFields: concurrentSessions | +| | | and configuredEntities: changed the description to | +| | | support both VMs and VNFs | +| | | | +| | | - measurementsFor VfScalingFields: clarified the | +| | | descriptions of latencyDistribution, measurement\ | +| | | Inverval and requestRate | +| | | | +| | | - syslogFields: clarified the descriptions of | +| | | syslogSData, syslogTag, syslogVer | +| | | | +| | | - thresholdCrossingAlertFields: 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: | +| | | 'measurementIntevalChange', | +| | | ‘provideThrottlingState’ and | +| | | 'throttlingSpecification'. | +| | | | +| | | - eventDomainThrottleSpecificationList: 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 | - measurementsForVfScaling block: made the following | +| | | fields optional: latencyDistribution (which is an | +| | | array of latencyBucketMeasure structures) and | +| | | meanRequestLatency. 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 publishSpecificTopic: fixed the sample to | +| | | conform to the latest changes | +| | | | +| | | - 6.4 publishEventBatch: fixed the sample to conform | +| | | to the latest changes | +| | | | +| | | - 6.5 provideThrottlingState operation: added the | +| | | Input Parameters section heading back and fixed the| +| | | sample request to provide eventThrottlingState | +| | | (instead of eventThrottlingClientState). | +| | | | +| | | - 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 reportingEntityId 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 measurementsForVf\ | +| | | ScalingFields to measurementsForVfScaling | +| | | | +| | | - eventDomainThrottleSpecificationList: added this | +| | | array of eventDomainThrottleSpecification stuctures| +| | | back to the schema because it is used by the | +| | | provideThrottlingState operation. | +| | | | +| | | - eventList: added eventList back to the vendor | +| | | version of the commonEventFormat. This is used by | +| | | the publishEventBatch operation. | +| | | | +| | | - faultFields datatype: | +| | | | +| | | - eventSourceType: made this a string (and | +| | | provided the previous enumerated values as | +| | | examples) | +| | | | +| | | - filesystemUsage datatype: | +| | | | +| | | - changed vmIdentifier to filesystemName | +| | | | +| | | - gtpPerFlowMetrics datatype: | +| | | | +| | | - flowActivationTime: changed the format and | +| | | description to be compliant with RFC 2822. | +| | | | +| | | - flowDeactivationTime: changed the format and | +| | | description to be compliant with RFC 2822. | +| | | | +| | | - internalHeaderFields datatype: | +| | | | +| | | - Added the following optional fields: firstDate\ | +| | | Time, lastDateTime compliant with RFC 2822. | +| | | Noted in the description that these fields must | +| | | be supplied for events in the following domains:| +| | | fault, thresholdCrossingAlerts and | +| | | measurementsForVfScaling. | +| | | | +| | | - ticketingTimestamp: 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) | +| | | | +| | | - thresholdCrossingAlerts dataypte: | +| | | | +| | | - collectionTimestamp: changed the format and | +| | | description to be compliant with RFC 2822. | +| | | | +| | | - eventStartTimestamp: changed the format and | +| | | description to be compliant with RFC 2822. | +| | | | +| | | - added the same eventSeverity field as from the | +| | | faultFields and made it required | ++-----------+---------+-------------------------------------------------------+ +| 9/23/2016 | v2.12 | - Section 4 Datatypes: commonEventHeader: made | +| | | reportingEntityName 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: | +| | | | +| | | - CommonEventFormat\_Vendors schema only: | +| | | codesInUse: changed required field from | +| | | "codecUtilization" which was removed previously | +| | | to "numberInUse" which is the new field name. | +| | | | +| | | - added ‘codecSelected’ datatype | +| | | | +| | | - added ‘codecSelectedTranscoding’ datatype | +| | | | +| | | - Section 4 and section 6: command processing: | +| | | | +| | | - Added commandListEntry which is an object that | +| | | references the command object. | +| | | | +| | | - commandList: changed commandList to contain an | +| | | array of commandListEntry objects. | +| | | | +| | | - Updated sample responses in section 6 where | +| | | commands are used | +| | | | +| | | - Section 4: commonEventHeader: | +| | | | +| | | - Incremented version to 1.2 | +| | | | +| | | - added two new values to the ‘domain’ | +| | | enumeration: ‘serviceEvents’ and ‘signaling | +| | | | +| | | - Section 4: added endOfCallVqmSummaries datatype | +| | | | +| | | - Section 4: ‘event’: added two fields: | +| | | ‘serviceEventsFields’ and ‘signalingFields’ | +| | | | +| | | - Section 4: added ‘eventInstanceIdentifier’datatype | +| | | | +| | | - Section 4: CommonEventListener only: | +| | | internalHeaderFields: | +| | | | +| | | - added ‘internalHeaderFieldsVersion’(initially | +| | | set to 1.1) | +| | | | +| | | - added ‘correlationFirstEpoch’ | +| | | | +| | | - added 'closedLoopControlName' | +| | | | +| | | - added 'closedLoopFlag' | +| | | | +| | | - added 'collectorTimeStamp' | +| | | | +| | | - added 'eventTag' | +| | | | +| | | - added ‘tenantName’ | +| | | | +| | | - changed 'operationalStatus' to 'inMaint' | +| | | | +| | | - added required fields in the schema to match the| +| | | word doc: 'equipmentNameCode', 'equipmentType', | +| | | 'equipmentVendor', 'inMaint', 'provStatus' | +| | | | +| | | - Section 4: added ‘marker’datatype | +| | | | +| | | - Section 4: added ‘midCallRtcp’ datatype | +| | | | +| | | - Section 4: mobileFlowFields: | +| | | | +| | | - added ‘mobileFlowFieldsVersion’(initially set to| +| | | 1.1) | +| | | | +| | | - Section 4: added ‘serviceEventsFields’datatype | +| | | | +| | | - Section 4: added ‘signalingFields’ datatype | +| | | | +| | | - Section 4: syslogFields: | +| | | | +| | | - Incremented syslogFieldsVersion to 1.2 | +| | | | +| | | - added 'syslogPri' | +| | | | +| | | - added 'syslogSev' | +| | | | +| | | - added ‘syslogSdId’ | +| | | | +| | | - Section 4: thresholdCrossingAlertFields: | +| | | | +| | | - Incremented thresholdCrossingFieldsVersion to | +| | | 1.2 | +| | | | +| | | - added 'additionalFields' 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 | +| | | | +| | | - codecSelectedTranscoding datatype: removed this | +| | | datatype | +| | | | +| | | - command datatype: added an enumerated value to | +| | | commandType: 'heartbeatIntervalChange' | +| | | | +| | | - commonEventHeader: added internalHeaderFields to| +| | | the commonEventHeader, 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." | +| | | | +| | | - commonEventHeader: removed two enumerated values| +| | | , 'serviceEvents' and 'signaling' from the | +| | | domain enumeration | +| | | | +| | | - commonEventHeader version: incremented the | +| | | version to 2.0 | +| | | | +| | | - endOfCallVqmSummaries 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 'serviceEventFields' and | +| | | 'signalingFields' from the definition | +| | | | +| | | - event: fixed a misspelling of | +| | | ‘thresholdCrossingAlertFields’, which was only | +| | | present in the Word document | +| | | | +| | | - eventInstanceIdentifier datatype: removed this | +| | | datatype | +| | | | +| | | - internalHeaderFIelds datatype: defined this as | +| | | follows: "The internalHeaderFields 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 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" | +| | | | +| | | - marker datatype: removed this datatype | +| | | | +| | | - measurementsForVfScalingFields datatype: | +| | | clarified that memoryConfigured and memoryUsed | +| | | are measured in MB | +| | | | +| | | - midCallRtcp datatype: removed this datatype | +| | | | +| | | - mobileFlowFields datatype: added | +| | | ‘additionalFields’ | +| | | | +| | | - mobileFlowFields datatype: incremented the | +| | | version number for this field block to 1.2 | +| | | | +| | | - serviceEventsFields 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 CommonEventFormat\_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 ‘heartbeatIntervalChange’ | +| | | 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 | +| | | heartbeatIntervalChange command; also corrected the| +| | | spelling in the samples for the | +| | | measurementIntervalChange 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 measurementsForVfScalingFields: | +| | | | +| | | - Fixed the spelling of measurementsForVf\ | +| | | ScalingFields in the Word document | +| | | | +| | | - Section 2 and 6 sample requests and responses: | +| | | | +| | | - Removed quotes from numbers: sequence, and | +| | | first/lastEpochMicrosec. | +| | | | +| | | - 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 alarmAdditionalInformation field array | +| | | to the sample requests. | +| | | | +| | | - Added missing commas. | +| | | | +| | | - Section 6.5.6.1 provideThrottlingState sample | +| | | requests: | +| | | | +| | | - Fixed the eventDomainThrottleSpecificationList | +| | | to pass an array of anonymous eventDomain\ | +| | | ThrottleSpecification objects. | +| | | | +| | | - Added missing quotes. | +| | | | +| | | - Fixed the suppressedNvPairsList to pass an array of| +| | | anonymous suppressedNvPairs 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 commandListEntry and returned | +| | | commandList to a simple array of commands. | +| | | | +| | | - Added heartbeatInterval to the command datatype.| +| | | | +| | | - Changed the datatype of measurementInterval from| +| | | number to integer. | +| | | | +| | | - Section 4.2 common event datatypes: | +| | | | +| | | - event dataType: Added heartbeatFields, | +| | | sipSignalingFields and voiceQualityFields to the| +| | | event datatype as optional field blocks | +| | | | +| | | - Added jsonObject which provides a json object | +| | | schema, name and other meta-information along | +| | | with one or more object instances. | +| | | | +| | | - Added jsonObjectInstance which provides | +| | | meta-information about an instance of a | +| | | jsonObject along with the actual object instance| +| | | | +| | | - Added the ‘key’ datatype | +| | | | +| | | - Added the namedArrayOfFields datatype | +| | | | +| | | - Added vendorVnfNameFields | +| | | | +| | | - Section 4.3 common event header fields: | +| | | | +| | | - Add two new enumerations to domain: | +| | | ‘sipSignaling’ and ‘voiceQuality’ | +| | | | +| | | - 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 functionalRole, which was replaced by | +| | | the following two fields. | +| | | | +| | | - Added nfNamingCode | +| | | | +| | | - Added nfcNamingCode | +| | | | +| | | - Changed version to 3.0 (major version change) | +| | | and made it a required field | +| | | | +| | | - Section 4.4: faultFields: | +| | | | +| | | - added one optional field: eventCategory | +| | | | +| | | - made faultFieldsVersion a required field | +| | | | +| | | - changed faultFieldsVersion to 2.0 (major version| +| | | change) | +| | | | +| | | - fixed a typo on the spelling of alarmInterfaceA | +| | | | +| | | - clarified field descriptions | +| | | | +| | | - Section 4.5: added heartbeatFields datatype which | +| | | can be used to communicate heartbeatInterval. 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 measurementsForVfScalingFields: | +| | | concurrentSessions, configuredEntities, | +| | | numberOfMediaPortsInUse, vnfcScalingMetric | +| | | | +| | | - In codecsInUse: numberInUse | +| | | | +| | | - In featuresInUse: featureUtilization | +| | | | +| | | - Section 4.6.2 modified cpuUsage | +| | | | +| | | - Section 4.6.3 added diskUsage | +| | | | +| | | - Section 4.6.7 measurementsForVfScalingFields: | +| | | | +| | | - fixed the spelling of the measurementsForVf\ | +| | | ScalingFields in the Word document | +| | | | +| | | - added additionalFields, which is an array of | +| | | fields (i.e., name-value pairs) | +| | | | +| | | - changed additionalMeasurements to reference the | +| | | common datatype namedArrayOfFields (instead of | +| | | referencing measurementGroup) | +| | | | +| | | - added additionalObjects which is an array of | +| | | jsonObjects described by name, keys and schema | +| | | | +| | | - deleted aggregateCpuUsage | +| | | | +| | | - added diskUsageArray | +| | | | +| | | - deleted measurementGroup (which was replaced by | +| | | the common datatype: namedArrayOfFields | +| | | | +| | | - added memoryUsageArray | +| | | | +| | | - deleted memoryConfigured and memoryUsed | +| | | | +| | | - deleted errors and vNicUsageArray | +| | | | +| | | - added vNicPerformanceArray | +| | | | +| | | - changed the measurementsForVfScalingVersion 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 mobileFlowFieldsVersion a required field | +| | | and changed the mobileFlowFieldsVersion to 2.0 | +| | | (major version change). | +| | | | +| | | - Changed the datatype of flowActivationTime and | +| | | flowDeactivationTime in the Word doc to string. | +| | | | +| | | - changed the following datatypes from number to | +| | | integer: otherEndpointPort, | +| | | reportingEndpointPort, samplingAlgorithm | +| | | | +| | | - Section 4.8: otherFields: | +| | | | +| | | - Added otherFieldsVersion (set at 1.1) | +| | | | +| | | - Added hashOfNameValuePairArrays | +| | | | +| | | - Added jsonObjects | +| | | | +| | | - Added nameValuePairs | +| | | | +| | | - Section 4.9: added sipSignaling domain datatypes | +| | | with 4.8.1 sipSignalingFields. sipSignalingFields\ | +| | | Version is set at 1.0 | +| | | | +| | | - Section 4.10 stateChangeFields: made stateChange\ | +| | | FieldsVersion a required field and set it to 2.0 | +| | | (major version change). | +| | | | +| | | - Section 4.11 syslogFields: | +| | | | +| | | - Changed the following datatypes from number to | +| | | integer: syslogFacility, syslogPri | +| | | | +| | | - Changed additionalFields from a field [ ] to a | +| | | string which takes name=value pairs delimited by| +| | | a pipe symbol. | +| | | | +| | | - Changed syslogFieldsVersion to 3.0 (major | +| | | version change) and made it a required field | +| | | | +| | | - Made syslogSev an enumerated string (previously | +| | | just a string) | +| | | | +| | | - Section 4.12 thresholdCrossingAlertFields: made | +| | | thresholdCrossingFieldsVersion a required field and| +| | | set it to 2.0 (major version change). | +| | | | +| | | - Section 4.132: added voice quality domain datatypes| +| | | with 4.13.1 endOfCallVqmSummaries and 4.13.2 | +| | | voiceQualityFields. voiceQualityFieldsVersion 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/lastEpochMicrosec. | +| | | | +| | | - 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 nfcNamingCode and removed| +| | | functionalRole | +| | | | +| | | - Section 6 call flows: updated the version number | +| | | (only in v5.0). | +| | | | +| | | - Section 6: removed the publishSpecificTopic | +| | | 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 alarmAdditionalInformation 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 commandListEntry objects). | +| | | | +| | | - Fixed the heartbeatIntervalChange commandType to| +| | | pass a heartbeatInterval value instead of a | +| | | measurementInterval value. | +| | | | +| | | - Removed quotes from the measurementInterval and | +| | | heartbeatInterval values since they are numbers.| +| | | | +| | | - Section 6.4.6.1 provideThrottlingState sample | +| | | requests(also incorporated in interim release 4.1):| +| | | | +| | | - Fixed the eventDomainThrottleSpecificationList | +| | | to pass an array of anonymous | +| | | eventDomainThrottleSpecification objects. | +| | | | +| | | - Added missing quotes. | +| | | | +| | | - Fixed the suppressedNvPairsList to pass an array| +| | | of anonymous suppressedNvPairs 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: | +| | | | +| | | - measurementGroup: deleted this object since it | +| | | was replaced with ‘namedArrayOfFields’ in v28.0 | +| | | and was no longer being used. | +| | | | +| | | - namedArrayOfFields: 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: measurementsForVfScaling 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 | +| | | | +| | | - ‘Measurements 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 | +| | | vnfVendorNameFields to vendorVnfNameFields. | +| | | 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 clientThrottlingState 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 "namedArrayOfFields" and added | +| | | "namedHashMap" | +| | | | +| | | - added arrayOfNamedHashMap | +| | | | +| | | - added arrayOfJsonObject | +| | | | +| | | - 4.2.1: Fault Domain Datatypes: | +| | | | +| | | - changed the faultFields version to 3.0 (major| +| | | change) | +| | | | +| | | - changed faultFields.alarmAdditional\ | +| | | Information to reference a hashMap | +| | | | +| | | - 4.2.2: Heartbeat Domain Datatypes: | +| | | | +| | | - changed the heartbeatFieldsVersion to 2.0 | +| | | (major change) | +| | | | +| | | - changed heartbeatFields.additionalFields to | +| | | reference a hashMap | +| | | | +| | | - 4.2.3: Measurement Domain Datatypes: | +| | | | +| | | - changed the measurementFieldsVersion to 3.0 | +| | | (major change) | +| | | | +| | | - changed measurementFields.additionalFields to| +| | | reference a hashMap | +| | | | +| | | - changed measurement.additionalMesurements to | +| | | reference a namedHashMap [ ] | +| | | | +| | | - modified measurementFields.featureUsageArray | +| | | to reference a hashmap and removed | +| | | ‘featuresInUse’ | +| | | | +| | | - added the following datatypes which are now | +| | | referenced as items in arrays within | +| | | measurementFields: hugePages, load, | +| | | machineCheckException, processStats | +| | | | +| | | - 4.2.5: Other Domain Datatypes: | +| | | | +| | | - Change the otherFieldsVersion to 2.0 (major | +| | | change) | +| | | | +| | | - changed otherFields.nameValuePairs to | +| | | reference a hashMap and renamed it hashMap | +| | | | +| | | - changed otherFields.hashOfNameValuePair\ | +| | | Arrrays to reference a namedHashMap and | +| | | renamed it arrayOfNamedHashMap | +| | | | +| | | - 4.2.7: State Change Domain Datatypes: | +| | | | +| | | - changed the stateChangeFiledsVersion to 3.0 | +| | | (major change) | +| | | | +| | | - changed stateChangeFields.additionalFields to| +| | | reference a hashMap | +| | | | +| | | - 4.2.9: Threshold Crossing Alert Domain | +| | | Datatypes: | +| | | | +| | | - changed the thresholdCrossingAlertFields\ | +| | | Version to 3.0 (major change) | +| | | | +| | | - changed thresholdCrossingAlert\ | +| | | Fields.additionalFields to reference a | +| | | hashMap | +| | | | +| | | - counter: removed name and value elements and | +| | | replaced with a hashMap | +| | | | +| | | - 4.3.1: Mobile Flow Domain Datatypes: | +| | | | +| | | - changed the mobileFlowFieldsVersion to 3.0 | +| | | (major change) | +| | | | +| | | - changed mobileFlowFields.additionalFields to | +| | | reference a hashMap | +| | | | +| | | - gtpPerFlowMetrics: modified ipTosCountList to| +| | | reference hashmap | +| | | | +| | | - gtpPerFlowMetrics: modified mobileQciCos\ | +| | | CountList to reference hashmap | +| | | | +| | | - gtpPerFlowMetrics: modified tcpFlagCountList | +| | | to reference hashmap | +| | | | +| | | - 4.3.2: Sip Signaling Domain Datatypes: | +| | | | +| | | - changed the sigSignalingFieldsVersion to 2.0 | +| | | (major change) | +| | | | +| | | - changed sipSignalingFields.additional\ | +| | | Information to reference a hashMap | +| | | | +| | | - 4.3.3: Voice Quality Domain Datatypes: | +| | | | +| | | - change the voiceQualityFieldsVersion to 2.0 | +| | | (major change) | +| | | | +| | | - changed voiceQualityFields.additional\ | +| | | Information 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 | +| | | vendorVnfNameFields 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, | +| | | reportingEntityName, sourceName and | +| | | startEpochMicroseconds. | +| | | | +| | | - Added ‘notification’ and ‘pngRegistration’ 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 ‘measurementsForVfScaling’ to | +| | | ‘measurement’ | +| | | | +| | | - measurementsForVfScaling measurement | +| | | | +| | | - measurementsForVfScalingFields measurementFields| +| | | | +| | | - measurementsForVfScalingVersion | +| | | measurementFieldsVersion | +| | | | +| | | - the ‘mfvs’ abbreviation measurement | +| | | | +| | | - Measurements Domain Section 4.2.3 cpuUsage: added | +| | | seven optional fields to this structure: | +| | | cpuCapacityContention, cpuDemandAvg, cpuDemandMhz, | +| | | cpuDemandPct, cpuLatencyAverage, cpuOverheadAvg, | +| | | cpuSwapWaitTime | +| | | | +| | | - Measurements Domain Section 4.2.3 diskUsage: added | +| | | ten optional fields to this structure: | +| | | diskBusResets, diskCommandsAborted, diskCommandsAvg| +| | | , diskFlushRequests, diskFlushTime, | +| | | diskReadCommandsAvg, diskTime, diskTotalRead\ | +| | | LatencyAvg, diskTotalWriteLatencyAvg, diskWrite\ | +| | | CommandsAvg | +| | | | +| | | - Measurements Domain Section 4.2.3: added a new | +| | | ‘ipmi’ datatype along with following ‘supporting’ | +| | | datatypes: ipmiBaseboardTemperature, ipmiBaseboard\| +| | | VoltageRegulator, ipmiBattery, ipmiFan, ipmiGlobal\| +| | | AggregateTemperatureMargin, ipmiHsbp, ipmiNic, | +| | | ipmiPowerSupply, ipmiProcessor, processorDimm\ | +| | | AggregateThermalMargin | +| | | | +| | | - 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, memorySwapInRateAvg, memorySwap\ | +| | | OutAvg, memorySwapOutRateAvg, memorySwapUsedAvg | +| | | | +| | | - Measurements Domain Section 4.2.3: modified | +| | | measurementFields to include the following new | +| | | fields: hugePagesArray, ipmi, loadArray, memory\ | +| | | Errors, processStatusArray, rdtArray | +| | | | +| | | - Measurements Domain Section 4.2.3 renamed vNic\ | +| | | Performance to nicPerformance and changed vNic\ | +| | | Identifer to nicIdentifier | +| | | | +| | | - Notification Domain Section 4.2.4: added | +| | | notificationFields to support a new notification | +| | | domain. | +| | | | +| | | - pnfRegistration Domain Section 4.2.7: added | +| | | pnfRegistrationFields 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. | +| | | | +| | | - endOfCallVqmSummaries Section 4.3.3.1: | +| | | | +| | | - converted endpointJitter into two fields: | +| | | endpointAverageJitter and endpointMaxJitter | +| | | | +| | | - converted localJitter into two fields: | +| | | localAverageJitter and localMaxJitter | +| | | | +| | | - added two fields: localAverageJitterBufferDelay | +| | | and localMaxJitterBufferDelay | +| | | | +| | | - added endpointRtpOctetsLost and | +| | | endpointRtpPacketsLost | +| | | | +| | | - added localRtpOctetsLost and localRtpPacketsLost| +| | | | +| | | - 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 | +| | | additionalInformation 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, eventDomainThrottleSpecification, | +| | | eventDomainThrottleSpecificationList, | +| | | eventThrottlingState, suppressedNvPairs | +| | | | +| | | - Removed Section 6.1 description of commands | +| | | toward event source clients | +| | | | +| | | - Removed Section 6.4 operation: | +| | | provideThrottlingState | ++-----------+---------+-------------------------------------------------------+ +| 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 " ‘additionalProperties’: 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 additionalFields to a hashMap | +| | | | +| | | - Section 4: | +| | | | +| | | - Fixed section heading numbers that were the same| +| | | | +| | | - 4.1.1: jsonObjectInstance: added an optional | +| | | recursive jsonObject and removed all required | +| | | fields from this object | +| | | | +| | | - 4.1.2: commonEventHeader: | +| | | | +| | | - nfVendorName: added this optional field | +| | | | +| | | - timeZoneOffset: 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) | +| | | | +| | | - vesCommonEventListenerVersion: 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: | +| | | diskWeightedIoTimeAve, diskWeightedIoTimeLast| +| | | , diskWeightedIoTimeMax, | +| | | diskWeightedIoTimeMin | +| | | | +| | | - memoryUsage: add one new optional field: | +| | | percentMemoryUsage | +| | | | +| | | - nicPerformance: added nine new optional | +| | | fields: administrativeState, operationalState| +| | | , receivedPercentDiscard, | +| | | receivedPercentError, receivedUtilization, | +| | | speed, transmittedPercentDiscard, | +| | | transmittedPercentError, | +| | | transmittedUtilization | +| | | | +| | | - processorDimmAggregateThermalMargin: make the| +| | | thermalMargin field required | +| | | | +| | | - 4.2.8: Syslog Domain: | +| | | | +| | | - Corrected the example at the end of the section | ++-----------+---------+-------------------------------------------------------+ +| 7/31/2018 | v7.0.1 | - Section 4: The schema embedded at the top of | +| | | section 4 was patched to correct a header field | +| | | name error—the schema version moves from 30 to | +| | | 30.0.1: | +| | | | +| | | - Changed commonEventHeader field: ‘vesCommon\ | +| | | EventFormatVersion’ field to ‘vesEventListener\ | +| | | Version’ and set the enum to 7.0.1 | +| | | | +| | | - Also changed the commonEventHeader ‘required’ | +| | | array to reflect use the corrected field name: | +| | | ‘vesEventListenerVersion’ | +| | | | +| | | - Changed the commonEventHeader ‘version’ field | +| | | enumeration to 4.0.1 | +| | | | +| | | - Section1: | +| | | | +| | | - Changed the field block versions for the common | +| | | header for ‘vesEventListenerVersion’ (to 7.0.1) | +| | | and ‘version’ (to 4.0.1). | +| | | | +| | | - Sections 2 and 6: | +| | | | +| | | - Changed the commonEventHeader version fields | +| | | above, in the sample message requests and | +| | | responses; also updated the faultFieldsVersion | +| | | to 4.0 | +| | | | +| | | - Section 6.1.2: Changed the X-LatestVersion to 7.0.1| +| | | and the X-PatchVersion to 1 | ++-----------+---------+-------------------------------------------------------+ +| 12/10/2018| v7.1 | - Section 1.2: Added Notification domain Perf3gpp | +| | | domain and changed a reference from ‘measurements | +| | | domain’ to ‘measurement domain’. | +| | | | +| | | - Section 1.7.1: Field Block Versions: added | +| | | ‘perf3gppFields’ version at 1.0 and changed the | +| | | following version enumerations so that existing | +| | | clients of major version 7 would not be broken by | +| | | this VES minor version change, in accordance with | +| | | semantic versioning definitions: | +| | | | +| | | - commonEventHeader: changed to | +| | | ‘vesEventListenerVersion’ enum to accept either | +| | | 7.0 or 7.0.1 or 7.1. | +| | | | +| | | - commonEventHeader: changed ‘version’ enum to | +| | | accept either 4.0 or 4.0.1 or 4.1 | +| | | | +| | | - Section 2: | +| | | | +| | | - changed sample request and responses to | +| | | reference 7.1 instead of 7.0.1 (and version 4.1 | +| | | of the commonEventHeader version, instead of | +| | | v4.0.1) | +| | | | +| | | - added a sub section on service provider support | +| | | for mutual ssl certificate authentication | +| | | | +| | | - Section 4.1.2.1: | +| | | | +| | | - CommonEventHeader timeZoneOffset changed | +| | | description from ‘UTC+/-hh.mm’ to ‘UTC+/-hh:mm’ | +| | | | +| | | - Added ‘perf3gpp’ to the domain enumeration | +| | | | +| | | - Section 4.2.3: Measurement Domain Datatypes: | +| | | | +| | | - In ‘MeasurementFields’: Changed ‘ipmiArray’ to | +| | | ‘ipmi’ and made the type ‘object’ | +| | | | +| | | - ‘ipmiProcessor’: changed | +| | | ‘pprocessorThermalControl’ to | +| | | ‘processorThermalControl’ | +| | | | +| | | - ‘machineCheckException’: changed | +| | | ‘processIdentifier’ to ‘vmIdentifier’ | +| | | | +| | | - Section 4.2.6: added the perf3gpp domain | +| | | | +| | | - Section 4 embedded schema: | +| | | | +| | | - Changed the schema version from 30.0.1 to 30.1 | +| | | as a result of the changes below: | +| | | | +| | | - commonEventHeader: changed to | +| | | ‘vesEventListenerVersion’ enum to accept either | +| | | 7.0, 7.0.1 or 7.1 | +| | | | +| | | - commonEventHeader: changed the ‘version’ field | +| | | enumeration to accept either 4.0, 4.0.1 or 4.1 | +| | | | +| | | - commonEventHeader: changed the ‘domain’ | +| | | enumeration to add support for the perf3gpp | +| | | domain. | +| | | | +| | | - ‘event’: added a reference to ‘perf3gppFields’ | +| | | | +| | | - ‘hugePages’: changed the type of | +| | | hugePagesIdentifier from number to string | +| | | | +| | | - ‘ipmiGlobalAggregateTemperatureMargin’: changed | +| | | ‘pmiGlobalAggregateTemperatureMarginIdentifier’ | +| | | to ‘globalAggregateTemperatureMarginIdentifier’ | +| | | | +| | | - ‘perf3gppFields’: added this object | +| | | | +| | | - Section 6: changed references throughout from | +| | | v7.0.1 to v7.1 and v4.0.1 (of the commonEventHeader| +| | | version) to v4.1 | +| | | | +| | | - Changed the location of the doc to VNF | +| | | Requirements and changed the formatting | ++-----------+---------+-------------------------------------------------------+ +| 1/28/202 | v7.1.1 | - Changed event sizes from 2Mb to 1Mb | +| | | - Configuration Requirement comments addressed | +| | | - Changed DCAE Collector to VES Event Listener | +| | | - Replaced VNF with NF where appropriate | +| | | - Updated publishAnyEvent and publishBatchEvent to | +| | | clarify both one way and mutual TLS are supported | +| | | - Changed authorization for publishEventBatch | +| | | because certification authorization is also | +| | | supported | +| | | - Updated fault use case in EventId Use Case | +| | | Examples based on Ericsson feedback | +| | | - Added new Configuration Requirements section | +| | | - Added new Event Domain Requirements section | +| | | - Updated security requirements based on agreements | +| | | in ONAP Security Committee with details on 2-way | +| | | certificate support | +| | | - Provided clarifications on event buffering | +| | | - Added Event Handling Requirements for | +| | | publishEventFlow | +| | | - Updated Field Block Versions to support existing | +| | | clients of major version 7 | +| | | - Updated sample request and response schemas | +| | | - Updated embedded schema as follows: | +| | | | +| | | * Changed schema version to 30.1.1 | +| | | * Changed measValues to measValuesList and similar | +| | | changes throughout | +| | | * Changed iMeasTypesList to sMeasTypesList | +| | | - Corrected publishEventBatch call flow diagram | +| | | - Changed AuthorizationHeader to Required? = NO for | +| | | publishAnyEvent operation | +| | | - Relaxed various requirements related to camel | +| | | casing of values from 'must' to 'should' | ++-----------+---------+-------------------------------------------------------+ + +.. _time_zone_abbreviations: https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations +.. _Common_definitions: http://technical.openmobilealliance.org/Technical/release_program/docs/REST_NetAPI_Common/V1_0-20120417-C/OMA-TS-REST_NetAPI_Common-V1_0-20120417-C.pdf |