Merge "Part 1: Refactor CPS Delta code to utility class"
[cps.git] / docs / admin-guide.rst
index efa23b5..8f0634a 100644 (file)
@@ -1,6 +1,6 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. http://creativecommons.org/licenses/by/4.0
-.. Copyright (C) 2021-2022 Nordix Foundation
+.. Copyright (C) 2021-2025 OpenInfra Foundation Europe. All rights reserved.
 
 .. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING
 .. _adminGuide:
@@ -12,6 +12,40 @@ CPS Admin Guide
 .. toctree::
    :maxdepth: 1
 
+Regular Maintenance
+===================
+This section details tasks that an administrator of the CPS application should execute on regular basis
+to ensure optimum working of CPS.
+
+Dataspace Clean Up
+------------------
+Certain data in the CPS database might not be explicitly removed after it is no longer required ('orphaned data').
+For example, schema sets and their associated unique module resources no longer used by any anchor because of model upgrades.
+This data would unnecessarily take up space and could eventually affect the performance of the DB if it is not deleted.
+How often this needs to be done depends on how often schema sets are being deprecated.
+Typically once per month should suffice.
+
+To remove orphaned data in a given dataspace use the following post request:
+
+.. code::
+
+    http://<cps-component-service-name>:<cps-port>/v2/admin/dataspaces/<dataspace-name>/actions/clean
+
+for example
+
+.. code-block:: bash
+
+    curl --location --request POST 'http://cps:8080/admin/datsaspaces/bookstore/actions/clean' \
+    --header 'Content-Type: application/json; charset=utf-8'
+
+    Response : HTTP Status 204
+
+For more details refer to the CPS-Core API:  :doc:`design`.
+
+.. note::
+   NCMP has no specific maintenance tasks but it will also build up orphaned data when CM Handles get updated and or deleted.
+   To delete this data execute the above procedure for the dataspace named 'NFP-Operational'.
+
 Logging Configuration
 =====================
 
@@ -30,19 +64,18 @@ Logging Configuration
 CPS Log pattern
 ---------------
 
-.. code-block:: java
+.. code-block::
 
    <pattern>
        {
-         "timestamp" : "%timestamp", // 2022-01-28 18:39:17.768
-         "severity": "%level",   // DEBUG
-         "service": "${springAppName}",  // cps-application
-         "trace": "${TraceId}", // e17da1571e518c59
-         "span": "${SpanId}", // e17da1571e518c59
-         "pid": "${PID}", //11128
-         "thread": "%thread", //tp1901272535-29
+         "logTimeStamp" : "%timestamp", // 2022-01-28 18:39:17.768
+         "logLevel": "%level",   // DEBUG
+         "principalId": "%userId",    // cpsuser
+         "serviceName": "${springAppName}",  // cps-application
+         "message":"%message",  // Execution time ...
+         "processId": "${PID}", //11128
+         "threadName": "%thread", //tp1901272535-29
          "class": "%logger{40}", .// o.onap.cps.aop.CpsLoggingAspectService
-         "rest": "%message" // Execution time ...
        }
    </pattern>
 
@@ -51,9 +84,9 @@ Change logging level
 
 - Curl command 1. Check current log level of "logging.level.org.onap.cps" if it is set to it's default value (INFO)
 
-.. code-block:: java
+.. code-block:: bash
 
-    curl --location --request GET 'http://{cps-service-name:cps-management-port}/manage/loggers/org.onap.cps' \
+    curl --location --request GET 'http://{cps-service-name:cps-port}/actuator/loggers/org.onap.cps' \
     --header 'Content-Type: application/json; charset=utf-8'
 
     Response body : HTTP Status 200
@@ -69,9 +102,9 @@ Change logging level
 .. note::
    Below-mentioned endpoint  will change the log level at runtime. After executing the curl command "effectiveLevel" will set and applied immediately without restarting CPS service.
 
-.. code-block:: java
+.. code-block:: bash
 
-    curl --location --request POST 'http://{cps-service-name:cps-management-port}/manage/loggers/org.onap.cps' \
+    curl --location --request POST 'http://{cps-service-name:cps-port}/actuator/loggers/org.onap.cps' \
     --header 'Content-Type: application/json; charset=utf-8' \
     --data-raw '{
                     "configuredLevel": "DEBUG"
@@ -81,9 +114,9 @@ Change logging level
 
 - Curl command 3. Verify if log level of "logging.level.org.onap.cps" is changed from 'INFO' to 'DEBUG'
 
-.. code-block:: java
+.. code-block:: bash
 
-    curl --location --request GET 'http://{cps-service-name:cps-management-port}/manage/loggers/org.onap.cps' \
+    curl --location --request GET 'http://{cps-service-name:cps-port}/actuator/loggers/org.onap.cps' \
     --header 'Content-Type: application/json; charset=utf-8'
 
     Response body : HTTP Status 200
@@ -98,7 +131,7 @@ Location of log files
 ---------------------
 By default, Spring Boot will only log to the console and will not write log files.
 
-.. image:: images/cps-service-console.JPG
+.. image:: _static/cps-service-console.JPG
   :width: 700
   :alt: CPS service console
 
@@ -110,11 +143,11 @@ Measure Execution Time of CPS Service
 
 Execute CPS service that you want to calculate total elapsed time and log as shown below
 
