summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/Instance.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-09-11 13:02:32 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-09-11 13:02:32 +0200
commitcedcb5c1047b94890c80a2d71afb808898233b9b (patch)
tree637b78cd06171738a3300043b0af43b43d17b0dc /cpp/src/IceStorm/Instance.cpp
parentMerge remote-tracking branch 'origin/encoding11' into withoutsync (diff)
downloadice-cedcb5c1047b94890c80a2d71afb808898233b9b.tar.bz2
ice-cedcb5c1047b94890c80a2d71afb808898233b9b.tar.xz
ice-cedcb5c1047b94890c80a2d71afb808898233b9b.zip
Support for IceBox services MetricsAdmin and IceStorm metrics
Diffstat (limited to 'cpp/src/IceStorm/Instance.cpp')
-rw-r--r--cpp/src/IceStorm/Instance.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/cpp/src/IceStorm/Instance.cpp b/cpp/src/IceStorm/Instance.cpp
index db9446b93cc..1f6b07dd467 100644
--- a/cpp/src/IceStorm/Instance.cpp
+++ b/cpp/src/IceStorm/Instance.cpp
@@ -12,8 +12,10 @@
#include <IceStorm/DB.h>
#include <IceStorm/Observers.h>
#include <IceStorm/NodeI.h>
+#include <IceStorm/InstrumentationI.h>
#include <IceUtil/Timer.h>
+#include <Ice/InstrumentationI.h>
#include <Ice/Communicator.h>
#include <Ice/Properties.h>
@@ -67,6 +69,16 @@ Instance::Instance(
_observers = new Observers(this);
_batchFlusher = new IceUtil::Timer();
_timer = new IceUtil::Timer();
+
+ //
+ // If an Ice metrics are setup on the communicator, also
+ // enable metrics for IceStorm.
+ //
+ IceMX::CommunicatorObserverIPtr o = IceMX::CommunicatorObserverIPtr::dynamicCast(communicator->getObserver());
+ if(o)
+ {
+ _observer = new IceMX::TopicManagerObserverI(o->getMetricsAdmin());
+ }
}
catch(...)
{
@@ -186,6 +198,12 @@ Instance::connectionPool() const
return _connectionPool;
}
+IceStorm::Instrumentation::TopicManagerObserverPtr
+Instance::observer() const
+{
+ return _observer;
+}
+
IceUtil::Time
Instance::discardInterval() const
{