You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ps...@apache.org on 2007/08/18 07:20:32 UTC
svn commit: r567236 - in /labs/pinpoint/trunk: pinpoint-cli/ pinpoint-core/
pinpoint-importer/ pinpoint-metric/
pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/
pinpoint-search/ pinpoint-search/src/main/java/org/apache/logging/pinpoint...
Author: psmith
Date: Fri Aug 17 22:20:30 2007
New Revision: 567236
URL: http://svn.apache.org/viewvc?view=rev&rev=567236
Log:
Now Service layer creates a JPG graph of the current reception and indexing rates in the current directory.
This JPG is in placeof the Restlet stuff that will come later.
Added:
labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricChartUtils.java
Removed:
labs/pinpoint/trunk/pinpoint-core/.classpath
labs/pinpoint/trunk/pinpoint-search/.classpath
labs/pinpoint/trunk/pinpoint-service/.classpath
Modified:
labs/pinpoint/trunk/pinpoint-cli/ (props changed)
labs/pinpoint/trunk/pinpoint-core/ (props changed)
labs/pinpoint/trunk/pinpoint-importer/ (props changed)
labs/pinpoint/trunk/pinpoint-metric/pom.xml
labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/Counter.java
labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricRegistry.java
labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/ObservedValue.java
labs/pinpoint/trunk/pinpoint-search/ (props changed)
labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearchUtils.java
labs/pinpoint/trunk/pinpoint-service/ (props changed)
labs/pinpoint/trunk/pinpoint-service/src/main/java/org/apache/logging/pinpoint/service/Service.java
labs/pinpoint/trunk/pinpoint-service/src/main/resources/org/apache/logging/pinpoint/service/pinpoint-context.xml
labs/pinpoint/trunk/pinpoint-web/ (props changed)
Propchange: labs/pinpoint/trunk/pinpoint-cli/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Aug 17 22:20:30 2007
@@ -1 +1,4 @@
target
+.settings
+.classpath
+.project
Propchange: labs/pinpoint/trunk/pinpoint-core/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Aug 17 22:20:30 2007
@@ -1,2 +1,5 @@
target
hsql*
+.settings
+.classpath
+.project
Propchange: labs/pinpoint/trunk/pinpoint-importer/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Aug 17 22:20:30 2007
@@ -1 +1,4 @@
target
+.settings
+.classpath
+.project
Modified: labs/pinpoint/trunk/pinpoint-metric/pom.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-metric/pom.xml?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-metric/pom.xml (original)
+++ labs/pinpoint/trunk/pinpoint-metric/pom.xml Fri Aug 17 22:20:30 2007
@@ -29,10 +29,15 @@
<artifactId>spring</artifactId>
<version>2.0.5</version>
</dependency>
- <dependency>
- <groupId>jfree</groupId>
- <artifactId>jfreechart</artifactId>
- <version>1.0.5</version>
- </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.3</version>
+ </dependency>
+ <dependency>
+ <groupId>jfree</groupId>
+ <artifactId>jfreechart</artifactId>
+ <version>1.0.5</version>
+ </dependency>
</dependencies>
</project>
Modified: labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/Counter.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/Counter.java?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/Counter.java (original)
+++ labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/Counter.java Fri Aug 17 22:20:30 2007
@@ -5,12 +5,16 @@
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.log4j.Logger;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedResource;
@ManagedResource
public class Counter {
+ private static final Logger LOG = Logger.getLogger(Counter.class);
+
/**
* Default value should hold enough data for 1 hours worth of data sampled
* every 5 seconds.
@@ -52,11 +56,22 @@
* store it with the internally buffered statistics
*/
public synchronized void observe() {
- observations.add(new ObservedValue(System.currentTimeMillis(),
- getValue()));
+ ObservedValue observedValue = new ObservedValue(System
+ .currentTimeMillis(), getValue());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Observed value: " + observedValue);
+ LOG.debug("observations.size():" + observations.size());
+ }
+ observations.add(observedValue);
+
while (observations.size() > this.windowSize) {
observations.removeFirst();
}
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this);
}
}
Added: labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricChartUtils.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricChartUtils.java?view=auto&rev=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricChartUtils.java (added)
+++ labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricChartUtils.java Fri Aug 17 22:20:30 2007
@@ -0,0 +1,57 @@
+package org.apache.logging.pinpoint.metric;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jfree.chart.ChartFactory;
+import org.jfree.chart.JFreeChart;
+import org.jfree.data.time.FixedMillisecond;
+import org.jfree.data.time.TimeSeries;
+import org.jfree.data.time.TimeSeriesCollection;
+import org.jfree.data.time.TimeSeriesDataItem;
+
+public class MetricChartUtils {
+
+ private static final Logger LOG = Logger.getLogger(MetricChartUtils.class);
+
+ public static JFreeChart createChart(Collection<Counter> counters,
+ String title) {
+ TimeSeriesCollection collection = new TimeSeriesCollection();
+
+ for (Counter counter : counters) {
+ TimeSeries series = new TimeSeries(counter.getMetricName(),
+ FixedMillisecond.class);
+ List<ObservedValue> observations = counter.getObservations();
+ ObservedValue lastValue = null;
+ for (ObservedValue observedValue : observations) {
+ if (lastValue != null) {
+ long difference = observedValue.getObservedValue() -
+ lastValue.getObservedValue();
+ double rate = ((double) difference) /
+ ((observedValue.getTimestamp() - lastValue
+ .getTimestamp()) / 1000);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(counter.getMetricName() + ": rate=" + rate);
+ }
+ series.add(new TimeSeriesDataItem(new FixedMillisecond(
+ observedValue.getTimestamp()), rate));
+ }
+ lastValue = observedValue;
+ }
+
+ collection.addSeries(series);
+ }
+ boolean urls = false;
+ boolean tooltips = true;
+ boolean legend = true;
+ String valueAxisLabel = "Rate/second";
+ String timeAxisLabel = "";
+ JFreeChart chart = ChartFactory.createTimeSeriesChart(title,
+ timeAxisLabel, valueAxisLabel, collection, legend, tooltips,
+ urls);
+
+ return chart;
+
+ }
+}
Modified: labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricRegistry.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricRegistry.java?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricRegistry.java (original)
+++ labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/MetricRegistry.java Fri Aug 17 22:20:30 2007
@@ -1,7 +1,8 @@
package org.apache.logging.pinpoint.metric;
import java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Timer;
import java.util.TimerTask;
@@ -15,7 +16,7 @@
private static final Logger LOG = Logger.getLogger(MetricRegistry.class);
- private List<Counter> counters = new ArrayList<Counter>();
+ private Collection<Counter> counters = new ArrayList<Counter>();
private Timer timer = new Timer("MetricRegistry", true);
private boolean running = true;
@@ -32,7 +33,8 @@
counters.add(counter);
}
- public void setCounters(List<Counter> counters) {
+ public void setCounters(Collection<Counter> counters) {
+ LOG.info("Registering counters: " + counters);
this.counters = counters;
}
@@ -67,6 +69,10 @@
@ManagedAttribute(description = "The number of seconds between observations of all registered metrics")
public final int getSampleInterval() {
return sampleInterval;
+ }
+
+ public Collection<Counter> getCounters() {
+ return Collections.unmodifiableCollection(counters);
}
}
Modified: labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/ObservedValue.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/ObservedValue.java?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/ObservedValue.java (original)
+++ labs/pinpoint/trunk/pinpoint-metric/src/main/java/org/apache/logging/pinpoint/metric/ObservedValue.java Fri Aug 17 22:20:30 2007
@@ -1,5 +1,7 @@
package org.apache.logging.pinpoint.metric;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
public class ObservedValue {
private long timestamp;
@@ -16,5 +18,10 @@
public final long getObservedValue() {
return observedValue;
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this);
}
}
Propchange: labs/pinpoint/trunk/pinpoint-search/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Aug 17 22:20:30 2007
@@ -1 +1,4 @@
target
+.settings
+.project
+.classpath
Modified: labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearchUtils.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearchUtils.java?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearchUtils.java (original)
+++ labs/pinpoint/trunk/pinpoint-search/src/main/java/org/apache/logging/pinpoint/search/PinpointSearchUtils.java Fri Aug 17 22:20:30 2007
@@ -63,8 +63,8 @@
* timestamp Perform new search using that time range Display all events
*/
LoggingEvent loggingEvent = eventStore.restore(eventLocation);
- Interval interval = ContextRange.createDefaultContextRange(loggingEvent
- .getTimeStamp());
+ Interval interval = ContextRange
+ .createDefaultContextRange(loggingEvent.timeStamp);
// TODO check the interval spans the same day? Usual PinpointContext
// won't span.
Propchange: labs/pinpoint/trunk/pinpoint-service/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Aug 17 22:20:30 2007
@@ -1 +1,4 @@
target
+.settings
+.classpath
+.project
Modified: labs/pinpoint/trunk/pinpoint-service/src/main/java/org/apache/logging/pinpoint/service/Service.java
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-service/src/main/java/org/apache/logging/pinpoint/service/Service.java?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-service/src/main/java/org/apache/logging/pinpoint/service/Service.java (original)
+++ labs/pinpoint/trunk/pinpoint-service/src/main/java/org/apache/logging/pinpoint/service/Service.java Fri Aug 17 22:20:30 2007
@@ -8,8 +8,17 @@
*/
package org.apache.logging.pinpoint.service;
+import java.io.File;
+import java.util.concurrent.CopyOnWriteArrayList;
+
import org.apache.commons.daemon.Daemon;
import org.apache.commons.daemon.DaemonContext;
+import org.apache.commons.lang.SystemUtils;
+import org.apache.logging.pinpoint.metric.Counter;
+import org.apache.logging.pinpoint.metric.MetricChartUtils;
+import org.apache.logging.pinpoint.metric.MetricRegistry;
+import org.jfree.chart.ChartUtilities;
+import org.jfree.chart.JFreeChart;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Service implements Daemon {
@@ -26,8 +35,17 @@
service.start();
- synchronized (service) {
- service.wait();
+ MetricRegistry registry = (MetricRegistry) service.ctx
+ .getBean("metricRegistry");
+
+ File graphLocation = new File(SystemUtils.USER_DIR, "metricGraph.jpg");
+ while (true) {
+
+ Thread.sleep(1000);
+ JFreeChart chart = MetricChartUtils.createChart(
+ new CopyOnWriteArrayList<Counter>(registry.getCounters()),
+ "Event Rates");
+ ChartUtilities.saveChartAsJPEG(graphLocation, chart, 640, 480);
}
}
Modified: labs/pinpoint/trunk/pinpoint-service/src/main/resources/org/apache/logging/pinpoint/service/pinpoint-context.xml
URL: http://svn.apache.org/viewvc/labs/pinpoint/trunk/pinpoint-service/src/main/resources/org/apache/logging/pinpoint/service/pinpoint-context.xml?view=diff&rev=567236&r1=567235&r2=567236
==============================================================================
--- labs/pinpoint/trunk/pinpoint-service/src/main/resources/org/apache/logging/pinpoint/service/pinpoint-context.xml (original)
+++ labs/pinpoint/trunk/pinpoint-service/src/main/resources/org/apache/logging/pinpoint/service/pinpoint-context.xml Fri Aug 17 22:20:30 2007
@@ -62,7 +62,7 @@
<constructor-arg value="Number of Indexed Events" />
</bean>
- <bean id="metricRegistry" class="org.apache.logging.pinpoint.metric.MetricRegistry" >
+ <bean id="metricRegistry" class="org.apache.logging.pinpoint.metric.MetricRegistry" init-method="start" >
<meta key="jmxObjectName" value="Pinpoint:type=Metrics,name=MetricRegistry" />
<constructor-arg value="5" />
<property name="counters">
Propchange: labs/pinpoint/trunk/pinpoint-web/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Aug 17 22:20:30 2007
@@ -1 +1,4 @@
target
+.settings
+.project
+.classpath
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org