You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2017/03/11 12:45:08 UTC

svn commit: r1786506 - in /incubator/sirona/trunk/core/src: main/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStore.java test/java/org/apache/sirona/store/counter/ test/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStoreTest.java

Author: rmannibucau
Date: Sat Mar 11 12:45:07 2017
New Revision: 1786506

URL: http://svn.apache.org/viewvc?rev=1786506&view=rev
Log:
SIRONA-65 csv logging counter store

Added:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStore.java
      - copied, changed from r1786455, incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/LoggingCounterDataStore.java
    incubator/sirona/trunk/core/src/test/java/org/apache/sirona/store/counter/
    incubator/sirona/trunk/core/src/test/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStoreTest.java

Copied: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStore.java (from r1786455, incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/LoggingCounterDataStore.java)
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStore.java?p2=incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStore.java&p1=incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/LoggingCounterDataStore.java&r1=1786455&r2=1786506&rev=1786506&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/LoggingCounterDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStore.java Sat Mar 11 12:45:07 2017
@@ -16,28 +16,19 @@
  */
 package org.apache.sirona.store.counter;
 
-import org.apache.sirona.configuration.Configuration;
 import org.apache.sirona.counters.Counter;
-import org.apache.sirona.store.memory.counter.BatchCounterDataStore;
-
-import java.util.Collection;
-import java.util.logging.Logger;
-
-public class LoggingCounterDataStore extends BatchCounterDataStore {
-    private final Logger logger;
-
-    public LoggingCounterDataStore() {
-        logger = Logger.getLogger(Configuration.getProperty(
-                Configuration.CONFIG_PROPERTY_PREFIX + "counter.store.logger.name", "org.apache.sirona.counters"));
-    }
-
-    protected void pushCountersByBatch(final Collection<Counter> instance) {
-        for (final Counter c : instance) {
-            logger.info(format(c));
-        }
-    }
 
+public class CsvLoggingCounterDataStore extends LoggingCounterDataStore {
+    // name, role, hits, concurrency, max, min, mean, sum, stddev
     protected String format(final Counter c) {
-        return c.toString();
+        return '"' + c.getKey().getName().replace('"', '\'') + "\"," +
+                '"' + (c.getKey().getRole() == null ? "-" : c.getKey().getRole().getName()).replace('"', '\'') + "\"," +
+                c.getHits() + "," +
+                c.getMaxConcurrency() + "," +
+                c.getMax() + "," +
+                c.getMin() + "," +
+                c.getMean() + "," +
+                c.getSum() + "," +
+                c.getStandardDeviation();
     }
 }

Added: incubator/sirona/trunk/core/src/test/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStoreTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/test/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStoreTest.java?rev=1786506&view=auto
==============================================================================
--- incubator/sirona/trunk/core/src/test/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStoreTest.java (added)
+++ incubator/sirona/trunk/core/src/test/java/org/apache/sirona/store/counter/CsvLoggingCounterDataStoreTest.java Sat Mar 11 12:45:07 2017
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.apache.sirona.store.counter;
+
+import org.apache.sirona.Role;
+import org.apache.sirona.counters.Counter;
+import org.apache.sirona.counters.DefaultCounter;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class CsvLoggingCounterDataStoreTest {
+    @Test
+    public void format() {
+        new CsvLoggingCounterDataStore() {{
+            assertEquals("\"super.Class.method(Param,String)\",\"performances\",1,0,5.0,5.0,5.0,5.0,0.0",
+                    format(new DefaultCounter(new Counter.Key(Role.PERFORMANCES, "super.Class.method(Param,String)"), this) {{
+                add(5);
+            }}));
+        }};
+    }
+}