You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2014/03/03 00:02:02 UTC

svn commit: r1573397 - in /incubator/sirona/trunk: ./ agent/store/cube/src/main/java/org/apache/sirona/cube/ agent/store/cube/src/test/resources/ core/src/main/java/org/apache/sirona/configuration/ioc/ core/src/main/java/org/apache/sirona/store/ core/s...

Author: olamy
Date: Sun Mar  2 23:02:01 2014
New Revision: 1573397

URL: http://svn.apache.org/r1573397
Log:
store path tracking via collector/cube

Added:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java   (with props)
Removed:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DefaultCollectorPathTrackingDataStore.java
Modified:
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/Cube.java
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
    incubator/sirona/trunk/agent/store/cube/src/test/resources/sirona.properties
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/CollectorDataStoreFactory.java
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/gauge/DelegatedCollectorGaugeDataStore.java
    incubator/sirona/trunk/pom.xml
    incubator/sirona/trunk/server/collector/pom.xml
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java
    incubator/sirona/trunk/server/collector/src/test/resources/sirona.properties
    incubator/sirona/trunk/server/reporting/pom.xml
    incubator/sirona/trunk/server/store/cassandra/pom.xml

Modified: incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/Cube.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/Cube.java?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/Cube.java (original)
+++ incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/Cube.java Sun Mar  2 23:02:01 2014
@@ -242,29 +242,28 @@ public class Cube {
         return events;
     }
 
