CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
edm::storage::StatisticsSenderService::FileStatistics Class Reference

Public Member Functions

 FileStatistics ()
 
void fillUDP (std::ostringstream &os)
 

Private Attributes

ssize_t m_read_single_bytes
 
ssize_t m_read_single_operations
 
ssize_t m_read_single_square
 
ssize_t m_read_vector_bytes
 
ssize_t m_read_vector_count_square
 
ssize_t m_read_vector_count_sum
 
ssize_t m_read_vector_operations
 
ssize_t m_read_vector_square
 
time_t m_start_time
 

Detailed Description

Definition at line 26 of file StatisticsSenderService.h.

Constructor & Destructor Documentation

StatisticsSenderService::FileStatistics::FileStatistics ( )

Definition at line 36 of file StatisticsSenderService.cc.

36  :
46 {}
#define NULL
Definition: scimark2.h:8

Member Function Documentation

void StatisticsSenderService::FileStatistics::fillUDP ( std::ostringstream &  os)

Definition at line 49 of file StatisticsSenderService.cc.

References i, j, NULL, StorageAccount::read, StorageAccount::readv, mathSSE::sqrt(), StorageAccount::summary(), cond::rpcobgas::time, StorageAccount::tokenForStorageClassName(), and UPDATE_AND_OUTPUT_STATISTIC.

Referenced by edm::storage::StatisticsSenderService::fillUDP().

49  {
51  ssize_t read_single_operations = 0;
52  ssize_t read_single_bytes = 0;
53  ssize_t read_single_square = 0;
54  ssize_t read_vector_operations = 0;
55  ssize_t read_vector_bytes = 0;
56  ssize_t read_vector_square = 0;
57  ssize_t read_vector_count_sum = 0;
58  ssize_t read_vector_count_square = 0;
59  auto token = StorageAccount::tokenForStorageClassName("tstoragefile");
60  for (StorageAccount::StorageStats::const_iterator i = stats.begin (); i != stats.end(); ++i) {
61  if (i->first == token.value()) {
62  continue;
63  }
64  for (StorageAccount::OperationStats::const_iterator j = i->second.begin(); j != i->second.end(); ++j) {
65  if (j->first == static_cast<int>(StorageAccount::Operation::readv)) {
66  read_vector_operations += j->second.attempts;
67  read_vector_bytes += j->second.amount;
68  read_vector_count_square += j->second.vector_square;
69  read_vector_square += j->second.amount_square;
70  read_vector_count_sum += j->second.vector_count;
71  } else if (j->first == static_cast<int>(StorageAccount::Operation::read)) {
72  read_single_operations += j->second.attempts;
73  read_single_bytes += j->second.amount;
74  read_single_square += j->second.amount_square;
75  }
76  }
77  }
78  int64_t single_op_count = read_single_operations - m_read_single_operations;
79  if (single_op_count > 0) {
80  double single_sum = read_single_bytes-m_read_single_bytes;
81  double single_average = single_sum/static_cast<double>(single_op_count);
82  os << "\"read_single_sigma\":" << sqrt((static_cast<double>(read_single_square-m_read_single_square) - single_average*single_average*single_op_count)/static_cast<double>(single_op_count)) << ", ";
83  os << "\"read_single_average\":" << single_average << ", ";
84  }
85  m_read_single_square = read_single_square;
86  int64_t vector_op_count = read_vector_operations - m_read_vector_operations;
87  if (vector_op_count > 0) {
88  double vector_average = static_cast<double>(read_vector_bytes-m_read_vector_bytes)/static_cast<double>(vector_op_count);
89  os << "\"read_vector_average\":" << vector_average << ", ";
90  os << "\"read_vector_sigma\":" << sqrt((static_cast<double>(read_vector_square-m_read_vector_square) - vector_average*vector_average*vector_op_count)/static_cast<double>(vector_op_count)) << ", ";
91  double vector_count_average = static_cast<double>(read_vector_count_sum-m_read_vector_count_sum)/static_cast<double>(vector_op_count);
92  os << "\"read_vector_count_average\":" << vector_count_average << ", ";
93  os << "\"read_vector_count_sigma\":" << sqrt((static_cast<double>(read_vector_count_square-m_read_vector_count_square) - vector_count_average*vector_count_average*vector_op_count)/static_cast<double>(vector_op_count)) << ", ";
94  }
95  m_read_vector_square = read_vector_square;
96  m_read_vector_count_square = read_vector_count_square;
97  m_read_vector_count_sum = read_vector_count_sum;
98 
99  os << "\"read_bytes\":" << (read_vector_bytes + read_single_bytes - m_read_vector_bytes - m_read_single_bytes) << ", ";
100  os << "\"read_bytes_at_close\":" << (read_vector_bytes + read_single_bytes - m_read_vector_bytes - m_read_single_bytes) << ", ";
101 
102  // See top of file for macros; not complex, just avoiding copy/paste
103  UPDATE_AND_OUTPUT_STATISTIC(read_single_operations)
104  UPDATE_AND_OUTPUT_STATISTIC(read_single_bytes)
105  UPDATE_AND_OUTPUT_STATISTIC(read_vector_operations)
106  UPDATE_AND_OUTPUT_STATISTIC(read_vector_bytes)
107 
108  os << "\"start_time\":" << m_start_time << ", ";
109  m_start_time = time(NULL);
110  // NOTE: last entry doesn't have the trailing comma.
111  os << "\"end_time\":" << m_start_time;
112 }
int i
Definition: DBlmapReader.cc:9
static const StorageStats & summary(void)
#define NULL
Definition: scimark2.h:8
tbb::concurrent_unordered_map< int, OperationStats > StorageStats
static StorageClassToken tokenForStorageClassName(std::string const &iName)
T sqrt(T t)
Definition: SSEVec.h:48
int j
Definition: DBlmapReader.cc:9
#define UPDATE_AND_OUTPUT_STATISTIC(x)

Member Data Documentation

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_single_bytes
private

Definition at line 32 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_single_operations
private

Definition at line 31 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_single_square
private

Definition at line 33 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_vector_bytes
private

Definition at line 35 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_vector_count_square
private

Definition at line 38 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_vector_count_sum
private

Definition at line 37 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_vector_operations
private

Definition at line 34 of file StatisticsSenderService.h.

ssize_t edm::storage::StatisticsSenderService::FileStatistics::m_read_vector_square
private

Definition at line 36 of file StatisticsSenderService.h.

time_t edm::storage::StatisticsSenderService::FileStatistics::m_start_time
private

Definition at line 39 of file StatisticsSenderService.h.