First part of onap rename
[appc.git] / appc-metric / appc-metric-bundle / src / main / java / org / openecomp / appc / metricservice / metric / impl / DispatchingFuntionMetricImpl.java
index 0dd3b97..a648795 100644 (file)
@@ -1,10 +1,11 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : APP-C
+ * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- *                                             reserved.
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
  * 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
  * 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.
+ * 
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.metricservice.metric.impl;
+package org.onap.appc.metricservice.metric.impl;
 
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
-import java.util.Date;
+import java.util.HashMap;
 import java.util.TimeZone;
+import java.util.concurrent.atomic.AtomicLong;
 
-import org.openecomp.appc.metricservice.metric.DispatchingFuntionMetric;
-import org.openecomp.appc.metricservice.metric.MetricType;
+import org.onap.appc.metricservice.metric.DispatchingFuntionMetric;
+import org.onap.appc.metricservice.metric.MetricType;
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
 
 public class DispatchingFuntionMetricImpl implements DispatchingFuntionMetric {
-    private  String name;
-    private  MetricType metricType;
-    private long acceptedRequested;
-    private long rejectedRequest;
-    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");
-    private static final EELFLogger logger = EELFManager.getInstance().getLogger(DmaapRequestCounterMetricImpl.class);
-
-    public DispatchingFuntionMetricImpl(String name, MetricType metricType, long acceptedRequested, long rejectedRequest) {
+    private String name;
+    private MetricType metricType;
+    private AtomicLong acceptedRequested = new AtomicLong();
+    private AtomicLong rejectedRequest = new AtomicLong();
+
+    private final SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");
+    private final SimpleDateFormat dateTimeFormat = new SimpleDateFormat("YYYY-MM-dd:HH:mm:ss");
+
+    private String lastResetTime = dateTimeFormat.format(Calendar.getInstance().getTime());
+    private static final EELFLogger logger = EELFManager.getInstance().getLogger(DispatchingFuntionMetricImpl.class);
+
+    public DispatchingFuntionMetricImpl(String name, MetricType metricType, long acceptedRequested,
+                                        long rejectedRequest) {
         this.name = name;
         this.metricType = metricType;
-        this.acceptedRequested = acceptedRequested;
-        this.rejectedRequest = rejectedRequest;
+        this.acceptedRequested.set(acceptedRequested);
+        this.rejectedRequest.set(rejectedRequest);
     }
 
     @Override
     public void incrementAcceptedRequest() {
-        this.acceptedRequested+=1;
+        this.acceptedRequested.incrementAndGet();
     }
 
     @Override
     public void incrementRejectedRequest() {
-        this.rejectedRequest+=1;
+        this.rejectedRequest.incrementAndGet();
     }
 
     @Override
     public String value() {
         logger.debug("Value is getting calculated for metric :" + this.name);
-        try{
+        try {
             Calendar cal = Calendar.getInstance();
             cal.setTimeZone(TimeZone.getTimeZone("UTC"));
-            String date=dateFormat.format(cal.getTime());
-            String value=date+"["+acceptedRequested+","+rejectedRequest+"]"+"@"+(acceptedRequested+rejectedRequest);
-            logger.debug("Current value of the metric "+this.name+" :"+value);
-            return value ;
+            String date = dateFormat.format(cal.getTime());
+            String value = date + "[" + acceptedRequested.get() + "," + rejectedRequest.get() + "]" + "@"
+                    + (acceptedRequested.get() + rejectedRequest.get());
+            logger.debug("Current value of the metric " + this.name + " :" + value);
+            return value;
 
-        }catch (Exception e){
-            logger.debug("Cant format the date.");
+        } catch (Exception e) {
+            logger.debug("Cant format the date.",e);
         }
-        return  null;
+        return null;
 
     }
 
@@ -82,16 +92,33 @@ public class DispatchingFuntionMetricImpl implements DispatchingFuntionMetric {
 
     @Override
     public void reset() {
-        this.acceptedRequested=0;
-        this.rejectedRequest=0;
+        this.acceptedRequested.set(0);
+        this.rejectedRequest.set(0);
+        Calendar cal = Calendar.getInstance();
+        lastResetTime = dateTimeFormat.format(cal.getTime());
     }
 
     @Override
     public MetricType type() {
         return this.metricType;
     }
+
+    @Override
+    public HashMap<String, String> getMetricsOutput() {
+        HashMap<String, String> dispatcherMetricResult = new HashMap<>();
+        dispatcherMetricResult.put("Total Received messages",
+                Long.toString(acceptedRequested.get() + rejectedRequest.get()));
+        dispatcherMetricResult.put("Total Rejected messages", Long.toString(rejectedRequest.get()));
+        return dispatcherMetricResult;
+    }
+
     @Override
     public String toString() {
         return this.value();
     }
+
+    @Override
+    public String getLastModified() {
+        return lastResetTime;
+    }
 }