Prometheus metrics for policy deploy/undeploy requests for APEX 43/125943/4
authorRashmi Pujar <rashmi.pujar1@bell.ca>
Fri, 26 Nov 2021 12:44:23 +0000 (07:44 -0500)
committerRashmi Pujar <rashmi.pujar1@bell.ca>
Tue, 30 Nov 2021 16:23:53 +0000 (11:23 -0500)
Added counters for:
- Policy deploy/undeploy requests total
- Policy deploy/undeploy successful requests total
- Policy deploy/undeploy failed requests total
Cleaned up unused method resetAllStatistics.
Fixed some checkstyle warnings
Update to latest snapshot for parent, and common modules

Depends on https://gerrit.onap.org/r/c/policy/parent/+/125974 for build to pass.

Issue-ID: POLICY-3760
Change-Id: I4a9447c9caea7a018dba86057b9dae3871910709
Signed-off-by: Rashmi Pujar <rashmi.pujar1@bell.ca>
pom.xml
services/services-engine/pom.xml
services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManager.java
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexPolicyStatisticsManagerTest.java
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineWorkerTest.java

diff --git a/pom.xml b/pom.xml
index 67cf396..fa17847 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
     <parent>
         <groupId>org.onap.policy.parent</groupId>
         <artifactId>integration</artifactId>
-        <version>3.5.0</version>
+        <version>3.5.1-SNAPSHOT</version>
         <relativePath />
     </parent>
 
@@ -45,8 +45,8 @@
         <version.commons-cli>1.4</version.commons-cli>
         <version.kafka>2.3.0</version.kafka>
         <version.hibernate>5.3.7.Final</version.hibernate>
-        <version.policy.common>1.10.0</version.policy.common>
-        <version.policy.models>2.6.0</version.policy.models>
+        <version.policy.common>1.10.1-SNAPSHOT</version.policy.common>
+        <version.policy.models>2.6.1-SNAPSHOT</version.policy.models>
         <version.jgroups>4.1.5.Final</version.jgroups>
         <version.caffeine>2.8.0</version.caffeine>
         <sonar.javascript.lcov.reportPaths>${project.basedir}/target/code-coverage/lcov.info</sonar.javascript.lcov.reportPaths>
 
     <profiles>
         <profile>
-            <!--This profile is used to store Eclipse m2e settings only. It has no 
+            <!--This profile is used to store Eclipse m2e settings only. It has no
                 influence on the Maven build itself. -->
             <id>only-eclipse</id>
             <activation>
         <module>tools</module>
         <module>packages</module>
     </modules>
-</project>
+</project>
\ No newline at end of file
index 039e409..bd527c6 100644 (file)
@@ -2,6 +2,7 @@
   ============LICENSE_START=======================================================
    Copyright (C) 2018 Ericsson. All rights reserved.
    Copyright (C) 2019-2020 Nordix Foundation.
+   Modifications Copyright (C) 2021 Bell Canada Intellectual Property. 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.
             <groupId>org.onap.policy.common</groupId>
             <artifactId>common-parameters</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.prometheus</groupId>
+            <artifactId>simpleclient</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.onap.policy.apex-pdp.core</groupId>
             <artifactId>core-engine</artifactId>
             </resource>
         </resources>
     </build>
-</project>
+</project>
\ No newline at end of file
index 1924d9f..277b23f 100644 (file)
@@ -2,6 +2,7 @@
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2020-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ *  Modifications Copyright (C) 2021 Bell Canada Intellectual Property. 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.
@@ -21,6 +22,7 @@
 
 package org.onap.policy.apex.service.engine.main;
 
+import io.prometheus.client.Counter;
 import java.util.concurrent.atomic.AtomicLong;
 import lombok.NoArgsConstructor;
 import org.onap.policy.common.utils.services.Registry;
