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);
+ }}));
+ }};
+ }
+}