-.. code-block:: xml
+.. code-block::
 
-   2022-01-28 18:39:17.679 DEBUG [cps-application,e17da1571e518c59,e17da1571e518c59] 11128 --- [tp1901272535-29] o.onap.cps.aop.CpsLoggingAspectService   : Execution time of : DataspaceRepository.getByName() with argument[s] = [test42] having result = org.onap.cps.spi.entities.DataspaceEntity@68ded236 :: 205 ms
+   2022-01-28 18:39:17.679 DEBUG [cps-application,e17da1571e518c59,e17da1571e518c59] 11128 --- [tp1901272535-29] o.onap.cps.aop.CpsLoggingAspectService   : Execution time of : DataspaceRepository.getByName() with argument[s] = [test42] having result = org.onap.cps.impl.models.DataspaceEntity@68ded236 :: 205 ms
 
-   2022-01-28 18:39:17.726 DEBUG [cps-application,e17da1571e518c59,e17da1571e518c59] 11128 --- [tp1901272535-29] o.onap.cps.aop.CpsLoggingAspectService   : Execution time of : AnchorRepository.getByDataspaceAndName() with argument[s] = [org.onap.cps.spi.entities.DataspaceEntity@68ded236, bookstore] having result = org.onap.cps.spi.entities.AnchorEntity@71c47fb1 :: 46 ms
+   2022-01-28 18:39:17.726 DEBUG [cps-application,e17da1571e518c59,e17da1571e518c59] 11128 --- [tp1901272535-29] o.onap.cps.aop.CpsLoggingAspectService   : Execution time of : AnchorRepository.getByDataspaceAndName() with argument[s] = [org.onap.cps.impl.models.DataspaceEntity@68ded236, bookstore] having result = org.onap.cps.impl.models.AnchorEntity@71c47fb1 :: 46 ms
 
    2022-01-28 18:39:17.768 DEBUG [cps-application,e17da1571e518c59,e17da1571e518c59] 11128 --- [tp1901272535-29] o.onap.cps.aop.CpsLoggingAspectService   : Execution time of : CpsAdminPersistenceServiceImpl.getAnchor() with argument[s] = [test42, bookstore] having result = Anchor(name=bookstore, dataspaceName=test42, schemaSetName=bookstore) :: 299 ms
 
@@ -155,15 +188,13 @@ loggers log level
 
 Logger configuration is provided as a chart resource :
 
-    +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------+
-    | cps-component-service-name     | logback.xml location                                                                                                             |
-    +================================+==================================================================================================================================+
-    | cps-core                       | `logback.xml <https://github.com/onap/oom/blob/master/kubernetes/cps/components/cps-core/resources/config/logback.xml>`__        |
-    +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------+
-    | cps-temporal                   | `logback.xml <https://github.com/onap/oom/blob/master/kubernetes/cps/components/cps-temporal/resources/config/logback.xml>`__    |
-    +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------+
-    | ncmp-dmi-plugin                | Not yet applicable to DMI-Plugin                                                                                                 |
-    +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------+
+    +--------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+    | cps-component-service-name     | logback.xml location                                                                                                                          |
+    +================================+===============================================================================================================================================+
+    | cps-core                       | `logback-spring.xml <https://github.com/onap/oom/blob/master/kubernetes/cps/components/cps-core/resources/config/logback-spring.xml>`__       |
+    +--------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+    | ncmp-dmi-plugin                | Not yet applicable to DMI-Plugin                                                                                                              |
+    +--------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
 
 .. Below Label is used by documentation for other CPS components to link here, do not remove even if it gives a warning
 .. _cps_common_monitoring:
@@ -174,7 +205,7 @@ Once CPS-Core is deployed, information related to the running instance of the ap
 
 .. code::
 
-    http://<cps-component-service-name>:8081/manage/info/
+    http://<cps-component-service-name>:8080/actuator/info/
 
 Health
 ------
@@ -184,26 +215,42 @@ This also includes both the liveliness state and readiness state.
 
 .. code::
 
-    http://<cps-component-service-name>:8081/manage/health/
+    http://<cps-component-service-name>:8080/actuator/health/
 
 Metrics
 -------
 
+Below table lists all CPS-NCMP custom metrics
+
+.. csv-table::
+    :file: csv/metrics.csv
+    :widths: 50, 50
+    :header-rows: 1
+
 Prometheus Metrics can be checked at the following endpoint
 
 .. code::
 
-    http://<cps-component-service-name>:8081/manage/prometheus
+    http://<cps-component-service-name>:8080/actuator/prometheus
+
+Heap Dump and Thread Dump
+-------------------------
+
+On demand heap dump and thread dump generation using the below endpoints.
+
+.. code::
+
+    http://<cps-component-service-name>:8080/actuator/heapdump
+    http://<cps-component-service-name>:8080/actuator/threaddump
 
 Naming Validation
 -----------------
 
-As part of the Jakarta 3.1.0 release, CPS has added validation to the names of the following components:
+As part of the Kohn 3.1.0 release, CPS has added validation to the names of the following components:
 
     - Dataspace names
-    - Schema Set names
     - Anchor names
-    - Cm-Handle identifiers
+    - CHandle identifiers
 
 The following characters along with spaces are no longer valid for naming of these components.