diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-08-10 21:42:18 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-08-10 21:42:18 +0200 |
commit | 7398ad9d8297326326f701aead461ccea9b0068b (patch) | |
tree | e0fbd6f7ed247380868d49e7d09a177ee2a3cde1 /cpp/src | |
parent | Added regexp support for Accept/Reject (diff) | |
download | ice-7398ad9d8297326326f701aead461ccea9b0068b.tar.bz2 ice-7398ad9d8297326326f701aead461ccea9b0068b.tar.xz ice-7398ad9d8297326326f701aead461ccea9b0068b.zip |
Added Metrics::failures count and getMetricsFailures method
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/MetricsAdminI.cpp | 37 | ||||
-rw-r--r-- | cpp/src/Ice/MetricsAdminI.h | 7 |
2 files changed, 42 insertions, 2 deletions
diff --git a/cpp/src/Ice/MetricsAdminI.cpp b/cpp/src/Ice/MetricsAdminI.cpp index 30f59eed52a..c300a169cf3 100644 --- a/cpp/src/Ice/MetricsAdminI.cpp +++ b/cpp/src/Ice/MetricsAdminI.cpp @@ -157,6 +157,18 @@ MetricsMapI::getFailures() return failures; } +MetricsFailures +MetricsMapI::getFailures(const string& id) +{ + Lock sync(*this); + map<string, EntryPtr>::const_iterator p = _objects.begin(); + if(p != _objects.end()) + { + return p->second->getFailures(); + } + return MetricsFailures(); +} + MetricsMapI::EntryPtr MetricsMapI::getMatching(const MetricsHelper& helper) { @@ -275,6 +287,17 @@ MetricsViewI::getFailures(const string& mapName) return MetricsFailuresSeq(); } +MetricsFailures +MetricsViewI::getFailures(const string& mapName, const string& id) +{ + map<string, MetricsMapIPtr>::const_iterator p = _maps.find(mapName); + if(p != _maps.end()) + { + return p->second->getFailures(id); + } + return MetricsFailures(); +} + MetricsMapI::EntryPtr MetricsViewI::getMatching(const MetricsHelper& helper) const { @@ -398,7 +421,7 @@ MetricsAdminI::getMetricsView(const string& view, const ::Ice::Current&) } MetricsFailuresSeq -MetricsAdminI::getMetricsFailures(const string& view, const string& map, const ::Ice::Current&) +MetricsAdminI::getMapMetricsFailures(const string& view, const string& map, const ::Ice::Current&) { Lock sync(*this); std::map<string, MetricsViewIPtr>::const_iterator p = _views.find(view); @@ -408,3 +431,15 @@ MetricsAdminI::getMetricsFailures(const string& view, const string& map, const : } return p->second->getFailures(map); } + +MetricsFailures +MetricsAdminI::getMetricsFailures(const string& view, const string& map, const string& id, const ::Ice::Current&) +{ + Lock sync(*this); + std::map<string, MetricsViewIPtr>::const_iterator p = _views.find(view); + if(p == _views.end()) + { + throw UnknownMetricsView(); + } + return p->second->getFailures(map, id); +} diff --git a/cpp/src/Ice/MetricsAdminI.h b/cpp/src/Ice/MetricsAdminI.h index 8609dc6a42f..b1984dadbb6 100644 --- a/cpp/src/Ice/MetricsAdminI.h +++ b/cpp/src/Ice/MetricsAdminI.h @@ -80,6 +80,7 @@ public: failed(const std::string& exceptionName) { IceUtil::Mutex::Lock sync(*this); + ++_object->failures; ++_failures[exceptionName]; } @@ -158,6 +159,7 @@ public: MetricsMapI(const MetricsMapI&); MetricsFailuresSeq getFailures(); + MetricsFailures getFailures(const std::string&); MetricsMap getMetrics() const; EntryPtr getMatching(const MetricsHelper&); @@ -307,6 +309,7 @@ public: MetricsView getMetrics(); MetricsFailuresSeq getFailures(const std::string&); + MetricsFailures getFailures(const std::string&, const std::string&); MetricsMapI::EntryPtr getMatching(const MetricsHelper&) const; @@ -331,7 +334,9 @@ public: virtual Ice::StringSeq getMetricsViewNames(const ::Ice::Current&); virtual MetricsView getMetricsView(const std::string&, const ::Ice::Current&); - virtual MetricsFailuresSeq getMetricsFailures(const std::string&, const std::string&, const ::Ice::Current&); + virtual MetricsFailuresSeq getMapMetricsFailures(const std::string&, const std::string&, const ::Ice::Current&); + virtual MetricsFailures getMetricsFailures(const std::string&, const std::string&, const std::string&, + const ::Ice::Current&); private: |