summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/cpp/src/qpid/broker/Deliverable.h1
-rw-r--r--qpid/cpp/src/qpid/broker/Exchange.cpp2
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_0_10/stats.py33
3 files changed, 34 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/broker/Deliverable.h b/qpid/cpp/src/qpid/broker/Deliverable.h
index e08d0e1b20..4dc67fdcfc 100644
--- a/qpid/cpp/src/qpid/broker/Deliverable.h
+++ b/qpid/cpp/src/qpid/broker/Deliverable.h
@@ -38,7 +38,6 @@ namespace qpid {
virtual Message& getMessage() = 0;
virtual void deliverTo(const boost::shared_ptr<Queue>& queue) = 0;
- virtual uint64_t contentSize() { return 0; }
virtual ~Deliverable(){}
};
}
diff --git a/qpid/cpp/src/qpid/broker/Exchange.cpp b/qpid/cpp/src/qpid/broker/Exchange.cpp
index f8a69c4451..b9080cdda5 100644
--- a/qpid/cpp/src/qpid/broker/Exchange.cpp
+++ b/qpid/cpp/src/qpid/broker/Exchange.cpp
@@ -135,7 +135,7 @@ void Exchange::doRoute(Deliverable& msg, ConstBindingList b)
if (mgmtExchange != 0)
{
qmf::org::apache::qpid::broker::Exchange::PerThreadStats *eStats = mgmtExchange->getStatistics();
- uint64_t contentSize = msg.contentSize();
+ uint64_t contentSize = msg.getMessage().getContentSize();
eStats->msgReceives += 1;
eStats->byteReceives += contentSize;
diff --git a/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py b/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py
index d78366a616..d36cc79acc 100644
--- a/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py
+++ b/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py
@@ -63,6 +63,39 @@ class BrokerStatsTests(Base):
def setup_access(self):
return BrokerAgent(self.conn)
+ def test_exchange_stats(self):
+ agent = self.setup_access()
+ start_broker = agent.getBroker()
+
+ agent.addExchange("direct", "stats-test-exchange")
+ sess = self.setup_session()
+ tx_a = sess.sender("stats-test-exchange/a")
+ tx_b = sess.sender("stats-test-exchange/b")
+ rx_a = sess.receiver("stats-test-exchange/a")
+
+ exchange = agent.getExchange("stats-test-exchange")
+ self.failUnless(exchange, "expected a valid exchange object")
+ self.assertEqual(exchange.msgReceives, 0, "msgReceives")
+ self.assertEqual(exchange.msgDrops, 0, "msgDrops")
+ self.assertEqual(exchange.msgRoutes, 0, "msgRoutes")
+ self.assertEqual(exchange.byteReceives, 0, "byteReceives")
+ self.assertEqual(exchange.byteDrops, 0, "byteDrops")
+ self.assertEqual(exchange.byteRoutes, 0, "byteRoutes")
+
+ tx_a.send("0123456789")
+ tx_b.send("01234567890123456789")
+ tx_a.send("012345678901234567890123456789")
+ tx_b.send("0123456789012345678901234567890123456789")
+
+ exchange.update()
+ self.assertEqual(exchange.msgReceives, 4, "msgReceives")
+ self.assertEqual(exchange.msgDrops, 2, "msgDrops")
+ self.assertEqual(exchange.msgRoutes, 2, "msgRoutes")
+ self.assertEqual(exchange.byteReceives, 100, "byteReceives")
+ self.assertEqual(exchange.byteDrops, 60, "byteDrops")
+ self.assertEqual(exchange.byteRoutes, 40, "byteRoutes")
+
+ agent.delExchange("stats-test-exchange")
def test_enqueues_dequeues(self):
agent = self.setup_access()