@@ -30,7 +32,28 @@ import org.slf4j.LoggerFactory;
 @NoArgsConstructor
 public class ApexPolicyStatisticsManager {
     private static final Logger LOGGER = LoggerFactory.getLogger(ApexPolicyStatisticsManager.class);
+
+    static final Counter POLICY_DEPLOY_REQUESTS_COUNTER = Counter.build()
+            .name("policies_deploy_requests_total")
+            .help("Total number of TOSCA policies deploy requests.").register();
+    static final Counter POLICY_DEPLOY_REQUESTS_SUCCESS_COUNTER = Counter.build()
+            .name("policies_deploy_requests_success")
+            .help("Total number of TOSCA policies deploy requests that succeeded.").register();
+    static final Counter POLICY_DEPLOY_REQUESTS_FAILED_COUNTER = Counter.build()
+            .name("policies_deploy_requests_failed")
+            .help("Total number of TOSCA policies deploy requests that failed.").register();
+    static final Counter POLICY_UNDEPLOY_REQUESTS_COUNTER = Counter.build()
+            .name("policies_undeploy_requests_total").help("Total number of TOSCA policies undeploy requests.")
+            .register();
+    static final Counter POLICY_UNDEPLOY_REQUESTS_SUCCESS_COUNTER = Counter.build()
+            .name("policies_undeploy_requests_success")
+            .help("Total number of TOSCA policies undeploy requests that succeeded.").register();
+    static final Counter POLICY_UNDEPLOY_REQUESTS_FAILED_COUNTER = Counter.build()
+            .name("policies_undeploy_requests_failed")
+            .help("Total number of TOSCA policies undeploy requests that failed.").register();
+
     public static final String REG_APEX_PDP_POLICY_COUNTER = "object:pdp/statistics/policy/counter";
+
     private final AtomicLong policyDeployCount = new AtomicLong(0);
     private final AtomicLong policyDeploySuccessCount = new AtomicLong(0);
     private final AtomicLong policyDeployFailCount = new AtomicLong(0);
@@ -61,11 +84,14 @@ public class ApexPolicyStatisticsManager {
      * Update the policy deploy count.
      */
     public void updatePolicyDeployCounter(final boolean isSuccessful) {
-        this.updatepPolicyDeployCount();
+        this.policyDeployCount.incrementAndGet();
+        POLICY_DEPLOY_REQUESTS_COUNTER.inc();
         if (!isSuccessful) {
-            this.updatePolicyDeployFailCount();
+            this.policyDeployFailCount.incrementAndGet();
+            POLICY_DEPLOY_REQUESTS_FAILED_COUNTER.inc();
         } else {
-            this.updatePolicyDeploySuccessCount();
+            this.policyDeploySuccessCount.incrementAndGet();
+            POLICY_DEPLOY_REQUESTS_SUCCESS_COUNTER.inc();
         }
     }
 
@@ -73,11 +99,11 @@ public class ApexPolicyStatisticsManager {
      * Update the policy executed count.
      */
     public void updatePolicyExecutedCounter(final boolean isSuccessful) {
-        this.updatePolicyExecutedCount();
+        this.policyExecutedCount.incrementAndGet();
         if (isSuccessful) {
-            this.updatePolicyExecutedSuccessCount();
+            this.policyExecutedSuccessCount.incrementAndGet();
         } else {
-            this.updatePolicyExecutedFailCount();
+            this.policyExecutedFailCount.incrementAndGet();
         }
     }
 
@@ -87,93 +113,26 @@ public class ApexPolicyStatisticsManager {
      */
     public void updatePolicyUndeployCounter(final boolean isSuccessful) {
         this.policyUndeployCount.incrementAndGet();
+        POLICY_UNDEPLOY_REQUESTS_COUNTER.inc();
         if (isSuccessful) {
             this.policyUndeploySuccessCount.incrementAndGet();
+            POLICY_UNDEPLOY_REQUESTS_SUCCESS_COUNTER.inc();
         } else {
             this.policyUndeployFailCount.incrementAndGet();
+            POLICY_UNDEPLOY_REQUESTS_FAILED_COUNTER.inc();
         }
     }
 
-    /**
-     * Method to update the total policy deploy count.
-     *
-     * @return the updated value of policyDeployCount
-     */
-    private long updatepPolicyDeployCount() {
-        return policyDeployCount.incrementAndGet();
-    }
-
-    /**
-     * Method to update the total policy deploy failed count.
-     *
-     * @return the updated value of totalPolicyDeployCount
-     */
-    private long updatePolicyDeployFailCount() {
-        return policyDeployFailCount.incrementAndGet();
-    }
-
-    /**
-     * Method to update the policy deploy success count.
-     *
-     * @return the updated value of policyDeploySuccessCount
-     */
-    private long updatePolicyDeploySuccessCount() {
-        return policyDeploySuccessCount.incrementAndGet();
-    }
-
-
-    /**
-     * Method to update the total policy executed count.
-     *
-     * @return the updated value of policyExecutedCount
-     */
-    private long updatePolicyExecutedCount() {
-        return policyExecutedCount.incrementAndGet();
-    }
-
-    /**
-     * Method to update the policy executed success count.
-     *
-     * @return the updated value of policyExecutedSuccessCount
-     */
-    private long updatePolicyExecutedSuccessCount() {
-        return policyExecutedSuccessCount.incrementAndGet();
-    }
-
-    /**
-     * Method to update the policy executed failure count.
-     *
-     * @return the updated value of policyExecutedFailCount
-     */
-    private long updatePolicyExecutedFailCount() {
-        return policyExecutedFailCount.incrementAndGet();
-    }
-
-    /**
-     * Reset all the statistics counts to 0.
-     */
-    public void resetAllStatistics() {
-        policyDeployCount.set(0L);
-        policyDeployFailCount.set(0L);
-        policyDeploySuccessCount.set(0L);
-        policyUndeployCount.set(0L);
-        policyUndeployFailCount.set(0L);
-        policyUndeploySuccessCount.set(0L);
-        policyExecutedCount.set(0L);
-        policyExecutedSuccessCount.set(0L);
-        policyExecutedFailCount.set(0L);
-    }
-
     public long getPolicyDeployCount() {
-        return policyDeployCount.get();
+        return Double.valueOf(POLICY_DEPLOY_REQUESTS_COUNTER.get()).longValue();
     }
 
     public long getPolicyDeployFailCount() {
-        return policyDeployFailCount.get();
+        return Double.valueOf(POLICY_DEPLOY_REQUESTS_FAILED_COUNTER.get()).longValue();
     }
 
     public long getPolicyDeploySuccessCount() {
-        return policyDeploySuccessCount.get();
+        return Double.valueOf(POLICY_DEPLOY_REQUESTS_SUCCESS_COUNTER.get()).longValue();
     }
 
     public long getPolicyExecutedCount() {
@@ -189,14 +148,14 @@ public class ApexPolicyStatisticsManager {
     }
 
     public long getPolicyUndeployCount() {
-        return policyUndeployCount.get();
+        return Double.valueOf(POLICY_UNDEPLOY_REQUESTS_COUNTER.get()).longValue();
     }
 
     public long getPolicyUndeploySuccessCount() {
-        return policyUndeploySuccessCount.get();
+        return Double.valueOf(POLICY_UNDEPLOY_REQUESTS_SUCCESS_COUNTER.get()).longValue();
     }
 
     public long getPolicyUndeployFailCount() {
-        return policyUndeployFailCount.get();
+        return Double.valueOf(POLICY_UNDEPLOY_REQUESTS_FAILED_COUNTER.get()).longValue();
     }
-}
+}
\ No newline at end of file
index 4c541bd..a63cea5 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 Bell Canada Intellectual Property. 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.
@@ -65,26 +66,6 @@ public class ApexPolicyStatisticsManagerTest {
         assertUndeploys(2, 1, 1);
     }
 
-    @Test
-    public void testResetAllStatistics() {
-        statisticsManager.updatePolicyDeployCounter(true);
-        statisticsManager.updatePolicyDeployCounter(true);
-        statisticsManager.updatePolicyDeployCounter(false);
-        statisticsManager.updatePolicyUndeployCounter(false);
-        statisticsManager.updatePolicyExecutedCounter(true);
-
-        assertDeploys(3, 2, 1);
-        assertUndeploys(1, 0, 1);
-        assertExecuted(1, 1, 0);
-
-        statisticsManager.resetAllStatistics();
-
-        assertDeploys(0, 0, 0);
-        assertUndeploys(0, 0, 0);
-        assertExecuted(0, 0, 0);
-
-    }
-
     private void assertDeploys(long count, long success, long fail) {
         assertEquals(count, statisticsManager.getPolicyDeployCount());
         assertEquals(success, statisticsManager.getPolicyDeploySuccessCount());
@@ -103,4 +84,4 @@ public class ApexPolicyStatisticsManagerTest {
         assertEquals(fail, statisticsManager.getPolicyExecutedFailCount());
     }
 
-}
+}
\ No newline at end of file
index 067a6b1..504e8df 100644 (file)
@@ -2,6 +2,7 @@
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
  *  Modifications Copyright (C) 2020 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 Bell Canada Intellectual Property. 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.
@@ -455,13 +456,5 @@ public class EngineWorkerTest {
         assertNotNull(policyCounter);
         assertEquals(policyCounter.getPolicyExecutedCount(),
                 policyCounter.getPolicyExecutedFailCount() + policyCounter.getPolicyExecutedSuccessCount());
-        policyCounter.resetAllStatistics();
-        assertEquals(0, policyCounter.getPolicyExecutedCount());
-        assertEquals(0, policyCounter.getPolicyExecutedFailCount());
-        assertEquals(0, policyCounter.getPolicyExecutedSuccessCount());
-        assertEquals(0, policyCounter.getPolicyDeployCount());
-        assertEquals(0, policyCounter.getPolicyDeployFailCount());
-        assertEquals(0, policyCounter.getPolicyDeploySuccessCount());
-
     }
-}
+}
\ No newline at end of file