Merge "Support VNFM for AutoHeal and AutoScale"
This commit is contained in:
commit
cf2e683508
|
@ -0,0 +1,698 @@
|
|||
======================================================================
|
||||
Support VNFM for AutoHeal and AutoScale with External Monitoring Tools
|
||||
======================================================================
|
||||
|
||||
https://blueprints.launchpad.net/tacker/+spec/support-auto-lcm
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Zed release supported Fault Management / Performance Management (FM/PM)
|
||||
interfaces, and AutoHeal and AutoScale with
|
||||
External Monitoring Tools [#Zed_Spec]_.
|
||||
However, Heal or Scale execution must be triggered by NFVO.
|
||||
|
||||
This spec provides some implementations for supporting receiving alerts
|
||||
from External Monitoring Tools and VNFM(tacker)-driven AutoHeal and
|
||||
AutoScale without NFVO. This implementation only supports VNF and CNF
|
||||
instantiated through Tacker's v2 API.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The following changes are needed:
|
||||
|
||||
#. Add AutoHeal RESTful API to receive alerts sent from External Monitoring
|
||||
Tool.
|
||||
|
||||
+ POST /alert/auto_healing
|
||||
|
||||
#. Modify AutoScale RESTful API to receive alerts sent from External Monitoring
|
||||
Tool.
|
||||
|
||||
+ POST /alert/auto_scaling
|
||||
|
||||
#. Add fields in config file to determine if AutoHeal should be
|
||||
triggered or not.
|
||||
|
||||
.. note::
|
||||
|
||||
The External Monitoring Tool is a monitoring service. That is not
|
||||
included in Tacker. Operators implement the External Monitoring
|
||||
Tool. The External Monitoring Tool uses metrics service such as
|
||||
Prometheus and triggers AutoHeal and AutoScale events using the
|
||||
Prometheus Plugin interface.
|
||||
|
||||
Prometheus Plugin
|
||||
-----------------
|
||||
|
||||
The Prometheus Plugin is a sample implementation that operates Prometheus
|
||||
specific function.
|
||||
In this spec, there are two APIs in the Prometheus Plugin for receiving
|
||||
requests sent by Prometheus, and then calling Tacker's Heal or Scale
|
||||
interfaces.
|
||||
|
||||
The Prometheus Plugin is an optional feature. The AutoHeal and AutoScale
|
||||
APIs can be enabled in ``tacker.conf``.
|
||||
|
||||
.. code-block::
|
||||
|
||||
[prometheus_plugin]
|
||||
auto_healing = True
|
||||
auto_scaling = True
|
||||
|
||||
Triggering of AutoHeal
|
||||
----------------------
|
||||
|
||||
When the External Monitoring Tool detects the VNF or CNF resource failure
|
||||
or problem, it will send an alert message to Tacker.
|
||||
Tacker receives the alert and validates it. Then Tacker calls the internal
|
||||
Heal function for the resource.
|
||||
Use this Heal method to repair the failure and problem of VNF or CNF
|
||||
resources.
|
||||
|
||||
Design of Heal operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following is a schematic diagram of Heal:
|
||||
|
||||
.. code-block::
|
||||
|
||||
+--------------------------------------------------------------------------+
|
||||
| VNFM |
|
||||
| +------------------------+ +----------------------------+ |
|
||||
| | Tacker | | Tacker | |
|
||||
| | Server | | Conductor | |
|
||||
+----------------+ | | | | | |
|
||||
| External | 2. POST | | 3. Check parameters and confirm vnfc_info_id | |
|
||||
| Monitoring | alert | | +------------+ | | | +--------+ |
|
||||
| Tool +----------------> Prometheus +-------------------------------------------> Tacker | |
|
||||
| (based on | | | | Plugin | | | | | DB | |
|
||||
| Prometheus) | | | +------+-----+ | | | +--------+ |
|
||||
+--+-------------+ | | | 4. Heal | | | |
|
||||
| 1. Collect metrics | | | | | | |
|
||||
| | | +------v-----+ | | +---------------+ | |
|
||||
| | | | Vnflcm +--------------> Vnflcm Driver +--+ | |
|
||||
| | | | Controller | | | +---------------+ | | |
|
||||
| | | +------------+ | | +---------v--+ | |
|
||||
| | | | | | Infra +--------------+ |
|
||||
| | | | | | Driver | | | |
|
||||
| | | | | +------------+ | | |
|
||||
| | +------------------------+ +----------------------------+ | |
|
||||
| +----------------------------------------------------------------------|---+
|
||||
| |
|
||||
| +-----------------------------------------------------------------+ |
|
||||
| | Kubernetes | |
|
||||
| | +---------------+-----------------------------------+
|
||||
| | 5. Delete failed | | 6. Create new Pod | |
|
||||
| | Pod | | | |
|
||||
| | +--------v----+ +------v------+ +-------------+ | |
|
||||
| | | +--------+ | | +--------+ | | | | |
|
||||
+----------------------------------> | Pod | | | | Pod | | | | | |
|
||||
| | | +--------+ | | +--------+ | | | | |
|
||||
| | | Worker | | Worker | | Master | | |
|
||||
| | +-------------+ +-------------+ +-------------+ | |
|
||||
| +-----------------------------------------------------------------+ |
|
||||
| |
|
||||
| +-----------------------------------------------------------------+ |
|
||||
| | OpenStack | |
|
||||
| | +---------------+-----------------------------------+
|
||||
| | 5. Delete failed | | 6. Create new VM |
|
||||
| | VM | | |
|
||||
| | +--------v----+ +------v------+ +-------------+ |
|
||||
| | | +--------+ | | +--------+ | | | |
|
||||
+----------------------------------> | VM | | | | VM | | | | |
|
||||
| | +--------+ | | +--------+ | | | |
|
||||
| | Compute | | Compute | | Controller | |
|
||||
| +-------------+ +-------------+ +-------------+ |
|
||||
+-----------------------------------------------------------------+
|
||||
|
||||
#. External Monitoring Tool collects metrics and decides whether
|
||||
triggering alert is needed or not.
|
||||
|
||||
#. External Monitoring Tool sends POST request to
|
||||
``/alert/auto_healing``.
|
||||
|
||||
#. Prometheus Plugin receives the alert request and validates its content.
|
||||
Then it confirms that the ``vnfc_info_id`` in the alert request exists
|
||||
in the DB.
|
||||
|
||||
#. Heal operation is triggered.
|
||||
|
||||
#. The specified VM or Pod is deleted.
|
||||
|
||||
#. New VM or Pod is created.
|
||||
|
||||
Request parameters for operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The detail of API is described at `REST API impact`_.
|
||||
|
||||
Sequence for operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following describes the processing flow of the Tacker after
|
||||
the External Monitoring Tool sends the alert.
|
||||
|
||||
.. seqdiag::
|
||||
|
||||
seqdiag {
|
||||
node_width = 150;
|
||||
edge_length = 160;
|
||||
|
||||
"External Monitoring Tool"
|
||||
"Prometheus Plugin"
|
||||
"Vnflcm Controller"
|
||||
"Vnflcm Driver"
|
||||
"Tacker DB"
|
||||
|
||||
"External Monitoring Tool" -> "Prometheus Plugin"
|
||||
[label = "1. POST /alert/auto_healing"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "2. Check if this API is enabled in Prometheus Plugin"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "3. Check the status of the received alert"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "4. Check if this alert is for AutoHeal"];
|
||||
"Prometheus Plugin" -> "Tacker DB"
|
||||
[label = "5. Find the corresponding resource from the DB"];
|
||||
"Prometheus Plugin" <-- "Tacker DB"
|
||||
[label = "vnf_instance"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "6. Check whether the resource has AutoHeal enabled"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "7. Check vnfc_info_id in vnf_instance"];
|
||||
"Prometheus Plugin" -> "Vnflcm Controller"
|
||||
[label = "8. Call the internal Heal function"];
|
||||
"Vnflcm Controller" -> "Vnflcm Driver"
|
||||
[label = "9. Trigger asynchronous task", note = "The same with the default Heal operation"];
|
||||
"Prometheus Plugin" <-- "Vnflcm Controller"
|
||||
[label = "Response 202 Accepted"];
|
||||
"External Monitoring Tool" <-- "Prometheus Plugin"
|
||||
[label = "Response 204 No Content"];
|
||||
}
|
||||
|
||||
#. As an External Monitoring Tool, Prometheus monitors specified resources
|
||||
through user-defined rules. When the data monitored by Prometheus matches
|
||||
the conditions of the rule, Prometheus will send an alert to Tacker.
|
||||
|
||||
#. After Tacker receives the alert, Prometheus Plugin first checks that the
|
||||
value of the ``auto_healing`` field in ``tacker.conf`` is True. If not,
|
||||
the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of the ``status`` field in alert
|
||||
is ``firing``. If not, the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of the ``function_type`` field
|
||||
in alert is ``auto_heal``. If not, the process is terminated.
|
||||
|
||||
#. According to the value of ``vnf_instance_id`` in the label in the alert,
|
||||
Prometheus Plugin gets the corresponding ``vnf_instance`` from the DB.
|
||||
|
||||
#. Prometheus Plugin checks that the key of ``isAutohealEnabled`` exists in
|
||||
``vnf_instance.vnfConfigurableProperties`` and its value is True. If
|
||||
not, the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of ``vnfc_info_id`` in the alert
|
||||
request exists in ``vnf_instance.vnfc_info``.
|
||||
|
||||
#. According to the values of ``vnf_instance_id`` and ``vnfc_info_id``,
|
||||
Prometheus Plugin calls the internal Heal function of vnflcm.
|
||||
|
||||
#. From this step, it is completely the same with the default Heal operation.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
The default Heal operation is ``all = False`` and
|
||||
specified VNFC instances are healed.
|
||||
When ``all = True`` is set, specified VNFC instances and
|
||||
storage resources are healed.
|
||||
|
||||
.. note::
|
||||
|
||||
When multiple alerts occur, the alerts should be aggregated or filtered.
|
||||
This implementation will prevent repeated heal operations.
|
||||
|
||||
Triggering of AutoScale
|
||||
-----------------------
|
||||
|
||||
When the External Monitoring Tool detects that the CPU, memory, disk and
|
||||
other resources of the VNF or CNF are underloaded or overloaded, it will
|
||||
send an alert message to Tacker. Tacker receives the alert and validates
|
||||
it. Then Tacker calls the internal Scale function for the resource. Use
|
||||
this Scale method to balance underloaded or overloaded VNF or CNF resources.
|
||||
|
||||
Design of Scale operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following is a schematic diagram of Scale:
|
||||
|
||||
.. code-block::
|
||||
|
||||
+--------------------------------------------------------------------------+
|
||||
| VNFM |
|
||||
| +------------------------+ +----------------------------+ |
|
||||
| | Tacker | | Tacker | |
|
||||
| | Server | | Conductor | |
|
||||
+----------------+ | | | | | |
|
||||
| External | 2. POST | | 3. Check parameters and confirm aspect_id | |
|
||||
| Monitoring | alert | | +------------+ | | | +--------+ |
|
||||
| Tool +----------------> Prometheus +-------------------------------------------> Tacker | |
|
||||
| (based on | | | | Plugin | | | | | DB | |
|
||||
| Prometheus) | | | +------+-----+ | | | +--------+ |
|
||||
+--+-------------+ | | | 4. Scale | | | |
|
||||
| 1. Collect metrics | | | | | | |
|
||||
| | | +------v-----+ | | +---------------+ | |
|
||||
| | | | Vnflcm +--------------> Vnflcm Driver +--+ | |
|
||||
| | | | Controller | | | +---------------+ | | |
|
||||
| | | +------------+ | | +---------v--+ | |
|
||||
| | | | | | Infra +--------------+ |
|
||||
| | | | | | Driver | | | |
|
||||
| | | | | +------------+ | | |
|
||||
| | +------------------------+ +----------------------------+ | |
|
||||
| +----------------------------------------------------------------------|---+
|
||||
| |
|
||||
| +-----------------------------------------------------------------+ |
|
||||
| | Kubernetes | |
|
||||
| | +---------------+-----------------------------------+
|
||||
| | | | 5. Create or Delete Pod | |
|
||||
| | | | | |
|
||||
| | +--------v----+ +------v------+ +-------------+ | |
|
||||
| | | +--------+ | | +--------+ | | | | |
|
||||
+----------------------------------> | Pod | | | | Pod | | | | | |
|
||||
| | | +--------+ | | +--------+ | | | | |
|
||||
| | | Worker | | Worker | | Master | | |
|
||||
| | +-------------+ +-------------+ +-------------+ | |
|
||||
| +-----------------------------------------------------------------+ |
|
||||
| |
|
||||
| +-----------------------------------------------------------------+ |
|
||||
| | OpenStack | |
|
||||
| | +---------------+-----------------------------------+
|
||||
| | | | 5. Create or Delete VM |
|
||||
| | | | |
|
||||
| | +--------v----+ +------v------+ +-------------+ |
|
||||
| | | +--------+ | | +--------+ | | | |
|
||||
+----------------------------------> | VM | | | | VM | | | | |
|
||||
| | +--------+ | | +--------+ | | | |
|
||||
| | Compute | | Compute | | Controller | |
|
||||
| +-------------+ +-------------+ +-------------+ |
|
||||
+-----------------------------------------------------------------+
|
||||
|
||||
#. External Monitoring Tool collects metrics and decides whether
|
||||
triggering alert is needed or not.
|
||||
|
||||
#. External Monitoring Tool sends POST request to
|
||||
``/alert/auto_scaling``.
|
||||
|
||||
#. Prometheus Plugin receives the alert request and validates its content.
|
||||
Then it confirms that the ``aspect_id`` in the alert request exists in
|
||||
the DB.
|
||||
|
||||
#. Scale out/in operations are triggered.
|
||||
|
||||
#. There are two types of Scale processing:
|
||||
|
||||
* If the Scale out operation is triggered, the VM or Pod in the
|
||||
corresponding VDU is created.
|
||||
|
||||
* If the Scale in operation is triggered, the VM or Pod in the
|
||||
corresponding VDU is deleted.
|
||||
|
||||
Request parameters for operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The detail of API is described at `REST API impact`_.
|
||||
|
||||
Sequence for operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following describes the processing flow of
|
||||
the Tacker after the External Monitoring Tool sends the alert.
|
||||
|
||||
.. seqdiag::
|
||||
|
||||
seqdiag {
|
||||
node_width = 150;
|
||||
edge_length = 160;
|
||||
|
||||
"External Monitoring Tool"
|
||||
"Prometheus Plugin"
|
||||
"Vnflcm Controller"
|
||||
"Vnflcm Driver"
|
||||
"Tacker DB"
|
||||
|
||||
"External Monitoring Tool" -> "Prometheus Plugin"
|
||||
[label = "1. POST /alert/auto_scaling"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "2. Check if this API is enabled in Prometheus Plugin"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "3. Check the status of the received alert"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "4. Check if this alert is for AutoScale"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "5. Check that the received alert contains a valid type of Scale"];
|
||||
"Prometheus Plugin" -> "Tacker DB"
|
||||
[label = "6. Find the corresponding resource from the DB"];
|
||||
"Prometheus Plugin" <-- "Tacker DB"
|
||||
[label = "vnf_instance"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "7. Check whether the resource has AutoScale enabled"];
|
||||
"Prometheus Plugin" -> "Prometheus Plugin"
|
||||
[label = "8. Check aspect_id in vnf_instance"];
|
||||
"Prometheus Plugin" -> "Vnflcm Controller"
|
||||
[label = "9. Call the internal Scale function"];
|
||||
"Vnflcm Controller" -> "Vnflcm Driver"
|
||||
[label = "10. Trigger asynchronous task", note = "The same with the default Scale operation"];
|
||||
"Prometheus Plugin" <-- "Vnflcm Controller"
|
||||
[label = "Response 202 Accepted"];
|
||||
"External Monitoring Tool" <-- "Prometheus Plugin"
|
||||
[label = "Response 204 No Content"];
|
||||
}
|
||||
|
||||
#. As an External Monitoring Tool, Prometheus monitors specified resources
|
||||
through user-defined rules. When the data monitored by Prometheus matches
|
||||
the conditions of the rule, Prometheus will send an alert to Tacker.
|
||||
|
||||
#. After Tacker receives the alert, Prometheus Plugin first checks that
|
||||
the value of the ``auto_scaling`` field in ``tacker.conf`` is True. If
|
||||
not, the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of the ``status`` field in alert
|
||||
is ``firing``. If not, the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of the ``function_type`` field
|
||||
in alert is ``auto_scale``. If not, the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of the ``auto_scale_type`` field
|
||||
in alert must be ``SCALE_OUT`` or ``SCALE_IN``. If not, the process is
|
||||
terminated.
|
||||
|
||||
#. According to the value of ``vnf_instance_id`` in the label in the
|
||||
alert, Prometheus Plugin gets the corresponding ``vnf_instance`` from
|
||||
the DB.
|
||||
|
||||
#. Prometheus Plugin checks that the key of ``isAutoscaleEnabled`` exists in
|
||||
``vnf_instance.vnfConfigurableProperties`` and its value is True. If
|
||||
not, the process is terminated.
|
||||
|
||||
#. Prometheus Plugin checks that the value of ``aspect_id`` in the alert
|
||||
request exists in ``vnf_instance.scale_status``.
|
||||
|
||||
#. According to the values of ``vnf_instance_id``, ``auto_scale_type``
|
||||
and ``aspect_id``, Prometheus Plugin calls the internal Scale
|
||||
function of vnflcm.
|
||||
|
||||
#. From this step, it is completely the same with the default Scale operation.
|
||||
|
||||
.. note::
|
||||
|
||||
The default Scale operation is ``numberOfSteps = 1`` and
|
||||
one VNFC instance is scaled.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
The following RESTful API is Tacker specific interface
|
||||
used for AutoHeal between Tacker and External Monitoring Tool.
|
||||
|
||||
* | **Name**: Send an AutoHeal alert event
|
||||
| **Description**: Receive the AutoHeal alert sent from External
|
||||
Monitoring Tool
|
||||
| **Method type**: POST
|
||||
| **URL for the resource**: /alert/auto_healing
|
||||
| **Request**:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 18 10 50
|
||||
|
||||
* - Data type
|
||||
- Cardinality
|
||||
- Description
|
||||
* - AutoHealAlertEvent
|
||||
- 1
|
||||
- the AutoHeal alert sent from External Monitoring Tool
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 18 18 10 50
|
||||
|
||||
* - Attribute name (AutoHealAlertEvent)
|
||||
- Data type
|
||||
- Cardinality
|
||||
- Description
|
||||
* - alerts
|
||||
- Structure
|
||||
- 1..N
|
||||
- List of all alert objects in this group.
|
||||
* - >status
|
||||
- String
|
||||
- 1
|
||||
- Defines whether or not the alert is resolved or currently firing.
|
||||
* - >labels
|
||||
- Structure
|
||||
- 1
|
||||
- A set of labels to be attached to the alert.
|
||||
* - >>receiver_type
|
||||
- String
|
||||
- 1
|
||||
- Type of receiver: tacker
|
||||
* - >>function_type
|
||||
- String
|
||||
- 1
|
||||
- Type of function: auto_heal
|
||||
* - >>vnfInstanceId
|
||||
- Identifier
|
||||
- 1
|
||||
- Identifier of vnf instance.
|
||||
* - >>vnfcInfoId
|
||||
- String
|
||||
- 1
|
||||
- Identifier of vnfc info.
|
||||
* - >startsAt
|
||||
- DateTime
|
||||
- 1
|
||||
- The time the alert started firing.
|
||||
* - >endsAt
|
||||
- DateTime
|
||||
- 0..1
|
||||
- The end time of an alert.
|
||||
* - >fingerprint
|
||||
- String
|
||||
- 1
|
||||
- Fingerprint that can be used to identify the alert.
|
||||
|
||||
| **Response**:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 18 10 18 50
|
||||
|
||||
* - Data type
|
||||
- Cardinality
|
||||
- Response Codes
|
||||
- Description
|
||||
* - n/a
|
||||
-
|
||||
- Success: 204
|
||||
- Shall be returned when a request has been read successfully.
|
||||
* - ProblemDetails
|
||||
- See clause 6.4 of [#NFV-SOL013_331]_
|
||||
- Error: 4xx/5xx
|
||||
- In addition to the response codes defined above, any
|
||||
common error response code as defined in clause 6.4 of
|
||||
ETSI GS NFV-SOL 013 [#NFV-SOL013_331]_ may be returned.
|
||||
|
||||
The following RESTful API is Tacker specific interface
|
||||
used for AutoScale between Tacker and External Monitoring Tool.
|
||||
|
||||
* | **Name**: Send an AutoScale alert event
|
||||
| **Description**: Receive the AutoScale alert sent from External
|
||||
Monitoring Tool
|
||||
| **Method type**: POST
|
||||
| **URL for the resource**: /alert/auto_scaling
|
||||
| **Request**:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 18 10 50
|
||||
|
||||
* - Data type
|
||||
- Cardinality
|
||||
- Description
|
||||
* - AutoScaleAlertEvent
|
||||
- 1
|
||||
- the AutoScale alert sent from External Monitoring Tool
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 18 18 10 50
|
||||
|
||||
* - Attribute name (AutoScaleAlertEvent)
|
||||
- Data type
|
||||
- Cardinality
|
||||
- Description
|
||||
* - alerts
|
||||
- Structure
|
||||
- 1..N
|
||||
- List of all alert objects in this group.
|
||||
* - >status
|
||||
- String
|
||||
- 1
|
||||
- Defines whether or not the alert is resolved or currently firing.
|
||||
* - >labels
|
||||
- Structure
|
||||
- 1
|
||||
- A set of labels to be attached to the alert.
|
||||
* - >>receiver_type
|
||||
- String
|
||||
- 1
|
||||
- Type of receiver: tacker
|
||||
* - >>function_type
|
||||
- String
|
||||
- 1
|
||||
- Type of function: auto_scale
|
||||
* - >>auto_scale_type
|
||||
- String
|
||||
- 1
|
||||
- Type of Scale: SCALE_OUT or SCALE_IN
|
||||
* - >>vnfInstanceId
|
||||
- Identifier
|
||||
- 1
|
||||
- Identifier of vnf instance.
|
||||
* - >>aspectId
|
||||
- String
|
||||
- 1
|
||||
- The target VDU to Scale.
|
||||
* - >startsAt
|
||||
- DateTime
|
||||
- 1
|
||||
- The time the alert started firing.
|
||||
* - >endsAt
|
||||
- DateTime
|
||||
- 0..1
|
||||
- The end time of an alert.
|
||||
* - >fingerprint
|
||||
- String
|
||||
- 1
|
||||
- Fingerprint that can be used to identify the alert.
|
||||
|
||||
| **Response**:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 18 10 18 50
|
||||
|
||||
* - Data type
|
||||
- Cardinality
|
||||
- Response Codes
|
||||
- Description
|
||||
* - n/a
|
||||
-
|
||||
- Success: 204
|
||||
- Shall be returned when a request has been read successfully.
|
||||
* - ProblemDetails
|
||||
- See clause 6.4 of [#NFV-SOL013_331]_
|
||||
- Error: 4xx/5xx
|
||||
- In addition to the response codes defined above, any
|
||||
common error response code as defined in clause 6.4 of
|
||||
ETSI GS NFV-SOL 013 [#NFV-SOL013_331]_ may be returned.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Kenta Fukaya <kenta.fukaya.xv@hco.ntt.co.jp>
|
||||
|
||||
Yuta Kazato <yuta.kazato.nw@hco.ntt.co.jp>
|
||||
|
||||
Other contributors:
|
||||
Koji Shimizu <shimizu.koji@fujitsu.com>
|
||||
|
||||
Yoshiyuki Katada <katada.yoshiyuk@fujitsu.com>
|
||||
|
||||
Ayumu Ueha <ueha.ayumu@fujitsu.com>
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Implement Tacker to support:
|
||||
|
||||
* External Monitoring interface
|
||||
|
||||
* Add new Rest API ``POST /alert/auto_healing``
|
||||
to receive the AutoHeal alert sent from External Monitoring Tool.
|
||||
* Modify Rest API ``POST /alert/auto_scaling``
|
||||
to receive the AutoScale alert sent from External Monitoring Tool.
|
||||
|
||||
* Add new unit and functional tests.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Unit and functional tests will be added to cover cases required in the spec.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
* Complete user guide will be added to explain how to AutoHeal and
|
||||
AutoScale by External Monitoring Tool.
|
||||
|
||||
* Update API documentation on the API additions mentioned in
|
||||
`REST API impact`_.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
.. [#Zed_Spec] https://specs.openstack.org/openstack/tacker-specs/specs/zed/prometheus-plugin-autoheal-and-autoscale.html
|
||||
|
||||
.. [#NFV-SOL013_331] https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/03.03.01_60/gs_nfv-sol013v030301p.pdf
|
Loading…
Reference in New Issue