Extending Prometheus counts to include permit / deny / indeterminant 06/127606/2
authorisaac <isaac.adorno@att.com>
Wed, 9 Mar 2022 22:45:07 +0000 (16:45 -0600)
committerisaac <isaac.adorno@att.com>
Thu, 10 Mar 2022 21:07:35 +0000 (15:07 -0600)
Issue-ID: POLICY-3762
Signed-off-by: isaac <isaac.adorno@att.com>
Change-Id: I2ca7c9384316d08b13a7f90ba99975e602007351

main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpStatisticsManager.java

index 609da8f..26ccfd3 100644 (file)
@@ -36,6 +36,12 @@ public class XacmlPdpStatisticsManager {
     @Setter
     private static XacmlPdpStatisticsManager current = null;
     protected static final String PROMETHEUS_NAMESPACE = "pdpx";
+    protected static final String POLICY_DECISIONS_METRIC = "policy_decisions";
+    public static final String POLICY_DECISIONS_HELP = "The total number of policy decisions.";
+    public static final String PERMIT_OPERATION = "permit";
+    public static final String DENY_OPERATION = "deny";
+    public static final String INDETERMINANT_OPERATION = "indeterminant";
+    public static final String NOT_APPLICABLE_OPERATION = "not_applicable";
 
     protected static final Counter deploymentsCounter =
         Counter.build().namespace(PROMETHEUS_NAMESPACE).name(PrometheusUtils.POLICY_DEPLOYMENTS_METRIC)
@@ -44,6 +50,12 @@ public class XacmlPdpStatisticsManager {
             .help(PrometheusUtils.POLICY_DEPLOYMENT_HELP)
             .register();
 
+    protected static final Counter decisionsCounter =
+        Counter.build().namespace(PROMETHEUS_NAMESPACE).name(POLICY_DECISIONS_METRIC)
+            .labelNames(PrometheusUtils.STATUS_METRIC_LABEL)
+            .help(POLICY_DECISIONS_HELP)
+            .register();
+
     private long totalPolicyTypesCount;
     private long totalPoliciesCount;
     private long errorCount;
@@ -99,6 +111,7 @@ public class XacmlPdpStatisticsManager {
      */
     @Synchronized
     public long updatePermitDecisionsCount() {
+        decisionsCounter.labels(PERMIT_OPERATION).inc();
         return ++permitDecisionsCount;
     }
 
@@ -109,6 +122,7 @@ public class XacmlPdpStatisticsManager {
      */
     @Synchronized
     public long updateDenyDecisionsCount() {
+        decisionsCounter.labels(DENY_OPERATION).inc();
         return ++denyDecisionsCount;
     }
 
@@ -167,6 +181,7 @@ public class XacmlPdpStatisticsManager {
      */
     @Synchronized
     public long updateIndeterminantDecisionsCount() {
+        decisionsCounter.labels(INDETERMINANT_OPERATION).inc();
         return ++indeterminantDecisionsCount;
     }
 
@@ -177,6 +192,7 @@ public class XacmlPdpStatisticsManager {
      */
     @Synchronized
     public long updateNotApplicableDecisionsCount() {
+        decisionsCounter.labels(NOT_APPLICABLE_OPERATION).inc();
         return ++notApplicableDecisionsCount;
     }