Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The A1 PMS Policy Management Service Spring Boot application exposes some management endpoints including loggers, metrics, Prometheus, and so on...
All these endpoints are enabled by Spring Boot Actuator dependency. When this dependency is added in pom.xml, it will expose counters and statistics, which could can then be managed from application.yaml
(See Kohn - Component configuration) for more details on configuration, and the application.yaml file)

Code Block
languageyml
titleSnippet from application.yaml
......
management:
  endpoints:
    web:
      exposure:
        # Enabling of springboot actuator features. See springboot documentation.
        include: "loggers,logfile,health,info,metrics,threaddump,heapdump,prometheus"
......


The metrics actuator makes several metrics available. These metrics include numerous built-in springboot metrics, and several new A1-specific metrics.
In order to access these exposuresthe exposed metrics, you need to form an URL and append metric's name end of the URL like below:

Prometheus Statistics

Prometheus is time-series database, which stores a sequence of data points, across time. It’s generally used to store metrics and performance data from your applications.

There are plenty of numerous predefined Prometheus statistics and counters, however "we have added 3 new A1-specific metrics for the the A1 Policy Management Service:

  • total_ric_

...

  • count
    • Type Guage: The count of configured rics avaialble/used by the A1 Policy Management Service
  • total_policy_type_count

...

    • Type Guage: The total count of available A1 Policy types
  • total_policy_

...

  • count

      ...

        • Type Guage: The total count of available A1 Policy instances

      An example of Prometheus statistics:

      Prometheus UI


      If you want to collect and visualize Prometheus' statistics in Prometheus GUI, you can bind the below this can be configured in a  'prometheus.yml' that exists in config folderPrometheus configuration file, similar to the example below.
      This sample shows how Prometheus can periodically scrape the available metrics and make them available.

      Code Block
      languageyml
      titleprometheus.yml
      collapsetrue
      #
      # ============LICENSE_START=======================================================
      # ONAP : ccsdk oran
      # ================================================================================
      # Copyright (C) 2022 Nordix Foundation. All rights reserved.
      # ================================================================================
      # Licensed under the Apache License, Version 2.0 (the "License");
      # you may not use this file except in compliance with the License.
      # You may obtain a copy of the License at
      #
      #      http://www.apache.org/licenses/LICENSE-2.0
      #
      # Unless required by applicable law or agreed to in writing, software
      # distributed under the License is distributed on an "AS IS" BASIS,
      # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      # See the License for the specific language governing permissions and
      # limitations under the License.
      #
      # SPDX-License-Identifier: Apache-2.0
      # ============LICENSE_END=========================================================
      #
      
      # Sample Prometheus config
      # This assumes that your Prometheus instance can access this application on localhost:8081
      # host.docker.internal could be overridden as per the application's end-point e.g. localhost
      
      global:
        scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
        evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
        # scrape_timeout is set to the global default (10s).
      
      scrape_configs:
        - job_name: 'A1 PMS scrape'
          metrics_path: '/actuator/prometheus'
          scrape_interval: 15s
          static_configs:
            - targets: ['host.docker.internal:8081']


      You For more information on how to use and configure Prometheus you can use these links to access Prometheus' page and instructions:


      When Prometheus UI docker container is up and running, you can observe application state = "UP".

      Image Added


      To access metrics, you can use graph page and search for one of the existing metrics such as "total_policy_type_count".


      Image Added


      Another Prometheus metrics called "total_ric_count" and "total_policy_count" can be observed too.


      Image Added


      Image Added