1 .. Modifications Copyright © 2017-2018 AT&T Intellectual Property
2 Modifications Copyright © 2020 Nokia Solutions and Networks
4 .. Licensed under the Creative Commons License, Attribution 4.0 Intl.
5 (the "License"); you may not use this documentation except in compliance
6 with the License. You may obtain a copy of the License at
8 .. https://creativecommons.org/licenses/by/4.0/
10 .. Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
16 Monitoring & Management
17 -----------------------
19 In ONAP, DCAE is responsible of collecting, receiving, and analyzing
20 NF monitoring data. This data serves the basis for tracking the health,
21 performance, and operational status of the NF. DCAE provides a
22 number of predefined interfaces based upon accepted, open standards to support
23 monitoring data ingestion. Some of these interfaces collect data by polling or
24 pulling data from the NF using standard protocols. Other DCAE interfaces receive
25 monitoring data (such as VES events) that are pushed from the NFs.
27 A NF that produces monitoring data and uses protocols that are compatible with
28 ONAP's predefined monitoring ingestion capabilities can easily be integrated
29 with ONAP through simple configuration rather than custom development.
31 This chapter will define the expected requirements for a NF to easily integrate
32 with an instance of ONAP.
34 Monitoring and Fault Protocol Selection
35 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
37 This section provides the proper guidance on how a NF should determine the
38 protocol and data format for providing a specific types of telemetry data to
47 The VNF or PNF **MUST** report faults and alarms using either
48 :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
49 or :ref:`SNMP <snmp_monitoring_requirements>`. (NOTE: See relevant sections
50 for more detailed requirements)
58 The VNF or PNF **MUST** report performance metrics using
59 :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
60 or :ref:`bulk_performance_measurement`.
68 The VNF or PNF **MUST** report application logs using either
69 :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
70 or Syslog in compliance with
71 `RFC 5424 <https://tools.ietf.org/html/rfc5424>`__ .
80 The VNF or PNF producing VES syslog events **SHOULD** restrict these
81 events to those that convey significant errors or warnings needed to support
82 the operation or troubleshooting of the VNF or PNF. It is expected the
83 volume of such events would be lower (e.g. less than 2000 per day) than
84 more detailed events produced in the course of normal operations.
90 :introduced: casablanca
92 :validation_mode: in_service
95 The VNF or PNF producing VES events **SHOULD** deliver syslog messages
96 that meet the criteria in R-209104 to the VES Event Listener using the
97 ``syslog`` VES domain.
105 The VNF or PNF **MUST** report heartbeats using
106 :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`.
112 :introduced: casablanca
114 :validation_mode: in_service
117 The VNF or PNF **MAY** leverage ONAP's High Volume VNF Event Streaming
118 (HV-VES) when there is a need to deliver large volumes of real-time
119 performance management metrics. See
120 :doc:`HV-VES collector <dcae:sections/services/ves-hv/index>`
121 service details for more information.
125 :target: VNF or PNF PROVIDER
128 :validation_mode: none
131 VNF or PNF Provider **MUST** have agreement with the Service Provider before
132 utilizing the :doc:`HV-VES option <dcae:sections/services/ves-hv/index>`
133 for monitoring as this option does not fully integrate with the ONAP's DCAE
134 event processing capabilities.
140 :introduced: casablanca
142 :validation_mode: in_service
143 :impacts: dcae, dmaap
145 The VNF or PNF **MAY** leverage a bulk VNF or PNF telemetry transmission
146 mechanism in instances where other transmission
147 methods are not practical or advisable.
149 NOTE: For additional information and use cases for the Bulk Telemetry
150 Transmission Mechanism, please refer to
151 the :ref:`bulk_performance_measurement` requirements and the
152 `5G - Bulk PM ONAP Development <https://wiki.onap.org/display/DW/5G+-+Bulk+PM>`__
162 The VNF or PNF **MAY** produce telemetry data using the
163 :doc:`RESTConf Collector <dcae:sections/services/restconf/index>`, but this
164 requires additional coordination with the operator to appropriately
165 map the data internally to a VES-like structure used within ONAP. If this
166 option is needed, then the VNF or PNF Provider must coordinate with with the
167 Operator for the data to be successfully collected and processed by DCAE.
169 .. _snmp_monitoring_requirements:
171 SNMP Monitoring Requirements
172 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
180 If the VNF or PNF is using SNMP, then the VNF or PNF Provider **MUST**
181 provide a Management Information Base (MIB) file that uniquely identifies
182 and describes all SNMP events exposed by the network function.
190 If the VNF or PNF is using SNMP, then the VNF or PNF Provider **SHOULD**
191 provide examples of all SNMP alarms.
193 .. _ves_monitoring_requirements:
195 Virtual Function Event Streaming (VES) Client Requirements
196 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
198 The VES protocol enables NFs to transmit telemetry data in a non-proprietary,
199 extensible format to ONAP using the HTTP protocol. This chapter will define
200 the requirements for a NF to deliver events to ONAP's VES event listeners in
201 a manner that conforms with the appropriate VES Event Listener specifications,
202 and ensures the NF can be configured to maximize the reliability of telemetry
206 Event Definition and Registration
207 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
211 :target: VNF or PNF PROVIDER
213 :introduced: casablanca
215 :validation_mode: static
218 If the VNF or PNF is using VES, then the VNF or PNF Provider **MUST** provide
219 a YAML file formatted in adherence with the
220 :ref:`VES Event Registration specification <ves_event_registration_3_2>`
221 that defines the following information for each event produced by the VNF:
226 * Any special handling to be performed for that event
230 :target: VNF or PNF PROVIDER
232 :introduced: casablanca
234 :validation_mode: static
237 A VNF or PNF Provider utilizing VES **MUST** indicate specific conditions
238 that may arise, and recommend actions that may be taken at specific
239 thresholds, or if specific conditions repeat within a specified time
240 interval, using the semantics and syntax described by the
241 :ref:`VES Event Registration specification <ves_event_registration_3_2>`.
243 **NOTE:** The Service Provider may override VNF or PNF provider Event
244 Registrations using the ONAP SDC Design Studio to finalizes Service
245 Provider engineering rules for the processing of the VNF or PNF events.
246 These changes may modify any of the following:
249 * Specified actions related to conditions
253 :target: VNF or PNF PROVIDER
255 :introduced: casablanca
257 :validation_mode: in_service
260 The VNF or PNF Provider **MAY** require that specific events, identified by
261 their ``eventName``, require that certain fields, which are optional in the
262 common event format, must be present when they are published.
264 Event Formatting and Usage
265 ~~~~~~~~~~~~~~~~~~~~~~~~~~
271 :introduced: casablanca
273 :validation_mode: in_service
276 The VES events produced by the VNF or PNF **MUST** be compliant with the
277 common event formats defined in one of the following specifications:
279 * :ref:`VES Event Listener 5.4.1<ves_event_listener_5_4_1>`
280 * :ref:`VES Event Listener 7.1.1<ves_event_listener_7_1>`
281 * :ref:`VES Event Listener 7.2<ves_event_listener_7_2>`
283 The latest version (7.2) should be preferred. Earlier versions are
284 provided for backwards compatibility.
290 :introduced: casablanca
292 :validation_mode: in_service
295 The VES events produced by the VNF or PNF **MUST** conform to the schema and
296 other formatting requirements specified in the relevant VES Event Listener
303 :introduced: casablanca
305 :validation_mode: in_service
308 A VNF or PNF producing VES events **MUST NOT** send information through
309 extensible structures if the event specification has explicitly defined
310 fields for that information.
316 :introduced: casablanca
318 :validation_mode: in_service
321 A VNF or PNF producing VES events **SHOULD** leverage camel case to
322 separate words and acronyms used as keys that will be sent through extensible
323 fields. When an acronym is used as the key, then only the first letter shall
330 :introduced: casablanca
332 :validation_mode: none
335 A VNF or PNF producing VES events **MUST** pass all information it is
336 able to collect even if the information field is identified as optional.
337 However, if the data cannot be collected, then optional fields can be
345 :validation_mode: none
348 The VNF or a PNF producing VES stndDefined domain events to report
349 standards-organization defined events to ONAP, **MUST** set the
350 event.stndDefinedNamespace property. By default, ONAP ships with support
355 * 3GPP-FaultSupervision
356 * 3GPP-PerformanceAssurance
358 Another namespace, outside of the list provided, needs to registered in ONAP in coordination
359 with the operator before it can be used.
366 :validation_mode: none
369 If the VNF or PNF producing VES stndDefined domain events provides
370 the event.stndDefinedFields.schemaReference then it **MUST** set its value
371 to the publicUrl value in DCAE's VES Collector `etc/externalRepo/schema-map.json <https://github.com/onap/dcaegen2-collectors-ves/blob/guilin/etc/externalRepo/schema-map.json/>`_
372 that describes the data being sent in event.stndDefinedFields.data.
379 :validation_mode: none
382 If the VNF or PNF producing VES stndDefined domain events provides
383 the event.stndDefinedFields.schemaReference then it **MUST** only pass events
384 that conform to schema references previously registered with DCAE otherwise
385 the event will be rejected. By default, ONAP ships with support for schemas
386 found in DCAE's VES Collector `etc/externalRepo/schema-map.json <https://github.com/onap/dcaegen2-collectors-ves/blob/guilin/etc/externalRepo/schema-map.json/>`_.
393 :validation_mode: none
396 The VNF or PNF Provider producing stndDefined events **MUST** coordinate with
397 the operator, willing to validate stndDefined events, to configure DCAE to
398 accept any new event schema prior to sending those events or the events
406 :validation_mode: none
409 If the VNF or PNF producing VES stndDefined domain events provides
410 the event.stndDefinedFields.schemaReference then it **MUST** set the
411 event.stndDefined.schemaReference property to an exact structure,
412 from supported schemaReference, describing the notification within
413 an openAPI specification, using JSON Pointer as URI fragment e.g.
414 “https://forge.3gpp.org/.../faultMnS.yaml#/components/schemas/notifyNewAlarm"
416 Configuration Requirements
417 ~~~~~~~~~~~~~~~~~~~~~~~~~~
419 This section defines the types the configuration options and defaults a NF
420 producing VES events should provide to ensure the NF can be configured properly
421 for the Service Provider's ONAP environment and ensure reliable delivery of
424 There are several methods available to provide configuration settings to a
425 network function. This document does not specify the exact manner in which
426 the configuration elements described below must be required. The
427 configuration can be provided during instantiation (e.g. preload), provided by
428 an ONAP controller action, or provided manually.
436 The VNF or PNF producing VES events **MUST** allow the configuration of
437 the attributes defined in Table 1 and utilize the provided default value
438 (where applicable) when the configuration value is not provided by the
447 A VNF or PNF producing VES events **SHOULD** use the recommended parameter
448 name for the configurable value from Table 1.
450 .. table:: **Table 1**: VES Configurable Values
452 +----------------------+-----------------------------------+----------------+-------------------------------------+
453 |Parameter | Description | Default | Parameter Name (VES 7.2+) |
454 +======================+===================================+================+=====================================+
455 |VES Listener Endpoint | FQDN or IP of the Event Listener | n/a | ves_listener_endpoint |
456 +----------------------+-----------------------------------+----------------+-------------------------------------+
457 |Heartbeat Interval | Frequency in seconds the NF must | 60 | ves_heartbeat_interval_seconds |
458 | | send a heartbeat to the event | | |
460 +----------------------+-----------------------------------+----------------+-------------------------------------+
461 |Timeout Value | Duration in seconds the NF should | 5 | ves_timeout_seconds |
462 | | wait for ACK from the event | | |
463 | | listener before timeout | | |
464 +----------------------+-----------------------------------+----------------+-------------------------------------+
465 |Measurement Interval | Window size in seconds to use for | 300 | ves_measurement_interval_seconds |
466 | | aggregated measurements | | |
467 +----------------------+-----------------------------------+----------------+-------------------------------------+
468 |HTTP Username | Required if NF supports HTTP | n/a | ves_http_username |
469 | | Basic Authentication with the | | |
470 | | VES Event Listener | | |
471 +----------------------+-----------------------------------+----------------+-------------------------------------+
472 |HTTP Password | Required if NF supports HTTP | n/a | ves_http_password |
473 | | Basic Authentication with the | | |
474 | | VES Event Listener | | |
475 +----------------------+-----------------------------------+----------------+-------------------------------------+
478 VES Listener Endpoint and DNS Resolution
479 ++++++++++++++++++++++++++++++++++++++++
481 In a high availability deployment of a VES Event Listener, a round-robin DNS or
482 dynamic DNS may be used to either load balance or provide fault tolerance of
483 the Event Listener. Adherence to the following requirements ensure the VNF or
484 PNF interacts properly with this deployment configuration.
492 The VNF or PNF **MUST** support DNS resolution of the VES Listener Endpoint
493 if a Fully Qualified Domain Name (FQDN) is provided.
501 The VNF or PNF **MUST** respect the Time To Live provided by the DNS for
502 the VES Event Listener FQDN.
504 Event Delivery Requirements
505 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
513 The VNF or PNF producing VES events **MUST** deliver VES events as it
514 becomes available or according to the configured measurement interval.
522 The VNF or PNF producing VES events **MUST** respect the configured
523 VES Timeout Value when delivering VES events, and abort any call where
524 the VES Event Listener does not successfully acknowledge the delivery of
525 event(s) within the Timeout Value. These failed transactions should be
526 buffered and retried in accordance with the
527 :ref:`ves_buffering_requirements` Requirements.
535 The VNF or PNF producing VES events **SHOULD NOT** send syslog events to the
536 VES Event Listener during debug mode, but rather store syslog events locally
537 for access or possible file transfer.
539 .. _ves_buffering_requirements:
541 Buffering and Redelivery
542 ~~~~~~~~~~~~~~~~~~~~~~~~
544 To maximize the reliable delivery of VES events when the VES Listener becomes
545 unavailable or unhealthy, the NF must adhere to these requirements.
553 A VNF or PNF producing VES events **MUST** buffer events that meet the
554 following criteria if the VES Event Listener is unreachable or the request
555 encounters a timeout.
557 * Faults with eventSeverity of ``MINOR``, ``MAJOR``, ``NORMAL``, or
559 * Syslog with syslogSev of ``Emergency``, ``Alert``, ``Critical``,
560 ``Error``, or ``Warning``
561 * All measurement events
569 A VNF or PNF producing VES events **MUST** size the event buffer
570 referenced in R-658596 such that it can buffer a minimum of 1 hours of
571 events under nominal load.
579 A VNF or PNF producing VES events **MAY** discard buffered events older
580 than a maximum retention period, not less than 1 hour, even if the event
581 was never successfully delivered to the event listener. While discarding
582 based on this retention period is supported for backwards compatibility, it
583 is recommended to retain events until the maximum buffer size is reached per
584 R-346137 as that will maximize the number of events delivered.
592 A VNF or PNF producing VES events that is buffering events per R-658596
593 **MUST** store in-scope events even when the maximum capacity of the
594 buffer (defined in R-636251) has been reached. To make room for new events
595 in this situation, hte oldest event in the buffer shall be removed
596 as necessary. (i.e. First In First Out)
604 A VNF or PNF producing VES events that is buffering events due to an
605 unavailable VES Event Listener **MUST** redeliver all buffered events
606 according to the following rules when the VNF or PNF detects the VES Event
607 Listener has become available:
609 * Deliver all previously buffered events before sending new events
610 * Deliver buffered events in the order they were received
618 The VNF or PNF producing VES events **MUST** not allow an unavailable or
619 timing out VES Event Listener to impact the performance, stability, or
620 correct execution of network function.
628 A VNF or PNF producing VES events that is buffering events due to an
629 unavailable VES Event Listener **MAY** leverage to ``publishEventBatch``
630 operation to redeliver buffered events. Please note this can only be
631 used when all buffered events belong to the same domain due to the
632 restrictions in place for the operation.
643 The VNF or PNF **MUST** encrypt any content containing Sensitive Personal
644 Information (SPI) or certain proprietary data, in addition to applying the
645 regular procedures for securing access and delivery.
655 The VNF or PNF **MUST** utilize one of the authentication methods
656 prescribed by the relevant VES Event Listener specification.
658 .. _bulk_performance_measurement:
660 Bulk Performance Measurement
661 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
667 :introduced: casablanca
669 :impacts: dcae, dmaap
671 The VNF or PNF **SHOULD** support FileReady VES event for event-driven bulk transfer
678 :introduced: casablanca
680 :impacts: dcae, dmaap
682 The VNF or PNF **SHOULD** support File transferring protocol, such as FTPES or SFTP,
683 when supporting the event-driven bulk transfer of monitoring data.
689 :introduced: casablanca
691 :impacts: dcae, dmaap
693 The VNF or PNF **SHOULD** support the data schema defined in 3GPP TS 32.435 or 3GPP TS 28.532, when
694 supporting the event-driven bulk transfer of monitoring data.
701 :impacts: dcae, dmaap
703 The VNF or PNF **SHOULD** report the files in FileReady for as long as they are
704 available at VNF or PNF.
706 Note: Recommended period is at least 24 hours.
709 .. |image0| image:: ../Data_Model_For_Event_Records.png
711 .. |image1| image:: ../VES_JSON_Driven_Model.png
715 .. |image2| image:: ../Protocol_Buffers_Driven_Model.png
719 .. |image3| image:: ../Bulk_Data_Transfer_Mechv1.png