Extending Prometheus counts to include permit / deny / indeterminant

Issue-ID: POLICY-3762
Signed-off-by: isaac <isaac.adorno@att.com>
Change-Id: I2ca7c9384316d08b13a7f90ba99975e602007351
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpStatisticsManager.java b/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpStatisticsManager.java
index 609da8f..26ccfd3 100644
--- a/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpStatisticsManager.java
+++ b/main/src/main/java/org/onap/policy/pdpx/main/rest/XacmlPdpStatisticsManager.java
@@ -36,6 +36,12 @@
     @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 @@
             .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 @@
      */
     @Synchronized
     public long updatePermitDecisionsCount() {
+        decisionsCounter.labels(PERMIT_OPERATION).inc();
         return ++permitDecisionsCount;
     }
 
@@ -109,6 +122,7 @@
      */
     @Synchronized
     public long updateDenyDecisionsCount() {
+        decisionsCounter.labels(DENY_OPERATION).inc();
         return ++denyDecisionsCount;
     }
 
@@ -167,6 +181,7 @@
      */
     @Synchronized
     public long updateIndeterminantDecisionsCount() {
+        decisionsCounter.labels(INDETERMINANT_OPERATION).inc();
         return ++indeterminantDecisionsCount;
     }
 
@@ -177,6 +192,7 @@
      */
     @Synchronized
     public long updateNotApplicableDecisionsCount() {
+        decisionsCounter.labels(NOT_APPLICABLE_OPERATION).inc();
         return ++notApplicableDecisionsCount;
     }