-    public StringBuilder pathTrackingSnapshot( final ConcurrentMap<String, Set<PathTrackingEntry>> pathTrackingEntries ) {
+    public StringBuilder pathTrackingSnapshot( Collection<PathTrackingEntry> pathTrackingEntries ) {
         final StringBuilder events = newEventStream();
         final long ts = System.currentTimeMillis();
-        for (final Map.Entry<String, Set<PathTrackingEntry>> entry : pathTrackingEntries.entrySet() ) {
 
-            for (PathTrackingEntry pathTrackingEntry : entry.getValue()){
+        for (PathTrackingEntry pathTrackingEntry : pathTrackingEntries){
 
-                buildEvent( events, PATHTRACKING_TYPE, ts, new MapBuilder()
-                        .add( TRACKING_D, pathTrackingEntry.getTrackingId() )
-                        .add( NODE_ID, pathTrackingEntry.getNodeId() )
-                        .add( CLASSNAME, pathTrackingEntry.getClassName())
-                        .add( METHOD_NAME, pathTrackingEntry.getMethodName())
-                        .add( START_TIME, pathTrackingEntry.getStartTime())
-                        .add( EXEC_TIME, pathTrackingEntry.getExecutionTime())
-                        .add( LEVEL, pathTrackingEntry.getLevel())
-                        .map()
-                );
-
-            }
+            buildEvent( events, PATHTRACKING_TYPE, ts, new MapBuilder()
+                    .add( TRACKING_D, pathTrackingEntry.getTrackingId() )
+                    .add( NODE_ID, pathTrackingEntry.getNodeId() )
+                    .add( CLASSNAME, pathTrackingEntry.getClassName())
+                    .add( METHOD_NAME, pathTrackingEntry.getMethodName())
+                    .add( START_TIME, pathTrackingEntry.getStartTime())
+                    .add( EXEC_TIME, pathTrackingEntry.getExecutionTime())
+                    .add( LEVEL, pathTrackingEntry.getLevel())
+                    .map()
+            );
 
         }
 
 
+
+
         return events;
     }
 

Modified: incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java Sun Mar  2 23:02:01 2014
@@ -22,6 +22,7 @@ import org.apache.sirona.store.tracking.
 import org.apache.sirona.store.tracking.CollectorPathTrackingDataStore;
 import org.apache.sirona.tracking.PathTrackingEntry;
 
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 
@@ -36,7 +37,10 @@ public class CubePathTrackingDataStore
 
     @Override
     protected void pushEntriesByBatch( ConcurrentMap<String, Set<PathTrackingEntry>> pathTrackingEntries ) {
-        cube.post( cube.pathTrackingSnapshot( pathTrackingEntries ) );
+        for ( Map.Entry<String, Set<PathTrackingEntry>> entry : pathTrackingEntries.entrySet())
+        {
+            cube.post( cube.pathTrackingSnapshot( entry.getValue() ) );
+        }
     }
 
 

Modified: incubator/sirona/trunk/agent/store/cube/src/test/resources/sirona.properties
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cube/src/test/resources/sirona.properties?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cube/src/test/resources/sirona.properties (original)
+++ incubator/sirona/trunk/agent/store/cube/src/test/resources/sirona.properties Sun Mar  2 23:02:01 2014
@@ -19,3 +19,8 @@ org.apache.sirona.cube.period = 100
 org.apache.sirona.cube.CubeBuilder.collector = http://localhost:1234/1.0/event/put
 
 org.apache.sirona.core.gauge.activated = false
+
+
+org.apache.sirona.store.tracking.CollectorPathTrackingDataStore = org.apache.sirona.store.tracking.InMemoryPathTrackingDataStore
+
+org.apache.sirona.store.tracking.PathTrackingDataStore = org.apache.sirona.store.tracking.InMemoryPathTrackingDataStore
\ No newline at end of file

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java Sun Mar  2 23:02:01 2014
@@ -79,7 +79,7 @@ public final class IoCs {
             SINGLETONS.put(clazz, t);
             return t;
         } catch (final Exception e) {
-            throw new SironaException(e.getMessage(),e);
+            throw new SironaException("Cannot find instance for class " + clazz.getName() + " : " + e.getMessage(),e);
         }
     }
 

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/CollectorDataStoreFactory.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/CollectorDataStoreFactory.java?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/CollectorDataStoreFactory.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/CollectorDataStoreFactory.java Sun Mar  2 23:02:01 2014
@@ -19,6 +19,7 @@ package org.apache.sirona.store;
 import org.apache.sirona.store.counter.InMemoryCollectorCounterStore;
 import org.apache.sirona.store.gauge.DelegatedCollectorGaugeDataStore;
 import org.apache.sirona.store.status.InMemoryCollectorNodeStatusDataStore;
+import org.apache.sirona.store.tracking.DelegatedCollectorPathTrackingDataStore;
 import org.apache.sirona.store.tracking.InMemoryPathTrackingDataStore;
 
 public class CollectorDataStoreFactory
@@ -29,6 +30,6 @@ public class CollectorDataStoreFactory
         super( new InMemoryCollectorCounterStore(), //
                new DelegatedCollectorGaugeDataStore(), //
                new InMemoryCollectorNodeStatusDataStore(), //
-               new InMemoryPathTrackingDataStore() );
+               new DelegatedCollectorPathTrackingDataStore() );
     }
 }

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/gauge/DelegatedCollectorGaugeDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/gauge/DelegatedCollectorGaugeDataStore.java?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/gauge/DelegatedCollectorGaugeDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/gauge/DelegatedCollectorGaugeDataStore.java Sun Mar  2 23:02:01 2014
@@ -41,7 +41,7 @@ public class DelegatedCollectorGaugeData
                 DelegatedCollectorGaugeDataStore.class.getClassLoader().loadClass( // use this classloader and not TCCL to avoid issues
                     Configuration.getProperty(Configuration.CONFIG_PROPERTY_PREFIX + "collector.gauge.store-class", InMemoryGaugeDataStore.class.getName())));
         } catch (final ClassNotFoundException e) {
-            throw new SironaException(e);
+            throw new SironaException(e.getMessage(),e);
         }
     }
 

