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:01:35 UTC
svn commit: r1573396 - in /incubator/sirona/trunk:
agent/pull/src/main/java/org/apache/sirona/agent/webapp/pull/repository/
agent/store/cube/src/main/java/org/apache/sirona/cube/
core/src/main/java/org/apache/sirona/configuration/ioc/ core/src/main/jav...
Author: olamy
Date: Sun Mar 2 23:01:35 2014
New Revision: 1573396
URL: http://svn.apache.org/r1573396
Log:
collecting path tracking entries
Added:
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/CollectorPathTrackingDataStore.java
- copied, changed from r1572432, incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DefaultCollectorPathTrackingDataStore.java
- copied, changed from r1572432, incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
Modified:
incubator/sirona/trunk/agent/pull/src/main/java/org/apache/sirona/agent/webapp/pull/repository/PullRepository.java
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/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/BatchPathTrackingDataStore.java
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java
incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/pathtracking/CassandraPathTrackingDataStore.java
Modified: incubator/sirona/trunk/agent/pull/src/main/java/org/apache/sirona/agent/webapp/pull/repository/PullRepository.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/pull/src/main/java/org/apache/sirona/agent/webapp/pull/repository/PullRepository.java?rev=1573396&r1=1573395&r2=1573396&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/pull/src/main/java/org/apache/sirona/agent/webapp/pull/repository/PullRepository.java (original)
+++ incubator/sirona/trunk/agent/pull/src/main/java/org/apache/sirona/agent/webapp/pull/repository/PullRepository.java Sun Mar 2 23:01:35 2014
@@ -34,6 +34,9 @@ import org.apache.sirona.store.tracking.
import java.util.Collection;
import java.util.Collections;
+/**
+ * FIXME we do not send path tracking entries here!
+ */
public class PullRepository extends DefaultRepository {
private static final String REGISTRATION_TYPE = "registration";
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=1573396&r1=1573395&r2=1573396&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:01:35 2014
@@ -65,17 +65,11 @@ public class Cube {
private static final String M_2 = "m2";
private static final String TRACKING_D = "trackingId";
-
private static final String NODE_ID = "nodeId";
-
private static final String CLASSNAME = "className";
-
private static final String METHOD_NAME = "methodName";
-
private static final String START_TIME = "startTime";
-
private static final String EXEC_TIME = "executionTime";
-
private static final String LEVEL = "level";
private static final String JSON_BASE = "{" +
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=1573396&r1=1573395&r2=1573396&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:01:35 2014
@@ -19,6 +19,7 @@ package org.apache.sirona.cube;
import org.apache.sirona.configuration.ioc.IoCs;
import org.apache.sirona.store.tracking.BatchPathTrackingDataStore;
+import org.apache.sirona.store.tracking.CollectorPathTrackingDataStore;
import org.apache.sirona.tracking.PathTrackingEntry;
import java.util.Set;
@@ -29,12 +30,12 @@ import java.util.concurrent.ConcurrentMa
*/
public class CubePathTrackingDataStore
extends BatchPathTrackingDataStore
+ implements CollectorPathTrackingDataStore
{
private final Cube cube = IoCs.findOrCreateInstance( CubeBuilder.class ).build();
@Override
- protected void pushEntriesByBatch( ConcurrentMap<String, Set<PathTrackingEntry>> pathTrackingEntries )
- {
+ protected void pushEntriesByBatch( ConcurrentMap<String, Set<PathTrackingEntry>> pathTrackingEntries ) {
cube.post( cube.pathTrackingSnapshot( pathTrackingEntries ) );
}
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=1573396&r1=1573395&r2=1573396&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:01:35 2014
@@ -79,7 +79,7 @@ public final class IoCs {
SINGLETONS.put(clazz, t);
return t;
} catch (final Exception e) {
- throw new SironaException(e);
+ throw new SironaException(e.getMessage(),e);
}
}
Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/BatchPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/BatchPathTrackingDataStore.java?rev=1573396&r1=1573395&r2=1573396&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/BatchPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/BatchPathTrackingDataStore.java Sun Mar 2 23:01:35 2014
@@ -56,20 +56,22 @@ public abstract class BatchPathTrackingD
Executors.newSingleThreadScheduledExecutor( new DaemonThreadFactory( name + "-pathtracking-schedule-" ) );
final ScheduledFuture<?> future =
- ses.scheduleAtFixedRate( new PushGaugesTask(), period, period, TimeUnit.MILLISECONDS );
+ ses.scheduleAtFixedRate( new PushPathTrackingTask(), period, period, TimeUnit.MILLISECONDS );
scheduledTask = new BatchFuture( ses, future );
}
protected int getPeriod( final String name )
{
- return Configuration.getInteger( Configuration.CONFIG_PROPERTY_PREFIX + name + ".pathtracking.period", //
+ int period = Configuration.getInteger( Configuration.CONFIG_PROPERTY_PREFIX + name + ".pathtracking.period", //
Configuration.getInteger(
Configuration.CONFIG_PROPERTY_PREFIX + name + ".period", 60000 ) );
+
+ return period;
}
- private class PushGaugesTask
+ private class PushPathTrackingTask
implements Runnable
{
@Override
Copied: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/CollectorPathTrackingDataStore.java (from r1572432, incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java)
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/CollectorPathTrackingDataStore.java?p2=incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/CollectorPathTrackingDataStore.java&p1=incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java&r1=1572432&r2=1573396&rev=1573396&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/CollectorPathTrackingDataStore.java Sun Mar 2 23:01:35 2014
@@ -15,28 +15,12 @@
* limitations under the License.
*/
-package org.apache.sirona.cube;
-
-import org.apache.sirona.configuration.ioc.IoCs;
-import org.apache.sirona.store.tracking.BatchPathTrackingDataStore;
-import org.apache.sirona.tracking.PathTrackingEntry;
-
-import java.util.Set;
-import java.util.concurrent.ConcurrentMap;
+package org.apache.sirona.store.tracking;
/**
*
*/
-public class CubePathTrackingDataStore
- extends BatchPathTrackingDataStore
+public interface CollectorPathTrackingDataStore
+ extends PathTrackingDataStore
{
- private final Cube cube = IoCs.findOrCreateInstance( CubeBuilder.class ).build();
-
- @Override
- protected void pushEntriesByBatch( ConcurrentMap<String, Set<PathTrackingEntry>> pathTrackingEntries )
- {
- cube.post( cube.pathTrackingSnapshot( pathTrackingEntries ) );
- }
-
-
}
Copied: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DefaultCollectorPathTrackingDataStore.java (from r1572432, incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java)
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DefaultCollectorPathTrackingDataStore.java?p2=incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DefaultCollectorPathTrackingDataStore.java&p1=incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java&r1=1572432&r2=1573396&rev=1573396&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/DefaultCollectorPathTrackingDataStore.java Sun Mar 2 23:01:35 2014
@@ -14,29 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package org.apache.sirona.cube;
-
-import org.apache.sirona.configuration.ioc.IoCs;
-import org.apache.sirona.store.tracking.BatchPathTrackingDataStore;
-import org.apache.sirona.tracking.PathTrackingEntry;
-
-import java.util.Set;
-import java.util.concurrent.ConcurrentMap;
+package org.apache.sirona.store.tracking;
/**
*
*/
-public class CubePathTrackingDataStore
- extends BatchPathTrackingDataStore
+public class DefaultCollectorPathTrackingDataStore
+ extends InMemoryPathTrackingDataStore
+ implements CollectorPathTrackingDataStore
{
- private final Cube cube = IoCs.findOrCreateInstance( CubeBuilder.class ).build();
-
- @Override
- protected void pushEntriesByBatch( ConcurrentMap<String, Set<PathTrackingEntry>> pathTrackingEntries )
- {
- cube.post( cube.pathTrackingSnapshot( pathTrackingEntries ) );
- }
-
-
+ // no op currently but just in case will be easy to add something here
}
Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java?rev=1573396&r1=1573395&r2=1573396&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java Sun Mar 2 23:01:35 2014
@@ -37,7 +37,7 @@ import java.util.concurrent.ConcurrentMa
* <b>MUST NOT be used in production</b>
*/
public class InMemoryPathTrackingDataStore
- implements PathTrackingDataStore
+ implements PathTrackingDataStore, CollectorPathTrackingDataStore
{
/**
* store path track tracking entries list per path tracking id
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=1573396&r1=1573395&r2=1573396&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:01:35 2014
@@ -37,6 +37,8 @@ import org.apache.sirona.store.counter.C
import org.apache.sirona.store.gauge.CollectorGaugeDataStore;
import org.apache.sirona.store.status.CollectorNodeStatusDataStore;
import org.apache.sirona.store.status.NodeStatusDataStore;
+import org.apache.sirona.store.tracking.CollectorPathTrackingDataStore;
+import org.apache.sirona.tracking.PathTrackingEntry;
import org.apache.sirona.util.DaemonThreadFactory;
import javax.net.ssl.HttpsURLConnection;
@@ -78,6 +80,7 @@ public class Collector extends HttpServl
private static final String VALIDATION = "validation";
private static final String STATUS = "status";
private static final String REGISTRATION = "registration";
+ private static final String PATH_TRACKING = "pathtracking";
private static final String GET = "GET";
@@ -86,6 +89,7 @@ public class Collector extends HttpServl
private CollectorCounterStore counterDataStore = null;
private CollectorGaugeDataStore gaugeDataStore = null;
private CollectorNodeStatusDataStore statusDataStore;
+ private CollectorPathTrackingDataStore pathTrackingDataStore;
private ObjectMapper mapper;
private final Collection<AgentNode> agents = new CopyOnWriteArraySet<AgentNode>();
@@ -125,6 +129,11 @@ public class Collector extends HttpServl
this.statusDataStore = CollectorNodeStatusDataStore.class.cast(nds);
}
+ {
+ this.pathTrackingDataStore = IoCs.findOrCreateInstance( CollectorPathTrackingDataStore.class );
+ // TODO validation
+ }
+
this.mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true);
{ // pulling
@@ -209,7 +218,9 @@ public class Collector extends HttpServl
} else if (GAUGE.equals(type)) {
updateGauge(event);
} else if (REGISTRATION.equals(type)) {
- registerNode(event);
+ registerNode( event );
+ } else if (PATH_TRACKING.equals(type)) {
+ updatePathTracking(event);
} else {
LOGGER.info("Unexpected type '" + type + "', skipping");
}
@@ -272,18 +283,31 @@ public class Collector extends HttpServl
gaugeDataStore.addToGauge(role(data), time, value, String.class.cast(data.get("marker")));
}
+ private void updatePathTracking(final Event event) {
+ final Map<String, Object> data = event.getData();
+
+ pathTrackingDataStore.store(
+ new PathTrackingEntry( String.class.cast(data.get("trackingId")),//
+ String.class.cast(data.get("nodeId")), //
+ String.class.cast(data.get("className")), //
+ String.class.cast(data.get("methodName")), //
+ Number.class.cast(data.get("startTime")).longValue(), //
+ Number.class.cast(data.get("executionTime")).longValue(), //
+ Number.class.cast(data.get("level") ).intValue() ));
+ }
+
+
+
private void updateCounter(final Event event) {
final Map<String, Object> data = event.getData();
- counterDataStore.update(
- new Counter.Key(role(data), String.class.cast(data.get("name"))),
- String.class.cast(data.get("marker")),
- new M2AwareStatisticalSummary(data),
- Number.class.cast(data.get("concurrency")).intValue());
+ counterDataStore.update( new Counter.Key( role( data ), String.class.cast( data.get( "name" ) ) ),
+ String.class.cast( data.get( "marker" ) ), new M2AwareStatisticalSummary( data ),
+ Number.class.cast( data.get( "concurrency" ) ).intValue() );
}
private Role role(final Map<String, Object> data) {
- final String name = String.class.cast(data.get("role"));
+ final String name = String.class.cast( data.get( "role" ) );
final Role existing = roles.get(name);
if (existing != null) {
return existing;
Modified: incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/pathtracking/CassandraPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/pathtracking/CassandraPathTrackingDataStore.java?rev=1573396&r1=1573395&r2=1573396&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/pathtracking/CassandraPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/pathtracking/CassandraPathTrackingDataStore.java Sun Mar 2 23:01:35 2014
@@ -31,6 +31,7 @@ import org.apache.sirona.cassandra.Dynam
import org.apache.sirona.cassandra.collector.CassandraSirona;
import org.apache.sirona.configuration.ioc.IoCs;
import org.apache.sirona.store.tracking.BatchPathTrackingDataStore;
+import org.apache.sirona.store.tracking.CollectorPathTrackingDataStore;
import org.apache.sirona.store.tracking.PathTrackingDataStore;
import org.apache.sirona.tracking.PathTrackingEntry;
@@ -52,7 +53,7 @@ import static org.apache.sirona.cassandr
*/
public class CassandraPathTrackingDataStore
extends BatchPathTrackingDataStore
- implements PathTrackingDataStore
+ implements PathTrackingDataStore, CollectorPathTrackingDataStore
{
private final CassandraSirona cassandra;