You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by rm...@apache.org on 2013/10/18 18:23:13 UTC
svn commit: r1533537 - in /commons/sandbox/monitoring/trunk: ./ collector/
collector/src/ collector/src/main/ collector/src/main/java/
collector/src/main/java/org/ collector/src/main/java/org/apache/
collector/src/main/java/org/apache/commons/ collecto...
Author: rmannibucau
Date: Fri Oct 18 16:23:12 2013
New Revision: 1533537
URL: http://svn.apache.org/r1533537
Log:
adding base for a collector module, ATM counter data are not that consistent + tests need to be written
Added:
commons/sandbox/monitoring/trunk/collector/
commons/sandbox/monitoring/trunk/collector/pom.xml
commons/sandbox/monitoring/trunk/collector/src/
commons/sandbox/monitoring/trunk/collector/src/main/
commons/sandbox/monitoring/trunk/collector/src/main/java/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/Event.java
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/RestCollector.java
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounter.java
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounterStore.java
commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorDataStoreFactory.java
commons/sandbox/monitoring/trunk/collector/src/main/resources/
commons/sandbox/monitoring/trunk/collector/src/test/
commons/sandbox/monitoring/trunk/collector/src/test/java/
Modified:
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/repositories/DefaultRepository.java
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/store/InMemoryGaugeDataStore.java
commons/sandbox/monitoring/trunk/cube/src/main/java/org/apache/commons/monitoring/cube/CubeCounterDataStore.java
commons/sandbox/monitoring/trunk/pom.xml
Added: commons/sandbox/monitoring/trunk/collector/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/collector/pom.xml?rev=1533537&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/collector/pom.xml (added)
+++ commons/sandbox/monitoring/trunk/collector/pom.xml Fri Oct 18 16:23:12 2013
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>commons-monitoring-parent</artifactId>
+ <groupId>org.apache.commons.monitoring</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>commons-monitoring-collector</artifactId>
+ <name>Commons Monitoring (Sandbox) :: Collector</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaxrs_1.1_spec</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons.monitoring</groupId>
+ <artifactId>commons-monitoring-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <version>2.2.2</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Added: commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/Event.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/Event.java?rev=1533537&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/Event.java (added)
+++ commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/Event.java Fri Oct 18 16:23:12 2013
@@ -0,0 +1,65 @@
+/*
+ * 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.commons.monitoring.collector.rest;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import java.util.Date;
+import java.util.Map;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class Event {
+ private String type;
+ private String marker; // ?? how to map it in our store ??
+ private Map<String, Object> data;
+
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'", timezone = "UTC")
+ private Date time;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(final String type) {
+ this.type = type;
+ }
+
+ public String getMarker() {
+ return marker;
+ }
+
+ public void setMarker(final String marker) {
+ this.marker = marker;
+ }
+
+ public Date getTime() {
+ return time;
+ }
+
+ public void setTime(final Date time) {
+ this.time = time;
+ }
+
+ public Map<String, Object> getData() {
+ return data;
+ }
+
+ public void setData(final Map<String, Object> data) {
+ this.data = data;
+ }
+}
Added: commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/RestCollector.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/RestCollector.java?rev=1533537&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/RestCollector.java (added)
+++ commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/RestCollector.java Fri Oct 18 16:23:12 2013
@@ -0,0 +1,120 @@
+/*
+ * 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.commons.monitoring.collector.rest;
+
+import org.apache.commons.monitoring.Role;
+import org.apache.commons.monitoring.collector.rest.store.CollectorCounter;
+import org.apache.commons.monitoring.collector.rest.store.CollectorCounterStore;
+import org.apache.commons.monitoring.configuration.Configuration;
+import org.apache.commons.monitoring.counters.Counter;
+import org.apache.commons.monitoring.counters.Unit;
+import org.apache.commons.monitoring.store.CounterDataStore;
+import org.apache.commons.monitoring.store.GaugeDataStore;
+import org.apache.commons.monitoring.store.InMemoryGaugeDataStore;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.Map;
+
+// close to cube collector API but backed by sirona DataStore
+@Consumes(MediaType.APPLICATION_JSON)
+@Path("/event")
+public class RestCollector {
+ private static final String OK = "{}";
+ private static final String GAUGE = "gauge";
+ private static final String COUNTER = "counter";
+
+ private final CounterDataStore counterDataStore;
+ private final GaugeDataStore gaugeDataStore;
+
+ public RestCollector() {
+ gaugeDataStore = Configuration.findOrCreateInstance(GaugeDataStore.class);
+ if (!InMemoryGaugeDataStore.class.isInstance(gaugeDataStore)) {
+ throw new IllegalStateException("Collector only works with " + InMemoryGaugeDataStore.class.getName());
+ }
+
+ counterDataStore = Configuration.findOrCreateInstance(CounterDataStore.class);
+ if (!CollectorCounterStore.class.isInstance(counterDataStore)) {
+ throw new IllegalStateException("Collector only works with " + CollectorCounterStore.class.getName());
+ }
+ }
+
+ @POST
+ @Path("put")
+ public Response put(final Event[] events) {
+ if (events != null && events.length > 0) {
+ try {
+ doPut(events);
+ } catch (final Exception e) {
+ return error(e);
+ }
+ }
+ return ok();
+ }
+
+ private void doPut(final Event[] events) {
+ for (final Event event : events) {
+ if (COUNTER.equals(event.getType())) {
+ updateCounter(event);
+ } else if (GAUGE.equals(event.getType())) {
+ updateGauge(event);
+ }
+ }
+ }
+
+ private void updateGauge(final Event event) {
+ final Map<String,Object> data = event.getData();
+
+ final long time = event.getTime().getTime();
+
+ final String role = String.class.cast(data.get("role"));
+ final String unit = String.class.cast(data.get("unit"));
+ final double value= Number.class.cast(data.get("value")).doubleValue();
+
+ final Role roleInstance = new Role(role, Unit.get(unit));
+ gaugeDataStore.createOrNoopGauge(roleInstance);
+ InMemoryGaugeDataStore.class.cast(gaugeDataStore).addToGauge(roleInstance, time, value);
+ }
+
+ private void updateCounter(final Event event) {
+ final Map<String,Object> data = event.getData();
+
+ final long time = event.getTime().getTime();
+
+ final long hits = Number.class.cast(data.get("hits")).longValue();
+ final long sum = Number.class.cast(data.get("sum")).longValue();
+ final int concurrency = Number.class.cast(data.get("concurrency")).intValue();
+
+ final String role = String.class.cast(data.get("role"));
+ final String unit = String.class.cast(data.get("unit"));
+ final String name = String.class.cast(data.get("name"));
+
+ final Counter counter = counterDataStore.getOrCreateCounter(new Counter.Key(new Role(role, Unit.get(unit)), name));
+ CollectorCounter.class.cast(counter).addEvent(time, hits, sum, concurrency); // we checked the store in the constructor so that's ok
+ }
+
+ private Response ok() {
+ return Response.ok(OK).build();
+ }
+
+ private Response error(final Exception e) {
+ return Response.status(400).entity("{\"error\":\"" + e.getMessage() + "\"}").build();
+ }
+}
Added: commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounter.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounter.java?rev=1533537&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounter.java (added)
+++ commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounter.java Fri Oct 18 16:23:12 2013
@@ -0,0 +1,47 @@
+/*
+ * 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.commons.monitoring.collector.rest.store;
+
+import org.apache.commons.monitoring.counters.DefaultCounter;
+import org.apache.commons.monitoring.store.CounterDataStore;
+
+public class CollectorCounter extends DefaultCounter {
+ public CollectorCounter(final Key key, final CounterDataStore store) {
+ super(key, store);
+ }
+
+ public void addEvent(final long time, final long hits, final long sum, final int concurrency) {
+ if (hits == 0) {
+ return;
+ }
+
+ // TODO: find a better solution? to let hits be correct we consider we add N times the average which is
+ // mathematically wrong
+ // a best solution would be to push all raw data
+ // but it has big impact on the measure side that we don't want
+ final double avg = sum * 1. / hits;
+ lock.lock();
+ try {
+ for (long i = 0; i < hits; i++) {
+ addInternal(avg);
+ }
+ updateConcurrency(concurrency);
+ } finally {
+ lock.unlock();
+ }
+ }
+}
Added: commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounterStore.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounterStore.java?rev=1533537&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounterStore.java (added)
+++ commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorCounterStore.java Fri Oct 18 16:23:12 2013
@@ -0,0 +1,27 @@
+/*
+ * 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.commons.monitoring.collector.rest.store;
+
+import org.apache.commons.monitoring.counters.Counter;
+import org.apache.commons.monitoring.store.InMemoryCounterDataStore;
+
+public class CollectorCounterStore extends InMemoryCounterDataStore {
+ @Override
+ protected Counter newCounter(final Counter.Key key) {
+ return new CollectorCounter(key, this);
+ }
+}
Added: commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorDataStoreFactory.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorDataStoreFactory.java?rev=1533537&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorDataStoreFactory.java (added)
+++ commons/sandbox/monitoring/trunk/collector/src/main/java/org/apache/commons/monitoring/collector/rest/store/CollectorDataStoreFactory.java Fri Oct 18 16:23:12 2013
@@ -0,0 +1,26 @@
+/*
+ * 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.commons.monitoring.collector.rest.store;
+
+import org.apache.commons.monitoring.store.DelegateDataStoreFactory;
+import org.apache.commons.monitoring.store.InMemoryGaugeDataStore;
+
+public class CollectorDataStoreFactory extends DelegateDataStoreFactory {
+ public CollectorDataStoreFactory() {
+ super(new CollectorCounterStore(), new InMemoryGaugeDataStore());
+ }
+}
Modified: commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java?rev=1533537&r1=1533536&r2=1533537&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java (original)
+++ commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java Fri Oct 18 16:23:12 2013
@@ -28,8 +28,8 @@ public class DefaultCounter implements C
private final Key key;
private final CounterDataStore dataStore;
private volatile int maxConcurrency = 0;
- private SummaryStatistics statistics;
- private Lock lock = new ReentrantLock();
+ protected SummaryStatistics statistics;
+ protected Lock lock = new ReentrantLock();
public DefaultCounter(final Key key, final CounterDataStore store) {
this.key = key;
Modified: commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/repositories/DefaultRepository.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/repositories/DefaultRepository.java?rev=1533537&r1=1533536&r2=1533537&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/repositories/DefaultRepository.java (original)
+++ commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/repositories/DefaultRepository.java Fri Oct 18 16:23:12 2013
@@ -41,13 +41,15 @@ public class DefaultRepository implement
CounterDataStore counter = null;
try {
counter = Configuration.findOrCreateInstance(CounterDataStore.class);
- } catch (MonitoringException e) {
+ } catch (final MonitoringException e) {
+ // no-op
}
GaugeDataStore gauge = null;
try {
gauge = Configuration.findOrCreateInstance(GaugeDataStore.class);
- } catch (MonitoringException e) {
+ } catch (final MonitoringException e) {
+ // no-op
}
if (counter == null) {
Modified: commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/store/InMemoryGaugeDataStore.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/store/InMemoryGaugeDataStore.java?rev=1533537&r1=1533536&r2=1533537&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/store/InMemoryGaugeDataStore.java (original)
+++ commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/store/InMemoryGaugeDataStore.java Fri Oct 18 16:23:12 2013
@@ -27,7 +27,7 @@ import java.util.concurrent.ConcurrentHa
import java.util.concurrent.ConcurrentSkipListMap;
public class InMemoryGaugeDataStore implements GaugeDataStore {
- private final Map<Role, Map<Long, Double>> gauges = new ConcurrentHashMap<Role, Map<Long, Double>>();
+ protected final Map<Role, Map<Long, Double>> gauges = new ConcurrentHashMap<Role, Map<Long, Double>>();
@Override
public Map<Long, Double> getGaugeValues(GaugeValuesRequest gaugeValuesRequest) {
@@ -53,9 +53,13 @@ public class InMemoryGaugeDataStore impl
gauges.put(role, new FixedSizedMap());
}
+ public void addToGauge(final Role role, final long time, final double value) {
+ gauges.get(role).put(time, value);
+ }
+
@Override
public void addToGauge(final Gauge gauge, final long time, final double value) {
- gauges.get(gauge.role()).put(time, value);
+ addToGauge(gauge.role(), time, value);
}
// no perf issues here normally since add is called not that often
Modified: commons/sandbox/monitoring/trunk/cube/src/main/java/org/apache/commons/monitoring/cube/CubeCounterDataStore.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/cube/src/main/java/org/apache/commons/monitoring/cube/CubeCounterDataStore.java?rev=1533537&r1=1533536&r2=1533537&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/cube/src/main/java/org/apache/commons/monitoring/cube/CubeCounterDataStore.java (original)
+++ commons/sandbox/monitoring/trunk/cube/src/main/java/org/apache/commons/monitoring/cube/CubeCounterDataStore.java Fri Oct 18 16:23:12 2013
@@ -58,6 +58,7 @@ public class CubeCounterDataStore extend
cube.buildEvent(events, COUNTER_TYPE, ts, new MapBuilder()
.add("name", counter.getKey().getName())
.add("role", counter.getKey().getRole().getName())
+ .add("unit", counter.getKey().getRole().getUnit())
// other metrics are not handled by CubeCounter and useless since cube re-aggregate
// so to reduce overhead we just store it locally
.add("concurrency", MetricData.Concurrency.value(counter))
Modified: commons/sandbox/monitoring/trunk/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/pom.xml?rev=1533537&r1=1533536&r2=1533537&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/pom.xml (original)
+++ commons/sandbox/monitoring/trunk/pom.xml Fri Oct 18 16:23:12 2013
@@ -57,6 +57,7 @@
<module>reporting</module>
<module>graphite</module>
<module>cube</module>
+ <module>collector</module>
</modules>
<developers>