Added: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java?rev=1573397&view=auto
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java (added)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java Sun Mar  2 23:02:01 2014
@@ -0,0 +1,69 @@
+/*
+ * 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.tracking;
+
+import org.apache.sirona.configuration.ioc.IoCs;
+import org.apache.sirona.tracking.PathTrackingEntry;
+
+import java.util.Collection;
+import java.util.Date;
+
+/**
+ *
+ */
+public class DelegatedCollectorPathTrackingDataStore
+    implements CollectorPathTrackingDataStore
+{
+    private final PathTrackingDataStore delegatedPathTrackingDataStore;
+
+
+    public DelegatedCollectorPathTrackingDataStore()
+    {
+        this.delegatedPathTrackingDataStore = IoCs.findOrCreateInstance( PathTrackingDataStore.class );
+    }
+
+
+    @Override
+    public void store( PathTrackingEntry pathTrackingEntry )
+    {
+        this.delegatedPathTrackingDataStore.store( pathTrackingEntry );
+    }
+
+    @Override
+    public void store( Collection<PathTrackingEntry> pathTrackingEntries )
+    {
+        this.delegatedPathTrackingDataStore.store( pathTrackingEntries );
+    }
+
+    @Override
+    public void clearEntries()
+    {
+        this.delegatedPathTrackingDataStore.clearEntries();
+    }
+
+    @Override
+    public Collection<PathTrackingEntry> retrieve( String trackingId )
+    {
+        return this.delegatedPathTrackingDataStore.retrieve( trackingId );
+    }
+
+    @Override
+    public Collection<String> retrieveTrackingIds( Date startTime, Date endTime )
+    {
+        return this.delegatedPathTrackingDataStore.retrieveTrackingIds( startTime, endTime );
+    }
+}

Propchange: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DelegatedCollectorPathTrackingDataStore.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: incubator/sirona/trunk/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/pom.xml?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/pom.xml (original)
+++ incubator/sirona/trunk/pom.xml Sun Mar  2 23:02:01 2014
@@ -236,6 +236,12 @@
           <version>2.1</version>
         </plugin>
 
+        <plugin>
+          <groupId>org.apache.tomcat.maven</groupId>
+          <artifactId>tomcat7-maven-plugin</artifactId>
+          <version>2.2</version>
+        </plugin>
+
       </plugins>
     </pluginManagement>
     <plugins>
@@ -387,6 +393,13 @@
         <artifactId>sirona-web</artifactId>
         <version>${project.version}</version>
       </dependency>
+
+      <dependency>
+        <groupId>commons-codec</groupId>
+        <artifactId>commons-codec</artifactId>
+        <version>1.9</version>
+      </dependency>
+
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec-http</artifactId>

Modified: incubator/sirona/trunk/server/collector/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/collector/pom.xml?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/server/collector/pom.xml (original)
+++ incubator/sirona/trunk/server/collector/pom.xml Sun Mar  2 23:02:01 2014
@@ -28,6 +28,11 @@
   <name>Apache Sirona Incubator :: Server :: Collector</name>
   <packaging>war</packaging>
 
+  <properties>
+    <tomcatRunPort>9090</tomcatRunPort>
+    <tomcatRunPath>/sirona-collector</tomcatRunPath>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
@@ -51,7 +56,6 @@
       <version>2.2.2</version>
     </dependency>
 
-
     <dependency>
       <groupId>org.apache.sirona</groupId>
       <artifactId>sirona-cube</artifactId>
@@ -88,6 +92,29 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.tomcat.maven</groupId>
+        <artifactId>tomcat7-maven-plugin</artifactId>
+        <configuration>
+          <port>${tomcatRunPort}</port>
+          <path>${tomcatRunPath}</path>
+          <systemProperties>
+            <org.apache.sirona.configuration.sirona.properties>${basedir}/sirona.properties</org.apache.sirona.configuration.sirona.properties>
+          </systemProperties>
+        </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.sirona</groupId>
+            <artifactId>sirona-core</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+          <dependency>
+            <groupId>org.apache.sirona</groupId>
+            <artifactId>sirona-cassandra</artifactId>
+            <version>${project.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

Modified: incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java (original)
+++ incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java Sun Mar  2 23:02:01 2014
@@ -134,7 +134,8 @@ public class Collector extends HttpServl
             // TODO validation
         }
 
