![]() |
![]() |
#include <DataRetrieverMonitorCollection.h>
A collection of MonitoredQuantities related to data retrieval
Definition at line 33 of file DataRetrieverMonitorCollection.h.
typedef std::map<std::string, stor::MonitoredQuantityPtr> smproxy::DataRetrieverMonitorCollection::ConnectionMqMap [private] |
Definition at line 130 of file DataRetrieverMonitorCollection.h.
typedef std::map<std::string, stor::MonitoredQuantity::Stats> smproxy::DataRetrieverMonitorCollection::ConnectionStats |
Definition at line 50 of file DataRetrieverMonitorCollection.h.
typedef boost::shared_ptr<DataRetrieverMQ> smproxy::DataRetrieverMonitorCollection::DataRetrieverMQPtr [private] |
Definition at line 126 of file DataRetrieverMonitorCollection.h.
typedef std::vector<EventTypeStats> smproxy::DataRetrieverMonitorCollection::EventTypeStatList |
Definition at line 60 of file DataRetrieverMonitorCollection.h.
typedef std::map<ConnectionID, DataRetrieverMQPtr> smproxy::DataRetrieverMonitorCollection::RetrieverMqMap [private] |
Definition at line 127 of file DataRetrieverMonitorCollection.h.
Definition at line 37 of file DataRetrieverMonitorCollection.h.
smproxy::DataRetrieverMonitorCollection::DataRetrieverMonitorCollection | ( | const stor::utils::Duration_t & | updateInterval | ) | [explicit] |
Definition at line 17 of file DataRetrieverMonitorCollection.cc.
: MonitorCollection(updateInterval), totalSize_(updateInterval, boost::posix_time::seconds(60)), updateInterval_(updateInterval), eventTypeMqMap_(updateInterval) {}
smproxy::DataRetrieverMonitorCollection::DataRetrieverMonitorCollection | ( | DataRetrieverMonitorCollection const & | ) | [private] |
ConnectionID smproxy::DataRetrieverMonitorCollection::addNewConnection | ( | const stor::RegPtr | regPtr | ) |
Add a new server connection. Returns an unique connection ID.
Definition at line 28 of file DataRetrieverMonitorCollection.cc.
References seconds().
{ boost::mutex::scoped_lock sl(statsMutex_); ++nextConnectionId_; DataRetrieverMQPtr dataRetrieverMQ( new DataRetrieverMQ(regPtr, updateInterval_) ); retrieverMqMap_.insert( RetrieverMqMap::value_type(nextConnectionId_, dataRetrieverMQ) ); eventTypeMqMap_.insert(regPtr); connectionMqMap_.insert(ConnectionMqMap::value_type(regPtr->sourceURL(), stor::MonitoredQuantityPtr( new stor::MonitoredQuantity(updateInterval_, boost::posix_time::seconds(60)) ) )); return nextConnectionId_; }
bool smproxy::DataRetrieverMonitorCollection::addRetrievedSample | ( | const ConnectionID & | connectionId, |
const unsigned int & | size | ||
) |
Add a retrieved sample in Bytes from the given connection. Returns false if the ConnectionID is unknown.
Definition at line 86 of file DataRetrieverMonitorCollection.cc.
References findQualityFiles::size, and reco_skim_cfg_mod::sourceURL.
{ boost::mutex::scoped_lock sl(statsMutex_); RetrieverMqMap::const_iterator retrieverPos = retrieverMqMap_.find(connectionId); if ( retrieverPos == retrieverMqMap_.end() ) return false; const double sizeKB = static_cast<double>(size) / 1024; retrieverPos->second->size_.addSample(sizeKB); const stor::RegPtr regPtr = retrieverPos->second->regPtr_; eventTypeMqMap_.addSample(regPtr, sizeKB); const std::string sourceURL = regPtr->sourceURL(); ConnectionMqMap::const_iterator connectionPos = connectionMqMap_.find(sourceURL); connectionPos->second->addSample(sizeKB); totalSize_.addSample(sizeKB); return true; }
void smproxy::DataRetrieverMonitorCollection::do_calculateStatistics | ( | ) | [private, virtual] |
Implements stor::MonitorCollection.
Definition at line 168 of file DataRetrieverMonitorCollection.cc.
References smproxy::DataRetrieverMonitorCollection::EventTypeMqMap::calculateStatistics(), stor::MonitoredQuantity::calculateStatistics(), connectionMqMap_, eventTypeMqMap_, retrieverMqMap_, statsMutex_, and totalSize_.
{ boost::mutex::scoped_lock sl(statsMutex_); totalSize_.calculateStatistics(); for (RetrieverMqMap::const_iterator it = retrieverMqMap_.begin(), itEnd = retrieverMqMap_.end(); it != itEnd; ++it) { it->second->size_.calculateStatistics(); } for (ConnectionMqMap::const_iterator it = connectionMqMap_.begin(), itEnd = connectionMqMap_.end(); it != itEnd; ++it) { it->second->calculateStatistics(); } eventTypeMqMap_.calculateStatistics(); }
void smproxy::DataRetrieverMonitorCollection::do_reset | ( | ) | [private, virtual] |
Implements stor::MonitorCollection.
Definition at line 190 of file DataRetrieverMonitorCollection.cc.
References smproxy::DataRetrieverMonitorCollection::EventTypeMqMap::clear(), connectionMqMap_, eventTypeMqMap_, stor::MonitoredQuantity::reset(), retrieverMqMap_, statsMutex_, and totalSize_.
{ boost::mutex::scoped_lock sl(statsMutex_); totalSize_.reset(); retrieverMqMap_.clear(); connectionMqMap_.clear(); eventTypeMqMap_.clear(); }
bool smproxy::DataRetrieverMonitorCollection::getEventTypeStatsForConnection | ( | const ConnectionID & | connectionId, |
EventTypeStats & | stats | ||
) |
Put the event type statistics for the given consumer ID into the passed EventTypeStats. Return false if the connection ID is not found.
Definition at line 67 of file DataRetrieverMonitorCollection.cc.
References smproxy::DataRetrieverMonitorCollection::EventTypeStats::connectionStatus, pos, smproxy::DataRetrieverMonitorCollection::EventTypeStats::regPtr, and smproxy::DataRetrieverMonitorCollection::EventTypeStats::sizeStats.
{ boost::mutex::scoped_lock sl(statsMutex_); RetrieverMqMap::const_iterator pos = retrieverMqMap_.find(connectionId); if ( pos == retrieverMqMap_.end() ) return false; stats.regPtr = pos->second->regPtr_; stats.connectionStatus = pos->second->connectionStatus_; pos->second->size_.getStats(stats.sizeStats); return true; }
void smproxy::DataRetrieverMonitorCollection::getStatsByConnection | ( | ConnectionStats & | cs | ) | const |
Write the data retrieval statistics for each connection into the given struct.
Definition at line 134 of file DataRetrieverMonitorCollection.cc.
References connectionMqMap_, and statsMutex_.
{ boost::mutex::scoped_lock sl(statsMutex_); cs.clear(); for (ConnectionMqMap::const_iterator it = connectionMqMap_.begin(), itEnd = connectionMqMap_.end(); it != itEnd; ++it) { stor::MonitoredQuantity::Stats stats; it->second->getStats(stats); cs.insert(ConnectionStats::value_type(it->first, stats)); } }
void smproxy::DataRetrieverMonitorCollection::getStatsByEventTypes | ( | EventTypeStatList & | etsl | ) | const |
Write the data retrieval statistics for each event type request into the given struct.
Definition at line 149 of file DataRetrieverMonitorCollection.cc.
References smproxy::DataRetrieverMonitorCollection::EventTypeStats::connectionStatus, smproxy::DataRetrieverMonitorCollection::EventTypeStats::regPtr, retrieverMqMap_, smproxy::DataRetrieverMonitorCollection::EventTypeStats::sizeStats, python::multivaluedict::sort(), and statsMutex_.
{ boost::mutex::scoped_lock sl(statsMutex_); etsl.clear(); for (RetrieverMqMap::const_iterator it = retrieverMqMap_.begin(), itEnd = retrieverMqMap_.end(); it != itEnd; ++it) { const DataRetrieverMQPtr mq = it->second; EventTypeStats stats; stats.regPtr = mq->regPtr_; stats.connectionStatus = mq->connectionStatus_; mq->size_.getStats(stats.sizeStats); etsl.push_back(stats); } std::sort(etsl.begin(), etsl.end()); }
void smproxy::DataRetrieverMonitorCollection::getSummaryStats | ( | SummaryStats & | stats | ) | const |
Write the data retrieval summary statistics into the given struct.
Definition at line 113 of file DataRetrieverMonitorCollection.cc.
References smproxy::DataRetrieverMonitorCollection::SummaryStats::activeSMs, CONNECTED, eventTypeMqMap_, smproxy::DataRetrieverMonitorCollection::SummaryStats::eventTypeStats, stor::MonitoredQuantity::getStats(), smproxy::DataRetrieverMonitorCollection::EventTypeMqMap::getStats(), smproxy::DataRetrieverMonitorCollection::SummaryStats::registeredSMs, retrieverMqMap_, smproxy::DataRetrieverMonitorCollection::SummaryStats::sizeStats, statsMutex_, and totalSize_.
{ boost::mutex::scoped_lock sl(statsMutex_); stats.registeredSMs = 0; stats.activeSMs = 0; for (RetrieverMqMap::const_iterator it = retrieverMqMap_.begin(), itEnd = retrieverMqMap_.end(); it != itEnd; ++it) { ++stats.registeredSMs; if ( it->second->connectionStatus_ == CONNECTED ) ++stats.activeSMs; } eventTypeMqMap_.getStats(stats.eventTypeStats); totalSize_.getStats(stats.sizeStats); }
DataRetrieverMonitorCollection& smproxy::DataRetrieverMonitorCollection::operator= | ( | DataRetrieverMonitorCollection const & | ) | [private] |
bool smproxy::DataRetrieverMonitorCollection::setConnectionStatus | ( | const ConnectionID & | connectionId, |
const ConnectionStatus & | status | ||
) |
Set status of given connection. Returns false if the ConnectionID is unknown.
Definition at line 53 of file DataRetrieverMonitorCollection.cc.
References pos, and ntuplemaker::status.
{ boost::mutex::scoped_lock sl(statsMutex_); RetrieverMqMap::const_iterator pos = retrieverMqMap_.find(connectionId); if ( pos == retrieverMqMap_.end() ) return false; pos->second->connectionStatus_ = status; return true; }
Definition at line 131 of file DataRetrieverMonitorCollection.h.
Referenced by do_calculateStatistics(), do_reset(), and getStatsByConnection().
Definition at line 174 of file DataRetrieverMonitorCollection.h.
Referenced by do_calculateStatistics(), do_reset(), and getSummaryStats().
Definition at line 134 of file DataRetrieverMonitorCollection.h.
Definition at line 128 of file DataRetrieverMonitorCollection.h.
Referenced by do_calculateStatistics(), do_reset(), getStatsByEventTypes(), and getSummaryStats().
boost::mutex smproxy::DataRetrieverMonitorCollection::statsMutex_ [mutable, private] |
Definition at line 133 of file DataRetrieverMonitorCollection.h.
Referenced by do_calculateStatistics(), do_reset(), getStatsByConnection(), getStatsByEventTypes(), and getSummaryStats().
Definition at line 106 of file DataRetrieverMonitorCollection.h.
Referenced by do_calculateStatistics(), do_reset(), and getSummaryStats().
Reimplemented from stor::MonitorCollection.
Definition at line 125 of file DataRetrieverMonitorCollection.h.
Referenced by smproxy::DataRetrieverMonitorCollection::EventTypeMqMap::insert().