How to use Performance Management

This user guide shows how to check CPU utilization and threshold for Performance Management.

Prerequisites

  1. Environment Preparation

    To create PaaS environment for PM that can be integrated with INF O2 service, the following software need to be installed.

    • OpenStack

    • Prometheus

    • Alert Manager

    • Node Exporter

    • Kube-state-metrics

    • Notification server

    • Tacker

  2. VNF Deployment

    Tacker use VNF package to deploy a set of kubernetes resources such as pods or deployment and Tacker will manage such resources as a VNF instance. In PaaS environment containerized VNF should be installed, deployed and instantiated according to the steps below.

    https://docs.openstack.org/tacker/latest/user/v2/cnf/deployment_using_helm/index.html

Procedure

By integrating tacker with prometheus, fault management and performance management are performed. Kubernetes manages such pods or deployment resources and prometheus monitors such resources. Tacker maps the kubernetes resource information to the VNF instance information, so tacker can enable for fault management and the performance management for the VNF instance.

There are two types of Performance Management functions- * PM Job * PM Threshold

  1. PM Job

    1. Check VNF Status

      $ openstack vnflcm show --os-tacker-api-version 2 ec096028-e5ba-44e7-a912-a2214d567e7a -c 'Instantiation State'
      
      +---------------------+------------------+
      | Field                       |  Value   |
      +---------------------+------------------+
      | Instantiation State | INSTANTIATED     |
      +---------------------+------------------+
      
    2. Create PM job

      Using below command, PM job will be created-

      $ openstack --os-tacker-api-version 2 vnfpm job create pmjob_cpu_report.json
      
        +--------------------------+--------------------------------------------------------------------------------------------------------+
        |  Field                   |  Value                                                                                                 |
        +--------------------------+--------------------------------------------------------------------------------------------------------+
        |  Callback Uri            |  http://128.224.232.182:9998/notification/callbackuri/ca1f1cb8-8436-41d5-b584-986c49763442             |
        |  Criteria                |  {                                                                                                     |
        |                          |    "performanceMetric": [                                                                              |
        |                          |        "VCpuUsageMeanVnf.calf1cb0-8436-41d5-b584-986c49763442"                                         |
        |                          |        "collectionPeriod": 30,                                                                         |
        |                          |        "reportingPeriod": 60                                                                           |
        |                          |  }                                                                                                     |
        |  ID                      |  84196619-23ea-4dcd-bfb6-af0c48f0b213                                                                  |
        |  Links                   |  {                                                                                                     |
        |                          |     "self": {                                                                                          |
        |                          |         "href": "http://127.0.0.1:9890/vnfpm/v2/pm_jobs/84196619-23ea-4dcd-bfb6-af0c48f0b213"          |
        |                          |      },                                                                                                |
        |                          |      "objects":[                                                                                       |
        |                          |          {                                                                                             |
        |                          |            "href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/calf1cb0-8436-41d5-b584-906c49763442"|
        |                          |          }                                                                                             |
        |                          |       ]                                                                                                |
        |                          |    }                                                                                                   |
        |                          |                                                                                                        |
        |  Object Instance Ids     |  [                                                                                                     |
        |                          |     "calf1cb0-8436-41d5-b584-986c49763442"                                                             |
        |                          |  ]                                                                                                     |
        |  Object Type             |  Vnf                                                                                                   |
        |  Reports                 |  []                                                                                                    |
        |  Sub Object Instance Ids |                                                                                                        |
        +--------------------------+--------------------------------------------------------------------------------------------------------+
      
    3. Check CPU utilization value

      Using Job show command below we get the PM report id.

      $ openstack –os-tacker-api-version 2 vnfpm job show 84196619-23ea-4dcd-bfb6-af0c48f0b213
      

      Then to get the PM Report data we use below command which uses PM job ID and PM report ID respectively.

      $ openstack –os-tacker-api-version 2 report show 84196619-23ea-4dcd-bfb6-af0c48f0b213 cdec8edd-82bb-426d-98fb-9df1be1725f6
      
        +--------------------------+--------------------------------------------------------------------------------------------------------+
        |  Field                   |  Value                                                                                                 |
        +--------------------------+--------------------------------------------------------------------------------------------------------+
        |  Entries                 |  [                                                                                                     |
        |                          |      {                                                                                                 |
        |                          |        "objectType": "Vnf",                                                                            |
        |                          |          "objectInstanceId": "calflcb0-8436-41d5-b584-906c49763442",                                   |
        |                          |          "performanceMetric": "VCpuUsageMeanVnf.ca1f1cb8-8436-41d5-b584-986c49763442",                 |
        |                          |          "performanceValues": [                                                                        |
        |                          |              {                                                                                         |
        |                          |                 "timestamp": "2024-09-24T14:22:272",                                                   |
        |                          |                 "value": "2.261168096206560-05"                                                        |
        |                          |              }                                                                                         |
        |                          |           ]                                                                                            |
        |                          |       }                                                                                                |
        |                          |     ]                                                                                                  |
        +--------------------------+--------------------------------------------------------------------------------------------------------+
      

      The “value” here represents the actual value of CPU utilization.

  2. PM Threshold

    1. Create Threshold

      $ openstack vnfpm threshold create sample_param_file.json --os-tacker-api-version 2
        +-------------------------+------------------------------------------------------------------------------------------------------+
        | Field                   | Value                                                                                                |
        +-------------------------+------------------------------------------------------------------------------------------------------+
        | Callback Uri            | http://127.0.0.1:9990/notification/callbackuri/c21fd71b-2866-45f6-89d0-70c458a5c32e                  |
        | Criteria                | {                                                                                                    |
        |                         |     "performanceMetric": "VCpuUsageMeanVnf.c21fd71b-2866-45f6-89d0-70c458a5c32e",                    |
        |                         |     "thresholdType": "SIMPLE",                                                                       |
        |                         |     "simpleThresholdDetails": {                                                                      |
        |                         |         "thresholdValue": 1.0,                                                                       |
        |                         |         "hysteresis": 0.5                                                                            |
        |                         |     }                                                                                                |
        |                         | }                                                                                                    |
        | ID                      | 135db472-4f7b-4d55-abaf-27a3ab4d7ba1                                                                 |
        | Links                   | {                                                                                                    |
        |                         |     "self": {                                                                                        |
        |                         |         "href": "http://127.0.0.1:9890/vnfpm/v2/thresholds/135db472-4f7b-4d55-abaf-27a3ab4d7ba1"     |
        |                         |     },                                                                                               |
        |                         |     "object": {                                                                                      |
        |                         |         "href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/c21fd71b-2866-45f6-89d0-70c458a5c32e" |
        |                         |     }                                                                                                |
        |                         | }                                                                                                    |
        | Object Instance Id      | c21fd71b-2866-45f6-89d0-70c458a5c32e                                                                 |
        | Object Type             | Vnf                                                                                                  |
        | Sub Object Instance Ids |                                                                                                      |
        +-------------------------+------------------------------------------------------------------------------------------------------+
      

      When creating a PM threshold, Tacker will modify the configuration file on the specified Prometheus based on metadata. Then Prometheus will monitor the specified resource and send the monitored information to Tacker.

    2. Check CPU utilization

      To check CPU usage, we need to perform some operations. Eg. Connect to pod and do some operations on it.

      Then we can check the usage value using below command-

      $ openstack vnfpm threshold show 135db472-4f7b-4d55-abaf-27a3ab4d7ba1 --os-tacker-api-version 2
        +-------------------------+------------------------------------------------------------------------------------------------------+
        | Field                   | Value                                                                                                |
        +-------------------------+------------------------------------------------------------------------------------------------------+
        | Callback Uri            | http://127.0.0.1:9990/notification/callbackuri/c21fd71b-2866-45f6-89d0-70c458a5c32e                  |
        | Criteria                | {                                                                                                    |
        |                         |     "performanceMetric": "VCpuUsageMeanVnf.c21fd71b-2866-45f6-89d0-70c458a5c32e",                    |
        |                         |     "thresholdType": "SIMPLE",                                                                       |
        |                         |     "simpleThresholdDetails": {                                                                      |
        |                         |         "thresholdValue": 1.0,                                                                       |
        |                         |         "hysteresis": 0.5                                                                            |
        |                         |     }                                                                                                |
        |                         | }                                                                                                    |
        | ID                      | 135db472-4f7b-4d55-abaf-27a3ab4d7ba1                                                                 |
        | Links                   | {                                                                                                    |
        |                         |     "self": {                                                                                        |
        |                         |         "href": "http://127.0.0.1:9890/vnfpm/v2/thresholds/135db472-4f7b-4d55-abaf-27a3ab4d7ba1"     |
        |                         |     },                                                                                               |
        |                         |     "object": {                                                                                      |
        |                         |         "href": "http://127.0.0.1:9890/vnflcm/v2/vnf_instances/c21fd71b-2866-45f6-89d0-70c458a5c32e" |
        |                         |     }                                                                                                |
        |                         | }                                                                                                    |
        | Object Instance Id      | c21fd71b-2866-45f6-89d0-70c458a5c32e                                                                 |
        | Object Type             | Vnf                                                                                                  |
        | Sub Object Instance Ids |                                                                                                      |
        +-------------------------+------------------------------------------------------------------------------------------------------+
      

References