-        this.mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true);
+        this.mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) //
+                                        .configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true);
 
         { // pulling
             {
@@ -187,7 +188,9 @@ public class Collector extends HttpServl
     }
 
     @Override
-    protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
+    protected void doPost(final HttpServletRequest req, final HttpServletResponse resp)
+        throws ServletException, IOException {
+
         final ServletInputStream inputStream = req.getInputStream();
         try {
             slurpEvents(inputStream);
@@ -265,8 +268,12 @@ public class Collector extends HttpServl
             if (collectionFuture == null) {
                 synchronized (this) {
                     if (collectionFuture == null) {
-                        final ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory("collector-pull-schedule"));
-                        final ScheduledFuture<?> future = ses.scheduleAtFixedRate(new CollectTask(), collectionPeriod, collectionPeriod, TimeUnit.MILLISECONDS);
+                        final ScheduledExecutorService ses =
+                            Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory("collector-pull-schedule"));
+                        final ScheduledFuture<?> future = ses.scheduleAtFixedRate(new CollectTask(), //
+                                                                                  collectionPeriod, //
+                                                                                  collectionPeriod, //
+                                                                                  TimeUnit.MILLISECONDS);
                         collectionFuture = new BatchFuture(ses, future);
                     }
                 }

Modified: incubator/sirona/trunk/server/collector/src/test/resources/sirona.properties
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/collector/src/test/resources/sirona.properties?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/server/collector/src/test/resources/sirona.properties (original)
+++ incubator/sirona/trunk/server/collector/src/test/resources/sirona.properties Sun Mar  2 23:02:01 2014
@@ -20,3 +20,7 @@ org.apache.sirona.cube.CubeBuilder.colle
 org.apache.sirona.cube.CubeBuilder.marker = local
 
 org.apache.sirona.core.gauge.activated = false
+
+org.apache.sirona.store.tracking.CollectorPathTrackingDataStore = org.apache.sirona.store.tracking.InMemoryPathTrackingDataStore
+
+org.apache.sirona.store.tracking.PathTrackingDataStore = org.apache.sirona.store.tracking.InMemoryPathTrackingDataStore
\ No newline at end of file

Modified: incubator/sirona/trunk/server/reporting/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/pom.xml?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/pom.xml (original)
+++ incubator/sirona/trunk/server/reporting/pom.xml Sun Mar  2 23:02:01 2014
@@ -31,6 +31,7 @@
   <properties>
     <tomcatRunPort>8080</tomcatRunPort>
     <tomcatRunPath>/sirona</tomcatRunPath>
+    <sirona.reporting.tomcat.skip>false</sirona.reporting.tomcat.skip>
   </properties>
 
   <dependencies>
@@ -61,7 +62,6 @@
     <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
-      <version>1.8</version>
     </dependency>
     <dependency>
       <groupId>org.apache.velocity</groupId>
@@ -126,10 +126,10 @@
       <plugin>
         <groupId>org.apache.tomcat.maven</groupId>
         <artifactId>tomcat7-maven-plugin</artifactId>
-        <version>2.2</version>
         <configuration>
           <port>${tomcatRunPort}</port>
           <path>${tomcatRunPath}</path>
+          <skip>${sirona.reporting.tomcat.skip}</skip>
         </configuration>
         <dependencies>
           <dependency>

Modified: incubator/sirona/trunk/server/store/cassandra/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/pom.xml?rev=1573397&r1=1573396&r2=1573397&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/pom.xml (original)
+++ incubator/sirona/trunk/server/store/cassandra/pom.xml Sun Mar  2 23:02:01 2014
@@ -56,7 +56,6 @@
     <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
-      <version>1.9</version>
     </dependency>
 
     <dependency>