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 2013/11/08 15:01:51 UTC
svn commit: r1540036 - in /incubator/sirona/trunk/agent/store/cassandra/src:
main/java/org/apache/sirona/cassandra/
main/java/org/apache/sirona/cassandra/collector/
main/java/org/apache/sirona/cassandra/collector/counter/
main/java/org/apache/sirona/ca...
Author: rmannibucau
Date: Fri Nov 8 14:01:51 2013
New Revision: 1540036
URL: http://svn.apache.org/r1540036
Log:
adding CassandraCollectorGaugeDataStore
Added:
incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/collector/gauge/
incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/collector/gauge/AgentGaugeTest.java
Modified:
incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/CassandraBuilder.java
incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java
incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/counter/CassandraCollectorCounterDataStore.java
incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/gauge/CassandraCollectorGaugeDataStore.java
incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/framework/CassandraRunner.java
Modified: incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/CassandraBuilder.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/CassandraBuilder.java?rev=1540036&r1=1540035&r2=1540036&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/CassandraBuilder.java (original)
+++ incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/CassandraBuilder.java Fri Nov 8 14:01:51 2013
@@ -24,9 +24,11 @@ public class CassandraBuilder {
private String cluster = "sirona-cluster";
private String keyspace = "sirona";
private String counterColumnFamily = "counters";
- private String gaugeColumnFamily = "gauges";
+ private String gaugeMetricsColumnFamily = "gauges_values";
+ private String gaugeRolesColumnFamily = "gauges_roles";
private String statusColumnFamily = "statuses";
private String markerCountersColumFamily = "markers_counters";
+ private String markerGaugesColumFamily = "markers_gauges";
private int replicationFactor = 1;
public String getHosts() {
@@ -45,8 +47,8 @@ public class CassandraBuilder {
return counterColumnFamily;
}
- public String getGaugeColumnFamily() {
- return gaugeColumnFamily;
+ public String getGaugeValuesColumnFamily() {
+ return gaugeMetricsColumnFamily;
}
public String getStatusColumnFamily() {
@@ -60,4 +62,8 @@ public class CassandraBuilder {
public String getMarkerCountersColumFamily() {
return markerCountersColumFamily;
}
+
+ public String getMarkerGaugesColumFamily() {
+ return markerGaugesColumFamily;
+ }
}
Modified: incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java?rev=1540036&r1=1540035&r2=1540036&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java (original)
+++ incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java Fri Nov 8 14:01:51 2013
@@ -16,16 +16,23 @@
*/
package org.apache.sirona.cassandra.collector;
+import me.prettyprint.cassandra.serializers.SerializerTypeInferer;
+import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.CassandraHostConfigurator;
+import me.prettyprint.cassandra.service.KeyIterator;
import me.prettyprint.cassandra.service.ThriftKsDef;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
+import me.prettyprint.hector.api.Serializer;
+import me.prettyprint.hector.api.beans.HColumn;
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
import me.prettyprint.hector.api.ddl.ComparatorType;
import me.prettyprint.hector.api.factory.HFactory;
import org.apache.sirona.cassandra.CassandraBuilder;
import org.apache.sirona.configuration.Configuration;
+import java.util.Collection;
+import java.util.HashSet;
import java.util.logging.Logger;
import static java.util.Arrays.asList;
@@ -33,6 +40,7 @@ import static java.util.Arrays.asList;
public class CassandraSirona {
private static final Logger LOGGER = Logger.getLogger(CassandraSirona.class.getName());
+ private static final String EMPTY_VALUE = "";
private static final String SEPARATOR = "->";
private final CassandraBuilder builder = Configuration.findOrCreateInstance(CassandraBuilder.class);
@@ -49,16 +57,17 @@ public class CassandraSirona {
keyspace = HFactory.createKeyspace(keyspaceName, cluster);
final ColumnFamilyDefinition counters = HFactory.createColumnFamilyDefinition(keyspaceName, builder.getCounterColumnFamily(), ComparatorType.UTF8TYPE);
- final ColumnFamilyDefinition gauges = HFactory.createColumnFamilyDefinition(keyspaceName, builder.getGaugeColumnFamily(), ComparatorType.UTF8TYPE);
+ final ColumnFamilyDefinition gauges = HFactory.createColumnFamilyDefinition(keyspaceName, builder.getGaugeValuesColumnFamily(), ComparatorType.UTF8TYPE);
+ final ColumnFamilyDefinition markersGauges = HFactory.createColumnFamilyDefinition(keyspaceName, builder.getMarkerGaugesColumFamily(), ComparatorType.UTF8TYPE);
final ColumnFamilyDefinition statuses = HFactory.createColumnFamilyDefinition(keyspaceName, builder.getStatusColumnFamily(), ComparatorType.UTF8TYPE);
final ColumnFamilyDefinition markersCounters = HFactory.createColumnFamilyDefinition(keyspaceName, builder.getMarkerCountersColumFamily(), ComparatorType.UTF8TYPE);
{ // ensure keyspace exists, here if the keyspace doesn't exist we suppose nothing exist
if (cluster.describeKeyspace(keyspaceName) == null) {
- LOGGER.info("Creating Cassandra '" + keyspaceName + "' keyspace.");
+ LOGGER.info("Creating Sirona Cassandra '" + keyspaceName + "' keyspace.");
cluster.addKeyspace(
HFactory.createKeyspaceDefinition(keyspaceName, ThriftKsDef.DEF_STRATEGY_CLASS, builder.getReplicationFactor(),
- asList(counters, gauges, statuses, markersCounters)));
+ asList(counters, markersCounters, gauges, markersGauges, statuses)));
}
}
}
@@ -70,9 +79,13 @@ public class CassandraSirona {
}
for (final String s : bases) {
- builder.append(s).append(SEPARATOR);
+ if (s != null) {
+ builder.append(s).append(SEPARATOR);
+ }
+ }
+ if (builder.length() > 0) {
+ builder.setLength(builder.length() - SEPARATOR.length());
}
- builder.setLength(builder.length() - SEPARATOR.length());
return builder.toString();
}
@@ -81,10 +94,6 @@ public class CassandraSirona {
HFactory.shutdownCluster(cluster);
}
- public String getCounterColumnFamily() {
- return builder.getCounterColumnFamily();
- }
-
public Keyspace getKeyspace() {
return keyspace;
}
@@ -93,7 +102,35 @@ public class CassandraSirona {
return builder.getMarkerCountersColumFamily();
}
+ public String getMarkerGaugesColumFamily() {
+ return builder.getMarkerGaugesColumFamily();
+ }
+
+ public String getCounterColumnFamily() {
+ return builder.getCounterColumnFamily();
+ }
+
+ public String getGaugeValuesColumnFamily() {
+ return builder.getGaugeValuesColumnFamily();
+ }
+
public String keySeparator() {
return SEPARATOR;
}
+
+ public static HColumn<String, ?> emptyColumn(final String name) {
+ return column(name, EMPTY_VALUE);
+ }
+
+ public static <A, B> HColumn<A, B> column(final A name, final B value) {
+ return HFactory.createColumn(name, value, (Serializer<A>) SerializerTypeInferer.getSerializer(name), (Serializer<B>) SerializerTypeInferer.getSerializer(value));
+ }
+
+ public static Collection<String> keys(final Keyspace keyspace, final String markerFamily) {
+ final Collection<String> set = new HashSet<String>();
+ for (final String item : new KeyIterator.Builder<String>(keyspace, markerFamily, StringSerializer.get()).build()) {
+ set.add(item);
+ }
+ return set;
+ }
}
Modified: incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/counter/CassandraCollectorCounterDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/counter/CassandraCollectorCounterDataStore.java?rev=1540036&r1=1540035&r2=1540036&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/counter/CassandraCollectorCounterDataStore.java (original)
+++ incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/counter/CassandraCollectorCounterDataStore.java Fri Nov 8 14:01:51 2013
@@ -19,7 +19,6 @@ package org.apache.sirona.cassandra.coll
import me.prettyprint.cassandra.serializers.DoubleSerializer;
import me.prettyprint.cassandra.serializers.IntegerSerializer;
import me.prettyprint.cassandra.serializers.LongSerializer;
-import me.prettyprint.cassandra.serializers.SerializerTypeInferer;
import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.KeyIterator;
import me.prettyprint.hector.api.Keyspace;
@@ -46,20 +45,23 @@ import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map;
+import static org.apache.sirona.cassandra.collector.CassandraSirona.column;
+import static org.apache.sirona.cassandra.collector.CassandraSirona.emptyColumn;
+import static org.apache.sirona.cassandra.collector.CassandraSirona.keys;
+
public class CassandraCollectorCounterDataStore extends InMemoryCollectorCounterStore {
private static final String[] FIND_BY_KEYS_COLUMNS = new String[] { "maxConcurrency", "variance", "n", "max", "min", "sum", "m2", "mean" };
- private static final String EMPTY_VALUE = "";
private final Keyspace keyspace;
private final String family;
- private final String markerCounterFamily;
+ private final String markerFamily;
private final CassandraSirona cassandra;
public CassandraCollectorCounterDataStore() {
this.cassandra = Configuration.findOrCreateInstance(CassandraSirona.class);
this.keyspace = cassandra.getKeyspace();
this.family = cassandra.getCounterColumnFamily();
- this.markerCounterFamily = cassandra.getMarkerCountersColumFamily();
+ this.markerFamily = cassandra.getMarkerCountersColumFamily();
}
@Override
@@ -77,7 +79,7 @@ public class CassandraCollectorCounterDa
StringSerializer.get(), StringSerializer.get(), StringSerializer.get());
final QueryResult<ColumnSlice<String, String>> result = q.setKey(marker)
- .setColumnFamily(markerCounterFamily)
+ .setColumnFamily(markerFamily)
.setRange(null, null, false, Integer.MAX_VALUE)
.execute();
@@ -113,11 +115,7 @@ public class CassandraCollectorCounterDa
@Override
public Collection<String> markers() {
- final Collection<String> set = new HashSet<String>();
- for (final String item : new KeyIterator.Builder<String>(cassandra.getKeyspace(), cassandra.getMarkerCountersColumFamily(), StringSerializer.get()).build()) {
- set.add(item);
- }
- return set;
+ return keys(keyspace, markerFamily);
}
@Override // TODO: see if we shouldn't store it or if aggregation can be done on java side
@@ -218,7 +216,7 @@ public class CassandraCollectorCounterDa
// marker-counter
HFactory.createMutator(keyspace, StringSerializer.get())
- .addInsertion(marker, markerCounterFamily, column(id, EMPTY_VALUE))
+ .addInsertion(marker, markerFamily, emptyColumn(id))
.execute();
return counter;
@@ -235,8 +233,4 @@ public class CassandraCollectorCounterDa
}
return col.getValue();
}
-
- protected static <B> HColumn<String, B> column(final String name, final B value) {
- return HFactory.createColumn(name, value, StringSerializer.get(), (Serializer<B>) SerializerTypeInferer.getSerializer(value));
- }
}
Modified: incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/gauge/CassandraCollectorGaugeDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/gauge/CassandraCollectorGaugeDataStore.java?rev=1540036&r1=1540035&r2=1540036&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/gauge/CassandraCollectorGaugeDataStore.java (original)
+++ incubator/sirona/trunk/agent/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/gauge/CassandraCollectorGaugeDataStore.java Fri Nov 8 14:01:51 2013
@@ -16,51 +16,133 @@
*/
package org.apache.sirona.cassandra.collector.gauge;
+import me.prettyprint.cassandra.serializers.DoubleSerializer;
+import me.prettyprint.cassandra.serializers.LongSerializer;
+import me.prettyprint.cassandra.serializers.StringSerializer;
+import me.prettyprint.hector.api.Keyspace;
+import me.prettyprint.hector.api.beans.ColumnSlice;
+import me.prettyprint.hector.api.beans.HColumn;
+import me.prettyprint.hector.api.factory.HFactory;
+import me.prettyprint.hector.api.query.QueryResult;
import org.apache.sirona.Role;
+import org.apache.sirona.cassandra.collector.CassandraSirona;
+import org.apache.sirona.configuration.Configuration;
+import org.apache.sirona.counters.Unit;
import org.apache.sirona.store.gauge.CollectorGaugeDataStore;
import org.apache.sirona.store.gauge.GaugeValuesRequest;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Map;
+import java.util.TreeMap;
+
+import static org.apache.sirona.cassandra.collector.CassandraSirona.column;
+import static org.apache.sirona.cassandra.collector.CassandraSirona.emptyColumn;
+import static org.apache.sirona.cassandra.collector.CassandraSirona.keys;
public class CassandraCollectorGaugeDataStore implements CollectorGaugeDataStore {
- @Override
- public Map<Long, Double> getGaugeValues(final GaugeValuesRequest gaugeValuesRequest) {
- throw new UnsupportedOperationException();
+ private final CassandraSirona cassandra;
+ private final Keyspace keyspace;
+ private final String valueFamily;
+ private final String markerFamily;
+
+ public CassandraCollectorGaugeDataStore() {
+ this.cassandra = Configuration.findOrCreateInstance(CassandraSirona.class);
+ this.keyspace = cassandra.getKeyspace();
+ this.valueFamily = cassandra.getGaugeValuesColumnFamily();
+ this.markerFamily = cassandra.getMarkerGaugesColumFamily();
+ }
+
+ private String id(final Role role, final String marker) { // order is really important here, see keyToRole()
+ return cassandra.generateKey(role.getName(), role.getUnit().getName(), marker);
+ }
+
+ private Role keyToRole(final String key) {
+ final String[] segments = key.split(cassandra.keySeparator());
+ return new Role(segments[0], Unit.get(segments[1])); // no need of segments[2] (= marker)
}
@Override
- public Collection<Role> gauges() {
- throw new UnsupportedOperationException();
+ public void createOrNoopGauge(final Role role, final String marker) {
+ final String id = id(role, marker);
+
+ HFactory.createMutator(keyspace, StringSerializer.get())
+ .addInsertion(marker, markerFamily, emptyColumn(id))
+ .execute();
}
@Override
- public Role findGaugeRole(final String name) {
- throw new UnsupportedOperationException();
+ public void addToGauge(final Role role, final long time, final double value, final String marker) {
+ createOrNoopGauge(role, marker);
+
+ HFactory.createMutator(keyspace, StringSerializer.get())
+ .addInsertion(id(role, marker), valueFamily, column(time, value))
+ .execute();
}
@Override
- public void gaugeStopped(final Role gauge) {
- throw new UnsupportedOperationException();
+ public Collection<String> markers() {
+ return keys(keyspace, markerFamily);
}
@Override
public Map<Long, Double> getGaugeValues(final GaugeValuesRequest gaugeValuesRequest, final String marker) {
- throw new UnsupportedOperationException();
+ final QueryResult<ColumnSlice<Long, Double>> qResult = HFactory.createSliceQuery(keyspace, StringSerializer.get(), LongSerializer.get(), DoubleSerializer.get())
+ .setKey(id(gaugeValuesRequest.getRole(), marker))
+ .setColumnFamily(valueFamily)
+ .setRange(gaugeValuesRequest.getStart(), gaugeValuesRequest.getEnd(), false, Integer.MAX_VALUE)
+ .execute();
+
+ final Map<Long, Double> result = new TreeMap<Long, Double>();
+ for (final HColumn<Long, Double> slide : qResult.get().getColumns()) {
+ result.put(slide.getName(), slide.getValue());
+ }
+
+ return result;
}
@Override
- public void createOrNoopGauge(final Role role, final String marker) {
- throw new UnsupportedOperationException();
+ public Map<Long, Double> getGaugeValues(final GaugeValuesRequest gaugeValuesRequest) {
+ final Map<Long, Double> result = new TreeMap<Long, Double>();
+
+ for (final String marker : markers()) {
+ for (final Map.Entry<Long, Double> values : getGaugeValues(gaugeValuesRequest, marker).entrySet()) {
+ final Long key = values.getKey();
+
+ Double d = result.get(key);
+ if (d == null) {
+ d = 0.;
+ }
+
+ result.put(key, d + values.getValue());
+ }
+ }
+
+ return result;
}
@Override
- public void addToGauge(final Role role, final long time, final double value, final String marker) {
- throw new UnsupportedOperationException();
+ public Collection<Role> gauges() {
+ final Collection<Role> roles = new HashSet<Role>();
+ for (final String key : keys(keyspace, valueFamily)) {
+ roles.add(keyToRole(key));
+ }
+ return roles;
}
@Override
- public Collection<String> markers() {
- throw new UnsupportedOperationException();
+ public Role findGaugeRole(final String name) {
+ for (final String key : keys(keyspace, valueFamily)) {
+ final String[] segments = key.split(cassandra.keySeparator());
+ if (segments[0].equals(name)) {
+ return keyToRole(key);
+ }
+ }
+ throw new IllegalArgumentException("role '" + name + "' not found");
+ }
+
+ @Override
+ public void gaugeStopped(final Role gauge) {
+ // no-op
}
}
Added: incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/collector/gauge/AgentGaugeTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/collector/gauge/AgentGaugeTest.java?rev=1540036&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/collector/gauge/AgentGaugeTest.java (added)
+++ incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/collector/gauge/AgentGaugeTest.java Fri Nov 8 14:01:51 2013
@@ -0,0 +1,93 @@
+/*
+ * 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.cassandra.collector.gauge;
+
+import org.apache.sirona.Role;
+import org.apache.sirona.cassandra.framework.CassandraRunner;
+import org.apache.sirona.counters.Unit;
+import org.apache.sirona.store.gauge.GaugeValuesRequest;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Collection;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(CassandraRunner.class)
+public class AgentGaugeTest {
+ private static final Role ROLE = new Role("_role_", Unit.DECA);
+ private static final String MARKER = "node1";
+
+ @Test
+ public void createGaugeWithMarker() {
+ new CassandraCollectorGaugeDataStore().createOrNoopGauge(ROLE, MARKER);
+ new CassandraCollectorGaugeDataStore().createOrNoopGauge(ROLE, MARKER); // createOrNoopGauge is reentrant
+ final Collection<String> markers = new CassandraCollectorGaugeDataStore().markers();
+ assertNotNull(markers);
+ assertEquals(1, markers.size());
+ assertEquals("node1", markers.iterator().next());
+ }
+
+ @Test
+ public void addToGaugesWithMarker() {
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 1, 5, MARKER);
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 2, 6, MARKER);
+
+ final Map<Long, Double> values = new CassandraCollectorGaugeDataStore().getGaugeValues(new GaugeValuesRequest(0, 5, ROLE), MARKER);
+
+ assertNotNull(values);
+ assertEquals(2, values.size());
+ assertEquals(5., values.get(1L), 0.);
+ assertEquals(6., values.get(2L), 0.);
+ }
+
+ @Test
+ public void getAggregatedGauges() {
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 1, 5, MARKER);
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 2, 6, MARKER);
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 1, 5, "node2");
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 2, 6, "node2");
+
+ final Map<Long, Double> values = new CassandraCollectorGaugeDataStore().getGaugeValues(new GaugeValuesRequest(0, 5, ROLE));
+
+ assertNotNull(values);
+ assertEquals(2, values.size());
+ assertEquals(10., values.get(1L), 0.);
+ assertEquals(12., values.get(2L), 0.);
+ }
+
+ @Test
+ public void gauges() {
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 1, 5, MARKER);
+
+ final Collection<Role> gauges = new CassandraCollectorGaugeDataStore().gauges();
+ assertNotNull(gauges);
+ assertEquals(1, gauges.size());
+ assertEquals(ROLE, gauges.iterator().next());
+ }
+
+ @Test
+ public void findRoles() {
+ new CassandraCollectorGaugeDataStore().addToGauge(ROLE, 1, 5, MARKER);
+
+ final Role found = new CassandraCollectorGaugeDataStore().findGaugeRole(ROLE.getName());
+ assertNotNull(found);
+ assertEquals(ROLE.getUnit(), found.getUnit());
+ }
+}
Modified: incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/framework/CassandraRunner.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/framework/CassandraRunner.java?rev=1540036&r1=1540035&r2=1540036&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/framework/CassandraRunner.java (original)
+++ incubator/sirona/trunk/agent/store/cassandra/src/test/java/org/apache/sirona/cassandra/framework/CassandraRunner.java Fri Nov 8 14:01:51 2013
@@ -60,7 +60,7 @@ public class CassandraRunner extends Blo
}
@Override
- public void evaluate() throws Throwable {
+ public void evaluate() throws Throwable { // one clean instance by test to avoid side effects
EmbeddedCassandraServerHelper.startEmbeddedCassandra();
EmbeddedCassandraServerHelper.cleanEmbeddedCassandra();
try {