1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
4 Doctor capabilities and usage
5 =============================
7 :numref:`figure1` shows the currently implemented and tested architecture of
8 Doctor. The implementation is based on OpenStack and related components. The
9 Monitor can be realized by a sample Python-based implementation provided in the
10 Doctor code repository. The Controller is realized by OpenStack Nova, Neutron
11 and Cinder for compute, network and storage, respectively. The Inspector can be
12 realized by OpenStack Congress, Vitrage or a sample Python-based implementation also
13 available in the code repository of Doctor. The Notifier is realized by
16 .. figure:: images/figure1.png
20 Implemented and tested architecture
23 Immediate Notification
24 ----------------------
26 Immediate notification can be used by creating 'event' type alarm via
27 OpenStack Alarming (Aodh) API with relevant internal components support.
30 - Upstream spec document:
31 https://specs.openstack.org/openstack/ceilometer-specs/specs/liberty/event-alarm-evaluator.html
32 - Aodh official documentation:
33 https://docs.openstack.org/aodh/latest
35 An example of a consumer of this notification can be found in the Doctor
36 repository. It can be executed as follows:
40 git clone https://gerrit.opnfv.org/gerrit/doctor
41 cd doctor/doctor_tests/consumer
43 python sample.py "$CONSUMER_PORT" > consumer.log 2>&1 &
45 Consistent resource state awareness
46 -----------------------------------
48 Resource state of compute host can be changed/updated according to a trigger
49 from a monitor running outside of OpenStack Compute (Nova) by using
53 * Upstream spec document: https://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/mark-host-down.html
54 * Upstream Compute API reference document: https://developer.openstack.org/api-ref/compute
55 * Doctor Mark Host Down Manual: https://git.opnfv.org/doctor/tree/docs/development/manuals/mark-host-down_manual.rst
57 Valid compute host status given to VM owner
58 -------------------------------------------
60 The resource state of a compute host can be retrieved by a user with the
61 OpenStack Compute (Nova) servers API.
64 * Upstream spec document: https://specs.openstack.org/openstack/nova-specs/specs/mitaka/implemented/get-valid-server-state.html
65 * Upstream Compute API reference document: https://developer.openstack.org/api-ref/compute
66 * Doctor Get Valid Server State Manual: https://git.opnfv.org/doctor/tree/docs/development/manuals/get-valid-server-state.rst
68 Port data plane status update
69 -----------------------------
71 Port data plane status can be changed/updated in the case of issues in the underlying data plane
72 affecting connectivity from/to Neutron ports.
75 * Upstream spec document: https://specs.openstack.org/openstack/neutron-specs/specs/pike/port-data-plane-status.html
76 * Upstream Networking API reference document: https://developer.openstack.org/api-ref/network
78 Doctor driver (Congress)
79 ------------------------
81 The Doctor driver can be notified about NFVI failures that have been detected by monitoring systems.
84 * Upstream spec document: https://specs.openstack.org/openstack/congress-specs/specs/mitaka/push-type-datasource-driver.html
85 * Congress official documentation: https://docs.openstack.org/congress/latest
89 With this API, monitoring systems can push events to the Doctor datasource.
92 * Upstream spec document: https://specs.openstack.org/openstack/vitrage-specs/specs/ocata/event-api.html
93 * Vitrage official documentation: https://docs.openstack.org/vitrage/latest
95 Doctor datasource (Vitrage)
96 ---------------------------
97 After receiving events from monitoring systems, the Doctor datasource identifies the affected resources based on the resource topology.
100 * Upstream spec document: https://specs.openstack.org/openstack/vitrage-specs/specs/ocata/doctor-datasource.html