CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
ora::Monitoring Class Reference

#include <Monitoring.h>

Public Member Functions

void report (std::ostream &out)
 
SessionMonitoringDatastartSession (const std::string &connectionString)
 
virtual ~Monitoring () throw ()
 

Static Public Member Functions

static void enable ()
 
static Monitoringget ()
 
static bool isEnabled ()
 
static std::string & outFileName ()
 

Private Member Functions

 Monitoring ()
 

Private Attributes

std::map< std::string,
SessionMonitoringData * > 
m_sessions
 

Static Private Attributes

static bool s_enabled = false
 

Detailed Description

Definition at line 38 of file Monitoring.h.

Constructor & Destructor Documentation

ora::Monitoring::~Monitoring ( )
throw (
)
virtual

Definition at line 106 of file Monitoring.cc.

References gather_cfg::cout, alignCSCRings::e, relativeConstraints::empty, cppFunctionSkipper::exception, GetRecoTauVFromDQM_MC_cff::outFile, and zeeHLT_cff::report.

106  {
107  if( isEnabled() ){
108  try {
109  if( !outFileName().empty() ){
110  std::ofstream outFile;
111  outFile.open( outFileName().c_str() );
112  if(outFile.good()){
113  report( outFile );
114  outFile.flush();
115  }
116  outFile.close();
117 
118  } else {
119  report( std::cout );
120  }
121  } catch ( const std::exception& e ){
122  std::cout <<"ORA_MONITORING Error: "<<e.what()<<std::endl;
123  }
124  }
125  // clean up memory
126  for(std::map<std::string,SessionMonitoringData*>::const_iterator iS = m_sessions.begin();
127  iS != m_sessions.end();iS++ ){
128  delete iS->second;
129  }
130 }
std::map< std::string, SessionMonitoringData * > m_sessions
Definition: Monitoring.h:60
static std::string & outFileName()
Definition: Monitoring.cc:95
void report(std::ostream &out)
Definition: Monitoring.cc:138
static bool isEnabled()
Definition: Monitoring.cc:83
tuple cout
Definition: gather_cfg.py:121
ora::Monitoring::Monitoring ( )
private

Definition at line 158 of file Monitoring.cc.

158  :
159  m_sessions(){
160 }
std::map< std::string, SessionMonitoringData * > m_sessions
Definition: Monitoring.h:60

Member Function Documentation

void ora::Monitoring::enable ( )
static

Definition at line 91 of file Monitoring.cc.

91  {
92  s_enabled = true;
93 }
static bool s_enabled
Definition: Monitoring.h:53
ora::Monitoring & ora::Monitoring::get ( void  )
static
bool ora::Monitoring::isEnabled ( )
static

Definition at line 83 of file Monitoring.cc.

Referenced by ora::DatabaseSession::connect().

83  {
84  if(! s_enabled ){
85  const char* envVar = ::getenv( "ORA_MONITORING_LEVEL" );
86  if( envVar && ::strcmp(envVar,"SESSION")==0 ) s_enabled = true;
87  }
88  return s_enabled;
89 }
static bool s_enabled
Definition: Monitoring.h:53
std::string & ora::Monitoring::outFileName ( )
static

Definition at line 95 of file Monitoring.cc.

95  {
96  static std::string s_outFileName("");
97  if( s_outFileName.empty() ){
98  const char* fileEnvVar = ::getenv( "ORA_MONITORING_FILE" );
99  if( fileEnvVar ){
100  s_outFileName = fileEnvVar;
101  }
102  }
103  return s_outFileName;
104 }
void ora::Monitoring::report ( std::ostream &  out)

Definition at line 138 of file Monitoring.cc.

References data, j, ora::SessionMonitoringData::m_connectionString, ora::SessionMonitoringData::m_start, ora::SessionMonitoringData::m_stop, and zeeHLT_cff::report.

138  {
139  out << "### ---------------------------------------------------------------------- "<<std::endl;
140  out << "### ORA Monitoring Summary "<<std::endl;
141  out << "### "<<m_sessions.size()<<" session(s) registered."<<std::endl;
142  size_t j = 1;
143  for( std::map<std::string,SessionMonitoringData*>::const_iterator iS = m_sessions.begin();
144  iS != m_sessions.end(); ++iS ){
145  SessionMonitoringData& data = *iS->second;
146  boost::posix_time::time_duration duration;
147  if( !data.m_stop.is_neg_infinity() ){
148  duration = data.m_stop-data.m_start;
149  }
150  out <<" -> Session #"<<j<<": connection=\""<<data.m_connectionString<<"\" duration="<<boost::posix_time::to_simple_string(duration)<<" transactions="<<(iS->second)->numberOfTransactions()<<std::endl;
151  (iS->second)->report(out);
152  j++;
153  }
154  out << "### ---------------------------------------------------------------------- "<<std::endl;
155 
156 }
std::map< std::string, SessionMonitoringData * > m_sessions
Definition: Monitoring.h:60
int j
Definition: DBlmapReader.cc:9
void report(std::ostream &out)
Definition: Monitoring.cc:138
tuple out
Definition: dbtoconf.py:99
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
ora::SessionMonitoringData * ora::Monitoring::startSession ( const std::string &  connectionString)

Definition at line 132 of file Monitoring.cc.

References ora::guidFromTime(), and run_regression::ret.

Referenced by ora::DatabaseSession::connect().

132  {
133  ora::SessionMonitoringData* ret = new SessionMonitoringData( boost::posix_time::microsec_clock::universal_time(), connectionString );
134  m_sessions.insert(std::make_pair(guidFromTime(),ret));
135  return ret;
136 }
std::map< std::string, SessionMonitoringData * > m_sessions
Definition: Monitoring.h:60
std::string guidFromTime()
Definition: Guid.cc:37

Member Data Documentation

std::map<std::string,SessionMonitoringData*> ora::Monitoring::m_sessions
private

Definition at line 60 of file Monitoring.h.

bool ora::Monitoring::s_enabled = false
staticprivate

Definition at line 53 of file Monitoring.h.