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/18 01:29:43 UTC

svn commit: r1578681 - in /incubator/sirona/trunk/server: reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/ reporting/src/main/resources/templates/pathtracking/ store/cassandra/src/main/java/org/apache/sirona/cassandra/collec...

Author: olamy
Date: Tue Mar 18 00:29:43 2014
New Revision: 1578681

URL: http://svn.apache.org/r1578681
Log:
start working on the pathtracking detail screen

Modified:
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm
    incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java

Modified: incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java?rev=1578681&r1=1578680&r2=1578681&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java (original)
+++ incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/pathtracking/PathTrackingEndpoints.java Tue Mar 18 00:29:43 2014
@@ -20,7 +20,9 @@ import org.apache.sirona.configuration.i
 import org.apache.sirona.reporting.web.plugin.api.MapBuilder;
 import org.apache.sirona.reporting.web.plugin.api.Regex;
 import org.apache.sirona.reporting.web.plugin.api.Template;
+import org.apache.sirona.reporting.web.plugin.report.format.HTMLFormat;
 import org.apache.sirona.store.tracking.PathTrackingDataStore;
+import org.apache.sirona.tracking.PathTrackingEntry;
 import org.apache.sirona.util.Environment;
 
 import java.util.Calendar;
@@ -58,7 +60,7 @@ public class PathTrackingEndpoints
         return new Template( "pathtracking/home.vm", params );
     }
 
-    @Regex("/startend/([0-9]*)/([0-9]*)")
+    @Regex( "/startend/([0-9]*)/([0-9]*)" )
     public String startend( final long start, final long end )
     {
 
@@ -75,6 +77,19 @@ public class PathTrackingEndpoints
 
     }
 
+    @Regex( "/pathtrackingdetail/(.*)" )
+    public Template displayPathTrackingDetail( String pathTrackingId )
+    {
+
+        Collection<PathTrackingEntry> entries = PATH_TRACKING_DATA_STORE.retrieve( pathTrackingId );
+
+        return new Template( "pathtracking/pathtrackingdetail.vm", //
+                             new MapBuilder<String, Object>() //
+                                 .set( "headers", HTMLFormat.ATTRIBUTES_ORDERED_LIST ) //
+                                 .set( "entries", entries ).build()//
+        );
+    }
+
 
     static String toJson( final Map<String, String> data )
     { // helper to generate Json

Modified: incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm?rev=1578681&r1=1578680&r2=1578681&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm (original)
+++ incubator/sirona/trunk/server/reporting/src/main/resources/templates/pathtracking/home.vm Tue Mar 18 00:29:43 2014
@@ -17,9 +17,11 @@
 <div class="container-fluid">
     <div class="row">
         <div class="col-lg-3">
+            <ul>
             #foreach( $id in $trackingIds )
-                $id
+                <li><a href="$mapping/pathtracking/pathtrackingdetail/$id">$id</a></li>
             #end
+            </ul>
         </div>
         <div class="col-lg-3">
 

Modified: incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java?rev=1578681&r1=1578680&r2=1578681&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java Tue Mar 18 00:29:43 2014
@@ -26,7 +26,6 @@ import me.prettyprint.hector.api.beans.R
 import me.prettyprint.hector.api.exceptions.HInvalidRequestException;
 import me.prettyprint.hector.api.factory.HFactory;
 import me.prettyprint.hector.api.query.QueryResult;
-import org.apache.cassandra.thrift.InvalidRequestException;
 import org.apache.sirona.cassandra.DynamicDelegatedSerializer;
 import org.apache.sirona.cassandra.collector.CassandraSirona;
 import org.apache.sirona.configuration.ioc.IoCs;
@@ -75,6 +74,15 @@ public class CassandraPathTrackingDataSt
         }
     };
 
+    private static final Comparator<PathTrackingEntry> LEVEL_COMPARATOR = new Comparator<PathTrackingEntry>()
+    {
+        @Override
+        public int compare( PathTrackingEntry o1, PathTrackingEntry o2 )
+        {
+            return Integer.valueOf( o1.getLevel() ).compareTo( Integer.valueOf( o2.getLevel() ) );
+        }
+    };
+
 
     public CassandraPathTrackingDataStore()
     {
@@ -111,7 +119,7 @@ public class CassandraPathTrackingDataSt
                     .addInsertion( id, family, column( "methodName", pathTrackingEntry.getMethodName() ) ) //
                     .addInsertion( id, family, column( "startTime", pathTrackingEntry.getStartTime() ) ) //
                     .addInsertion( id, family, column( "executionTime", pathTrackingEntry.getExecutionTime() ) ) //
-                    // we force level as long to be able to do slice queries include filtering on level, startTime
+                        // we force level as long to be able to do slice queries include filtering on level, startTime
                     .addInsertion( id, family, column( "level", Long.valueOf( pathTrackingEntry.getLevel() ) ) ) //
                     .addInsertion( "PATH_TRACKING", markerFamilly, emptyColumn( id ) ) //
                     .execute();
@@ -134,6 +142,12 @@ public class CassandraPathTrackingDataSt
                                       Integer.toString( pathTrackingEntry.getLevel() ) );
     }
 
+    /**
+     * <b>ordered by level!</b>
+     *
+     * @param trackingId
+     * @return
+     */
     @Override
     public Collection<PathTrackingEntry> retrieve( String trackingId )
     {
@@ -146,9 +160,10 @@ public class CassandraPathTrackingDataSt
                                  "level" ) //
                 .addEqualsExpression( "trackingId", trackingId ) //
                 .setColumnFamily( family ) //
+                .setRowCount( Integer.MAX_VALUE ) //
                 .execute();
 
-        Set<PathTrackingEntry> entries = new TreeSet<PathTrackingEntry>( START_TIME_COMPARATOR );
+        Set<PathTrackingEntry> entries = new TreeSet<PathTrackingEntry>( LEVEL_COMPARATOR );
 
         OrderedRows<String, String, String> rows = cResult.get();