API Documentation for Monitoring Framework
Change-Id: I52ab48a647ded83774dd8a20649c76abc3e67c61 Implements: blueprint health-monitoring
This commit is contained in:
parent
0773f4e1a1
commit
5c71fda659
124
doc/source/devref/monitor-api.rst
Normal file
124
doc/source/devref/monitor-api.rst
Normal file
@ -0,0 +1,124 @@
|
||||
Tacker Monitoring Framework
|
||||
============================
|
||||
|
||||
This section will introduce tacker monitoring framework and describes the
|
||||
various actions that a user can take when a specific event occurs.
|
||||
|
||||
- Introduction
|
||||
- How to write a new monitor driver
|
||||
- Events
|
||||
- Actions
|
||||
- How to write TOSCA template to monitor VNF entities
|
||||
|
||||
Introduction
|
||||
-------------
|
||||
|
||||
Tacker monitoring framework provides the NFV operators and VNF vendors to
|
||||
write a pluggable driver that monitors the various status coditions of the
|
||||
VNF entities it deploys and manages.
|
||||
|
||||
How to write a new monitor driver
|
||||
----------------------------------
|
||||
|
||||
A monitor driver for tacker is a python module which contains a class that inherits
|
||||
from "tacker.vm.monitor_drivers.abstract_driver.VNFMonitorAbstractDriver".
|
||||
If the driver depends/imports more than one module, then create a new python
|
||||
package under tacker/vm/monitor_drivers folder. After this we have to mention
|
||||
our driver path in setup.cfg file in root directory.
|
||||
|
||||
For example:
|
||||
tacker.servicevm.monitor_drivers =
|
||||
ping = tacker.vm.monitor_drivers.ping.ping:VNFMonitorPing
|
||||
|
||||
The methods that need to override in driver are:
|
||||
1)def get_type(self)
|
||||
This method must return the type of driver ex: ping
|
||||
|
||||
2)def get_name(self)
|
||||
This method must return the symbolic name of the device monitor plugin
|
||||
|
||||
3)def get_description(self)
|
||||
This method must return the description for the monitor driver
|
||||
|
||||
4)def monitor_get_config(self, plugin, context, device)
|
||||
This method must return dict of monitor configuration data
|
||||
|
||||
5)def monitor_url(self, plugin, context, device)
|
||||
This method must return the url of device to monitor
|
||||
|
||||
6)def monitor_call(self, device, kwargs)
|
||||
This method must either return boolean value True if VNF is healthy or return
|
||||
a event string like 'failure' or 'calls-capacity-reached' for specific VNF health
|
||||
condition.
|
||||
|
||||
Custom events
|
||||
--------------
|
||||
As mentioned above, the return value of monitor_call is health status. If the
|
||||
return value of monitor_call is other than boolean value True, then we have to
|
||||
map those event to the corresponding action as described below.
|
||||
|
||||
For example:
|
||||
vdu1:
|
||||
monitoring_policy:
|
||||
ping:
|
||||
actions:
|
||||
failure: respawn
|
||||
In this example we have an event called 'failure'. So whenever monitor_call returns
|
||||
'failure' tacker will respawn the VNF.
|
||||
|
||||
|
||||
Actions
|
||||
--------
|
||||
The available actions that a monitor driver can call when a particular event
|
||||
occurs
|
||||
|
||||
1)respawn
|
||||
2)log_and_kill
|
||||
3)log
|
||||
|
||||
How to write TOSCA template to monitor VNF entities
|
||||
----------------------------------------------------
|
||||
|
||||
In the vdus section, under vdu you can specify the monitors details with
|
||||
corresponding actions and parameters.The syntax for writing monitor policy
|
||||
is as follows:
|
||||
|
||||
vduN:
|
||||
monitoring_policy:
|
||||
<monitoring-driver-name>:
|
||||
monitoring_params:
|
||||
<param-name>: <param-value>
|
||||
...
|
||||
actions:
|
||||
<event>: <action-name>
|
||||
...
|
||||
...
|
||||
|
||||
|
||||
Example Template
|
||||
----------------
|
||||
::
|
||||
|
||||
vdu1:
|
||||
monitoring_policy:
|
||||
ping:
|
||||
actions:
|
||||
failure: respawn
|
||||
|
||||
vdu2:
|
||||
monitoring_policy:
|
||||
http-ping:
|
||||
monitoring_params:
|
||||
port: 8080
|
||||
url: ping.cgi
|
||||
actions:
|
||||
failure: respawn
|
||||
|
||||
acme_scaling_driver:
|
||||
monitoring_params:
|
||||
resource: cpu
|
||||
threshold: 10000
|
||||
actions:
|
||||
max_foo_reached: scale_up
|
||||
min_foo_reached: scale_down
|
||||
|
Loading…
Reference in New Issue
Block a user