You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2012/08/13 18:31:52 UTC
svn commit: r1372495 - in /activemq/activemq-apollo/trunk:
apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/
apollo-broker/src/test/scala/
apollo-web/src/main/scala/org/apache/activemq/apollo/web/resources/
Author: chirino
Date: Mon Aug 13 16:31:51 2012
New Revision: 1372495
URL: http://svn.apache.org/viewvc?rev=1372495&view=rev
Log:
move the destination_metrics aggregation logic into virtual host so that it can be tested from unit tests too.
Modified:
activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala
activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/BrokerFunSuiteSupport.scala
activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/resources/BrokerResource.scala
Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala?rev=1372495&r1=1372494&r2=1372495&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala Mon Aug 13 16:31:51 2012
@@ -335,4 +335,24 @@ class VirtualHost(val broker: Broker, va
})
}
+ def get_dest_metrics:FutureResult[AggregateDestMetricsDTO] = {
+ // zero out the enqueue stats on the dsubs since they will already be accounted for in the topic
+ // stats.
+ Future.all(List(get_queue_metrics, get_topic_metrics, get_dsub_metrics)).map { x =>
+ val y = x.toArray
+ val (queue, topic, dsub) = (y(0), y(1), y(2))
+ var rc = new AggregateDestMetricsDTO
+ for( queue <- queue.success_option; topic <- topic.success_option; dsub <- dsub.success_option ) {
+ dsub.enqueue_item_counter = 0L
+ dsub.enqueue_size_counter = 0L
+ dsub.enqueue_ts = 0L
+ rc = aggregate_dest_metrics(List(queue, dsub))
+ DestinationMetricsSupport.add_destination_metrics(rc, topic)
+ rc.objects += topic.objects
+ rc.current_time = broker.now
+ }
+ Success(rc)
+ }
+ }
+
}
Modified: activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/BrokerFunSuiteSupport.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/BrokerFunSuiteSupport.scala?rev=1372495&r1=1372494&r2=1372495&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/BrokerFunSuiteSupport.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-broker/src/test/scala/BrokerFunSuiteSupport.scala Mon Aug 13 16:31:51 2012
@@ -21,7 +21,7 @@ import java.net.InetSocketAddress
import org.apache.activemq.apollo.util._
import FileSupport._
import org.fusesource.hawtdispatch._
-import org.apache.activemq.apollo.dto.{AggregateDestMetricsDTO, QueueStatusDTO, TopicStatusDTO}
+import org.apache.activemq.apollo.dto.{DestMetricsDTO, AggregateDestMetricsDTO, QueueStatusDTO, TopicStatusDTO}
import collection.immutable.HashMap
import java.io.File
import org.scalatest.{ParallelTestExecution, OneInstancePerTest}
@@ -69,24 +69,19 @@ object BrokerTestSupport {
}
def get_queue_metrics(broker:Broker): AggregateDestMetricsDTO = {
- val host = broker.default_virtual_host
- sync(host) {
- host.get_queue_metrics
- }
+ unwrap_future_result(broker.default_virtual_host.get_queue_metrics)
}
def get_topic_metrics(broker:Broker): AggregateDestMetricsDTO = {
- val host = broker.default_virtual_host
- sync(host) {
- host.get_topic_metrics
- }
+ unwrap_future_result(broker.default_virtual_host.get_topic_metrics)
}
def get_dsub_metrics(broker:Broker): AggregateDestMetricsDTO = {
- val host = broker.default_virtual_host
- sync(host) {
- host.get_dsub_metrics
- }
+ unwrap_future_result(broker.default_virtual_host.get_dsub_metrics)
+ }
+
+ def get_dest_metrics(broker:Broker):AggregateDestMetricsDTO = {
+ unwrap_future_result(broker.default_virtual_host.get_dest_metrics)
}
def queue_status(broker:Broker, name: String): QueueStatusDTO = {
@@ -179,6 +174,7 @@ class BrokerFunSuiteSupport extends FunS
def get_queue_metrics = BrokerTestSupport.get_queue_metrics(broker)
def get_topic_metrics = BrokerTestSupport.get_topic_metrics(broker)
def get_dsub_metrics = BrokerTestSupport.get_dsub_metrics(broker)
+ def get_dest_metrics = BrokerTestSupport.get_dest_metrics(broker)
def queue_status(name: String) = BrokerTestSupport.queue_status(broker, name)
def dsub_status(name: String) = BrokerTestSupport.dsub_status(broker, name)
def webadmin_uri(scheme:String = "http") = BrokerTestSupport.webadmin_uri(broker, scheme)
Modified: activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/resources/BrokerResource.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/resources/BrokerResource.scala?rev=1372495&r1=1372494&r2=1372495&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/resources/BrokerResource.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/resources/BrokerResource.scala Mon Aug 13 16:31:51 2012
@@ -385,7 +385,11 @@ class BrokerResource() extends Resource
@GET @Path("/virtual-hosts/{id}/dest-metrics")
@ApiOperation(value = "Aggregates the messaging metrics for all the destinations")
def virtual_host_dest_metrics(@PathParam("id") id : String): AggregateDestMetricsDTO = {
- aggregate(virtual_host_queue_metrics(id), virtual_host_topic_metrics(id), virtual_host_dsub_metrics(id))
+ with_virtual_host(id) { host =>
+ monitoring(host) {
+ host.get_dest_metrics
+ }
+ }
}