Prometheus is selected to be monitoring system for ONAP.  Prometheus service, alert manager and Grafana are instantiated by MSB for monitoring various ONAP projects.

OOF is one of the first projects to provide metrics to Prometheus. 

As part of that, OOF integrated Python based exporter client software.

HPA matching logic is the first one in OOF to export its metrics.

Scope of R3 is to integrate OOF and Prometheus with basic hpa/vnf statistics with minimum labels. R4 will integrate more detailed metrics with additional label support.

OOF-HPA metrics (Dileep Ranganathan)

OOF-HPA metrics provide information for the user to visualize following:

  • Number of times there is successful flavor match :   flavor_match_successful
  • Number of times there is unsuccessful flavor match:  flavor_match_unsuccessful
  • Number of times cloud region is selected successfully :  cloud_region_successful
  • Number of times no cloud region is selected:  cloud_region_unsuccessful

Metrics alone does not provide much information. Labels for each metric quality the metric.

Current thinking is that we have following labels for each metric

Labels for flavor_match_successful and flavor match_unsuccessful

  • vnf_name
  • vnfc_name
  • service_name (if available in R3.  Make it available in R4)
  • customer_name (if available in R3. Make it available in R4)
  • cloud_region
  • policy_name

In case of flavor_match_unsuccessful, few additional labels help

  • mandatory_match_failed
  • not_enough_capacity (R4)
  • ???

Labels for cloud_region_successful_selection and cloud_region_unsuccessful_selection (R4)

  • cloud_region
  • service_name
  • customer_name

In case of cloud_region_unsuccessful_selection, few more additional labels would help (R4)

  • no_selection_due_to_flavors
  • no_selection_due_to_distance
  • no_selection_due_to_cost

Current Metrics planned to support in R3

# TODO (dileep)
# Customer name is set as ONAP in R3.
# General rule of thumb - if label not available. Label=N/A
# Service name will be set as N/A for HPA metrics in R3.
# vnf_name and vnfc_name will be N/A.
# Currently this needs lots of changes. R4 will take care of this.

VNF_COMPUTE_PROFILES = Counter(
'vnf_compute_profile',
'Compute Profiles used by VNFs over time',
['customer_name', 'service_name', 'vnf_name', 'vnfc_name', 'flavor',
'cloud_region']
)

VNF_FAILURE = Counter(
'vnf_no_solution',
'No Homing solution',
['customer_name', 'service_name']
)

VNF_SCORE = Counter(
'vnf_scores',
'HPA Scores of vnf',
['customer_name', 'service_name', 'vnf_name', 'vnfc_name', 'hpa_score']
)

# HPA Matching stats
# TODO (dileep)
# Customer name is set as ONAP in R3.
# General rule of thumb - if label not available. Label=N/A
# Service name will be set as N/A for HPA metrics in R3.
# vnf_name and vnfc_name will be N/A.
# Currently this needs lots of changes. R4 will take care of this.
HPA_FLAVOR_MATCH_SUCCESSFUL = Counter(
'flavor_match_successful',
'Number of times there is successful flavor match',
['customer_name', 'service_name', 'vnf_name', 'vnfc_name', 'cloud_region',
'flavor']
)

HPA_FLAVOR_MATCH_UNSUCCESSFUL = Counter(
'flavor_match_unsuccessful',
'Number of times there is unsuccessful flavor match',
['customer_name', 'service_name', 'vnf_name', 'vnfc_name', 'cloud_region',
'flavor']
)

HPA_CLOUD_REGION_SUCCESSFUL = Counter(
'cloud_region_successful',
'Number of times cloud region is selected successfully',
['customer_name', 'service_name', 'cloud_region']
)

HPA_CLOUD_REGION_UNSUCCESSFUL = Counter(
'cloud_region_unsuccessful',
'Number of times no cloud region is selected',
['customer_name', 'service_name', 'cloud_region']
)


  • No labels