diff --git a/05-osm-usage.md b/05-osm-usage.md index fa3eedc7a50ca75cccd22fac5b805d2f4269b75b..c7548b686826e09f10999d4ed49d92ca019adb6f 100644 --- a/05-osm-usage.md +++ b/05-osm-usage.md @@ -10,11 +10,11 @@ Before going on, download the required VNF and NS packages from this URL: Admin --> VNF Packages (*Open List*) - - Click on the Onboard VNFD button + - Go to 'VNF Packages' on the 'Packages' menu to the left - Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area. ![Onboarding a VNF](assets/600px-Vnfd_onboard_r4.png) @@ -48,11 +47,10 @@ osm vnfd-create cirros_vnf.tar.gz osm vnfd-list ``` -### Onboarding a NS +### Onboarding a NS Package - From the UI: - - Go to Projects --> Admin --> NS Packages (*Open List*) - - Click on the Onboard NSD button + - Go to 'NS Packages' on the 'Packages' menu to the left - Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area. ![Onboarding a NS](assets/600px-Nsd_onboard_r4.png) @@ -68,12 +66,12 @@ osm nsd-list #### Instantiating a NS from the UI -- Go to Projects --> Admin --> NS Packages (*Open List*) -- Next the NS descriptor to be instantiated, click on Launch +- Go to 'NS Packages' on the 'Packages' menu to the left +- Next the NS descriptor to be instantiated, click on the 'Instantiate NS' button. ![Instantiating a NS (assets/600px-Nsd_list.png)](assets/600px-Nsd_list.png) -- Fill in the form, adding at least a name and selecting the VIM: +- Fill in the form, adding at least a name, description and selecting the VIM: ![Instantiating a NS (assets/600px-New_ns.png)](assets/600px-New_ns.png) @@ -92,16 +90,16 @@ Thus, when creating a NS instance, it is possible to pass instantiation paramete ### Specify a VIM network name for a NS VLD -In a generic way, the mapping can be specified in the following way, where `vldnet` is the name of the network in the NS descriptor and `netVIM1` is the VIM network that you want to use: +In a generic way, the mapping can be specified in the following way, where `vldnet` is the name of the network in the NS descriptor and `netVIM1` is the existing VIM network that you want to use: ```yaml --config '{vld: [ {name: vldnet, vim-network-name: netVIM1} ] }' ``` -You can try it using one of the examples of the hackfest (**descriptors: [hackfest1-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_vnfd.tar.gz), [hackfest1-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_nsd.tar.gz); images: [ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [creating a basic VNF and NS](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 2 - Creating a basic VNF and NS.pdf)**) in the following way: +You can try it using one of the examples of the hackfest (**descriptors: [hackfest-basic_vnfd ](https://osm-download.etsi.org/ftp/osm-6.0-six/8th-hackfest/packages/hackfest-basic_vnfd.tar.gz), [hackfest-basic_nsd](https://osm-download.etsi.org/ftp/osm-6.0-six/8th-hackfest/packages/hackfest-basic_nsd.tar.gz); images: [ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2); presentation: [creating a basic VNF and NS](https://osm-download.etsi.org/ftp/osm-6.0-six/8th-hackfest/presentations/8th%20OSM%20Hackfest%20-%20Session%202.1%20-%20Creating%20a%20basic%20VNF%20and%20NS.pdf)**) in the following way: ```bash -osm ns-create --ns_name hf1 --nsd_name hackfest1-ns --vim_account openstack1 --config '{vld: [ {name: mgmtnet, vim-network-name: mgmt} ] }' +osm ns-create --ns_name hf-basic --nsd_name hackfest-basic_nsd --vim_account openstack1 --config '{vld: [ {name: mgmtnet, vim-network-name: mgmt} ] }' ``` ### Specify a VIM network name for an internal VLD of a VNF @@ -112,6 +110,7 @@ In this scenario, the mapping can be specified in the following way, where `"1"` --config '{vnf: [ {member-vnf-index: "1", internal-vld: [ {name: internal, vim-network-name: netVIM1} ] } ] }' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -120,12 +119,13 @@ osm ns-create --ns_name hf2 --nsd_name hackfest2-ns --vim_account openstack1 -- ### Specify IP profile information and IP for a NS VLD -In a generic way, the mapping can be specified in the following way, where `datanet` is the name of the network in the NS descriptor, ip-profile you have to fill the associated parameters with the data model ( [NS data model](http://osm-download.etsi.org/ftp/osm-doc/nsd.html#) ), and vnfd-connection-point-ref is the reference to the connection point: +In a generic way, the mapping can be specified in the following way, where `datanet` is the name of the network in the NS descriptor, ip-profile is where you have to fill the associated parameters from the data model ( [NS data model](http://osm-download.etsi.org/ftp/osm-doc/nsd.html#) ), and vnfd-connection-point-ref is the reference to the connection point: ```yaml --config '{vld: [ {name: datanet, ip-profile: {...}, vnfd-connection-point-ref: {...} } ] }' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -134,12 +134,13 @@ osm ns-create --ns_name hf2 --nsd_name hackfest2-ns --vim_account openstack1 --c ### Specify IP profile information for an internal VLD of a VNF -In this scenario, the mapping can be specified in the following way, where `"1"` is the member vnf index of the constituent vnf in the NS descriptor, `internal` is the name of internal-vld in the VNF descriptor and ip-profile you have to fill the associated parameters with the data model ([VNF data model](http://osm-download.etsi.org/ftp/osm-doc/vnfd.html)): +In this scenario, the mapping can be specified in the following way, where `"1"` is the member vnf index of the constituent vnf in the NS descriptor, `internal` is the name of internal-vld in the VNF descriptor and ip-profile is where you have to fill the associated parameters from the data model ([VNF data model](http://osm-download.etsi.org/ftp/osm-doc/vnfd.html)): ```yaml --config '{vnf: [ {member-vnf-index: "1", internal-vld: [ {name: internal, ip-profile: {...} ] } ] }' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -150,12 +151,13 @@ osm ns-create --ns_name hf2 --nsd_name hackfest2-ns --vim_account openstack1 --c #### Specify IP address for an interface -In this scenario, the mapping can be specified in the following way, where `"1"` is the member vnf index of the constituent vnf in the NS descriptor, 'internal' is the name of internal-vld in the VNF descriptor ,ip-profile you have to fill the associated parameters with the data model ([VNF data model](http://osm-download.etsi.org/ftp/osm-doc/vnfd.html)), `id1` is the internal-connection-point id and `a.b.c.d` is the IP that you have to specify for this scenario: +In this scenario, the mapping can be specified in the following way, where `"1"` is the member vnf index of the constituent vnf in the NS descriptor, 'internal' is the name of internal-vld in the VNF descriptor, ip-profile is where you have to fill the associated parameters from the data model ([VNF data model](http://osm-download.etsi.org/ftp/osm-doc/vnfd.html)), `id1` is the internal-connection-point id and `a.b.c.d` is the IP that you have to specify for this scenario: ```yaml --config '{vnf: [ {member-vnf-index: "1", internal-vld: [ {name: internal, ip-profile: {...}, internal-connection-point: [{id-ref: id1, ip-address: "a.b.c.d"}] ] } ] }' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -170,6 +172,7 @@ In this scenario, the mapping can be specified in the following way, where `"1"` --config '{vnf: [ {member-vnf-index: "1", vdu: [ {id: id1, interface: [{name: interf1, mac-address: "aa:bb:cc:dd:ee:ff" }]} ] } ] } ' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest1-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_vnfd.tar.gz), [hackfest1-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_nsd.tar.gz); images: [ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [creating a basic VNF and NS](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 2 - Creating a basic VNF and NS.pdf)**) in the following way: ```bash @@ -180,6 +183,7 @@ osm ns-create --ns_name hf12 --nsd_name hackfest1-ns --vim_account openstack1 -- In the following scenario, we will bring together the two previous cases. +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -194,6 +198,7 @@ In a generic way, the mapping can be specified in the following way, where `id1` --config '{vnf: [ {member-vnf-index: "1", vdu: [ {id: id1, interface: [{name: interf1, floating-ip-required: True }]} ] } ] } ' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -211,6 +216,7 @@ In this scenario, the mapping can be specified in the following way, where `"1"` # NOTE: From release SIX (current master) add 'wim_account: False' (inside --config) to avoid wim network connectivity if you have not a WIM in your system ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest2-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_vnfd.tar.gz), [hackfest2-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_2_nsd.tar.gz); images:[ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [modeling multi-VDU VNF](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 3 - Modeling multi-VDU VNF v2.pdf)**) in the following way: ```bash @@ -225,6 +231,7 @@ In a generic way, the mapping can be specified in the following way, where `VM1` --config '{vnf: [ {member-vnf-index: "1", vdu: [ {id: VM1, volume: [ {name: Storage1, vim-volume-id: 05301095-d7ee-41dd-b520-e8ca08d18a55} ] } ] } ] }' ``` +TODO: update example with latest Hackfest You can try it using one of the examples of the hackfest (**descriptors: [hackfest1-vnf](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_vnfd.tar.gz), [hackfest1-ns](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_1_nsd.tar.gz); images: [ubuntu1604](https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/US1604.qcow2), presentation: [creating a basic VNF and NS](https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626 OSM Hackfest - Session 2 - Creating a basic VNF and NS.pdf)**) in the following way: With the previous hackfest example, according [VNF data model](http://osm-download.etsi.org/ftp/osm-doc/vnfd.html) you will add in VNF Descriptor: @@ -238,7 +245,7 @@ osm ns-create --ns_name h1 --nsd_name hackfest1-ns --vim_account openstack1 --co ### Adding additional parameters -Since release SIX, additional user parameters can be added, and they land at `vdu:cloud-init` (Jinja2 format) and/or `vnf-configuration` primitives (enclosed by `<>`). Here is an example of VNF descriptor that uses two parameters called `touch_filename` and `touch_filename2`. +Since release SIX, additional user parameters can be added, and they land at `vdu:cloud-init` (Jinja2 format) and/or `vnf-configuration` primitives (enclosed by `<>`). Here is an example of a VNF descriptor that uses two parameters called `touch_filename` and `touch_filename2`. ```yaml vnfd: @@ -281,7 +288,7 @@ TODO: Page in elaboration. Meanwhile, you can find a good explanation and exampl ### Performance Management -#### Activating VNF Metrics Collection +#### VNF Metrics Collection OSM MON features a "mon-collector" module which will collect metrics whenever specified at the descriptor level. For metrics to be collected, they have to exist first at any of these two levels: @@ -294,13 +301,11 @@ Reference diagram: ##### VIM Metrics -For VIM metrics to be collected, your VIM should support a Telemetry system. As of Release 5.0.5, metric collection has been tested with: +For VIM metrics to be collected, your VIM should support a Telemetry system. As of Release 7.0, metric collection works with: -- OpenStack VIM with Keystone v3 authentication and legacy or Gnocchi-based telemetry services. +- OpenStack VIM legacy or Gnocchi-based telemetry services. - VMware vCloud Director with vRealizeOperations. -Other VIM types will soon be added during the Release FIVE cycle. - Next step is to activate metrics collection at your VNFDs. Every metric to be collected from the VIM for each VDU has to be described both at the VDU level, and then at the VNF level. For example: ```yaml @@ -332,13 +337,18 @@ As you can see, a list of "NFVI metrics" is defined first at the VDU level, whic ###### Additional notes +<<<<<<< 9afd41fb2c010688a2f3c854bf49fae4b4ae39c1 - Available attributes and values can be directly explored at the [OSM Information Model](11-osm-im.md) - A complete VNFD example can be downloaded from [here](https://osm-download.etsi.org/ftp/osm-4.0-four/4th-hackfest/packages/webserver_vimmetric_autoscale_vnfd.tar.gz). +======= +- Available attributes and values can be directly explored at the [OSM Information Model](03-03-osm-im.md) +- A complete VNFD example can be downloaded from [here](http://osm-download.etsi.org/ftp/osm-6.0-six/8th-hackfest/packages/hackfest_basic_metrics_vnfd.tar.gz). +>>>>>>> Review of Section 4 - Normalized metric names are: `cpu_utilization`, `average_memory_utilization`, `disk_read_ops`, `disk_write_ops`, `disk_read_bytes`, `disk_write_bytes`, `packets_received`, `packets_sent`, `packets_out_dropped`, `packets_in_dropped` ###### OpenStack-specific notes -Since Rel SIX onwards, MON collects the last measure for the corresponding metric, so no further configuration is needed. +Since Rel SIX onwards, MON collects the last measure for the corresponding metric, so no further configuration (i.e. granularity) is needed anymore. ###### VMware vCD specific notes @@ -360,7 +370,7 @@ Although it is not recommended, if a more frequent interval is desired, the foll - Edit the Collection Interval (Minutes) value and set to the desired value. - Click OK to save the change. -##### VNF Metrics +##### VNF Metrics/Indicators Metrics can also be collected directly from VNFs using VCA, through the [Juju Metrics](https://docs.jujucharms.com/2.4/en/developer-metrics) framework. A simple charm containing a metrics.yaml file at its root folder specifies the metrics to be collected and the associated command. @@ -461,7 +471,30 @@ Additional notes: As in VIM metrics, a list of "metrics" is defined first either at the VNF or VDU "configuration" level, which contain a name that comes from the metrics.yaml file. Then, at the VNF level, a list of monitoring-params is referred, with an ID, name, aggregation-type and their source, which can be a "vdu-metric" or a "vnf-metric" in this case. -#### Retrieving metrics from Prometheus TSDB +#### Infrastructure Status Collection + +OSM MON collects, automatically, "status metrics" for: + +- VIMs - each VIM that OSM establishes contact with, the metric will be reflected with the name `osm_vim_status` in the TSDB. +- VMs - VMs for each VDU that OSM has instantiated, the metric will be reflected with the name `osm_vm_status` in the TSDB. + +Metrics will be "1" or "0" depending on the element availability. + +#### System Metrics + +OSM collects system-wide metrics directly using Prometheus exporters. The way these metrics are collected is highly dependant on how OSM was installed: + +| | OSM on Kubernetes | OSM on Docker Swarm | +|:----:|:-----------------:|:--------------------:| +| Components | Prometheus Operator Chart / Other charts: MongoDB, MySQL and Kafka exporters | Node exporter / CAdvisor exporter | +| Implements | Multiple Grafana dashboards for a comprehensive health check of the system. | Single Grafana dashboard with the most important system metrics.| + +The name with which these metrics are stored in Prometheus also depends on the installation, so Grafana Dashboards will be available by default, already showing these metrics. +Please note that the K8 installation requires the optional Monitoring stack. + +![Screenshot of OSM System Metrics at Grafana](assets/800px-OSM_system_metrics.png) + +#### Retrieving OSM metrics from Prometheus TSDB Once the metrics are being collected, they are stored in the Prometheus Time-Series DB **with an 'osm_' prefix**, and there are a number of ways in which you can retrieve them. @@ -476,31 +509,27 @@ From there, you can: ![Screenshot of OSM Prometheus UI](assets/800px-Osm_prometheus_rel5.png) -##### 2) Integrating Prometheus with Grafana +##### 2) Visualizing metrics in Grafana -There is a well-known integration between these two components that allows Grafana to easily show interactive graphs for any metric. You can use any existing Grafana installation or the one that comes in OSM as the experimental `pm_stack`. +Starting in Release 7, OSM includes by default its own Grafana installation (deprecating the former experimental `pm_stack`) -To install the `pm_stack` (which today includes only Grafana), in an existing OSM installation, run the installer in the following way: +Access Grafana with its default credentials (admin / admin) at `http://[OSM_IP_address]:3000` and by clicking the 'Manage' option at the 'Dashboards' menu (to the left), you will find a sample dashboard containing two graphs for VIM metrics, and two graphs for VNF metrics. You can easily change them or add more, as desired. -```bash -./install_osm.sh -o pm_stack -``` +![Screenshot of OSM Grafana UI](assets/800px-Osm_grafana_rel5.png) -Otherwise, if you are installing from scratch, you can simply run the installer with the `pm_stack` option. +###### Dashboard Automation -```bash -./install.sh --pm_stack -``` - -Once installed, access Grafana with its default credentials (admin / admin) at `http://[OSM_IP_address]:3000` and by clicking the 'Manage' option at the 'Dashboards' menu (to the left), you will find a sample dashboard containing two graphs for VIM metrics, and two graphs for VNF metrics. You can easily change them or add more, as desired. +Starting in Release 7, Grafana Dashboards are created by default in OSM. This is done by the "dahboarder" service in MON, which provisions Grafana following changes in the common DB. -![Screenshot of OSM Grafana UI](assets/800px-Osm_grafana_rel5.png) +|Updates in|Automates these dashboards| +|:--------:|:------------------------:| +|OSM installation|System Metrics, Admin Project-scoped| +|OSM Projects|Project-scoped| +|OSM Network Services|NS-scoped sample dashboard| ##### 3) Interacting with Prometheus directly through its API -Even though many analytics applications, like Grafana, include their own integration for Prometheus, some other applications do not include it out of the box or there is a need to build a custom integration. - -In such cases, the [Prometheus HTTP API](https://prometheus.io/docs/prometheus/latest/querying/api/) can be used to gather any metrics. A couple of examples are shown below: +The [Prometheus HTTP API](https://prometheus.io/docs/prometheus/latest/querying/api/) is always directly available to gather any metrics. A couple of examples are shown below: Example with Date range query @@ -546,24 +575,21 @@ Please note that as long as the Prometheus container is up, it will continue ret ##### 5) Using your own TSDB -OSM MON integrates Prometheus through a plugin/backend model, so if desired, other backends can be developed. If interested in contributing with such option, you can ask for details at our Slack #mon channel or through the OSM Tech mailing list. +OSM MON integrates Prometheus through a plugin/backend model, so if desired, other backends can be developed. If interested in contributing with such option, you can ask for details at our Slack #service-assurance channel or through the OSM Tech mailing list. -#### Default Infrastructure Status Collection +TODO: Include SOL005-based metric collection. -OSM MON collects, automatically, "status metrics" for: - -- VIMs - each VIM that OSM establishes contact with, the metric will be reflected with the name `osm_vim_status` in the TSDB. -- VMs - VMs for each VDU that OSM has instantiated, the metric will be reflected with the name `osm_vm_status` in the TSDB. +### Fault Management -Metrics will be "1" or "0" depending on the element availability. +Reference diagram: -### Fault Management +![Diagram of OSM FM and ELK Experimental add-ons](assets/800px-Osm_fm_rel5.png) #### Basic functionality ##### Logs & Events -As of Release 5.0.0, logs can be monitored on a per-container basis via command line, like this: +Logs can be monitored on a per-container basis via command line, like this: ```bash docker logs @@ -581,9 +607,15 @@ Furthermore, there are some important events flowing between components through ##### Alarm Manager for Metrics +<<<<<<< 9afd41fb2c010688a2f3c854bf49fae4b4ae39c1 As of Release FIVE, MON includes a new module called 'mon-evaluator'. The only use case supported today by this module is the configuration of alarms and evaluation of thresholds related to metrics, for the Policy Manager module (POL) to take actions such as [auto-scaling](#autoscaling). +======= +As of Release FIVE, MON includes a new module called 'mon-evaluator', which supports two use cases: +- Alarms related to any monitoring parameter included in scaling-groups, for the Policy Manager module (POL) to take [auto-scaling](06-03-03-autoscaling.md) +- Alarms related to any monitoring parameter present in the VNFD, for the Policy Manager module (POL) to send notifications to a web service. +>>>>>>> Review of Section 4 -Whenever a threshold is crossed and an alarm is triggered, the notification is generated by MON and put in the Kafka bus so other components can consume them. This event is today logged by both MON (generates notification) and POL (consumes notification, for its auto-scaling action) +Whenever a threshold is crossed and an alarm is triggered, the notification is generated by MON and put in the Kafka bus so other components, like POL can consume them. This event is today logged by both MON (generates notification) and POL (consumes notification, for its auto-scaling or webhook actions) By default, threshold evaluation occurs every 30 seconds. This value can be changed by setting an environment variable, for example: @@ -591,15 +623,33 @@ By default, threshold evaluation occurs every 30 seconds. This value can be chan docker service update --env-add OSMMON_EVALUATOR_INTERVAL=15 osm_mon ``` +<<<<<<< 9afd41fb2c010688a2f3c854bf49fae4b4ae39c1 Further information regarding how to configure alarms through VNFDs for the supported use case can be found at the [auto-scaling documentation](#autoscaling) +======= +To configure alarms that send webhooks to a web service, add the following to the VNF descriptor: +>>>>>>> Review of Section 4 -Reference diagram: - -![Diagram of OSM FM and ELK Experimental add-ons](assets/800px-Osm_fm_rel5.png) +```yaml +vdu: +- alarm: + - alarm-id: alarm-1 + operation: LT + value: 20 + actions: + alarm: + - url: https://webhook.site/1111 + ok: + - url: https://webhook.site/2222 + insufficient-data: + - url: https://webhook.site/3333 + vnf-monitoring-param-ref: vnf_cpu_util +``` + +Regarding how to configure alarms through VNFDs for the auto-scaling use case, follow the [auto-scaling documentation](06-03-03-autoscaling.md) #### Experimental functionality -As in the previous release, an optional 'OSM ELK' stack is available to allow for events visualization, consisting of the following tools: +An optional 'OSM ELK' stack is available to allow for events visualization, consisting of the following tools: - **Elastisearch** - scalable search engine and event database. - **Filebeat & Metricbeat** - part of Elastic 'beats', which evolve the former Logstash component to provide generic logs and metrics collection, respectively. diff --git a/06-osm-platform-configuration.md b/06-osm-platform-configuration.md index c14ba5ea9cf2b773f4188f0fb52dc06f87bce453..716d3a519454d8bb828ee7e2a07f8390e11b01ce 100644 --- a/06-osm-platform-configuration.md +++ b/06-osm-platform-configuration.md @@ -1,14 +1,14 @@ # OSM platform configuration -## User management +## Role-based authentication (RBAC) TODO: Page in elaboration. -## Project management +## User management TODO: Page in elaboration. -## RBAC +## Project management TODO: Page in elaboration. @@ -156,10 +156,6 @@ Some planned contents: - Management of Helm repos ``` -## Monitoring the OSM platform - -TODO: Page in elaboration. - ### Docker swarm build ### Kubernetes build diff --git a/assets/800px-OSM_system_metrics.png b/assets/800px-OSM_system_metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..a58ede252705d1df00c8818ed80263342f2e5024 Binary files /dev/null and b/assets/800px-OSM_system_metrics.png differ