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();