29
29
#define DEFAULT_FILE_NAME (char*)"dumpFile"
30
30
#define DEFAULT_EXTENSION (char*)".csv"
32
#define MAX_REPARTITION_HEADER_LENGTH 1024
33
#define MAX_REPARTITION_INFO_LENGTH 1024
34
32
#define MAX_CHAR_BUFFER_SIZE 1024
38
35
#include <sys/time.h>
45
41
#include <gsl/gsl_rng.h>
46
42
#include <gsl/gsl_randist.h>
47
43
#include <gsl/gsl_cdf.h>
50
/* MAX_RTD_INFO_LENGTH defines the number of RTD begin and end points a single
51
* call can have. If you need more than five, you can increase this number,
52
* but you also need to insert entries into the E_CounterName enum in stat.hpp.
54
#define MAX_RTD_INFO_LENGTH 5
45
#include "variables.hpp"
56
47
using namespace std;
110
102
E_FAILED_CALL_REJECTED,
111
103
E_FAILED_CMD_NOT_SENT,
112
104
E_FAILED_REGEXP_DOESNT_MATCH,
105
E_FAILED_REGEXP_SHOULDNT_MATCH,
113
106
E_FAILED_REGEXP_HDR_NOT_FOUND,
114
107
E_FAILED_OUTBOUND_CONGESTION,
115
108
E_FAILED_TIMEOUT_ON_RECV,
116
109
E_FAILED_TIMEOUT_ON_SEND,
117
110
E_OUT_OF_CALL_MSGS,
118
113
E_DEAD_CALL_MSGS,
119
116
E_RETRANSMISSION,
121
118
E_ADD_GENERIC_COUNTER
137
134
CPT_C_NbOfCallUsedForAverageCallLength,
138
135
CPT_C_AverageCallLength_Sum,
139
136
CPT_C_AverageCallLength_Squares,
140
CPT_C_NbOfCallUsedForAverageResponseTime,
141
CPT_C_NbOfCallUsedForAverageResponseTime_2,
142
CPT_C_NbOfCallUsedForAverageResponseTime_3,
143
CPT_C_NbOfCallUsedForAverageResponseTime_4,
144
CPT_C_NbOfCallUsedForAverageResponseTime_5, // This must match or exceed MAX_RTD_INFO
145
CPT_C_AverageResponseTime_Sum,
146
CPT_C_AverageResponseTime_Sum_2,
147
CPT_C_AverageResponseTime_Sum_3,
148
CPT_C_AverageResponseTime_Sum_4,
149
CPT_C_AverageResponseTime_Sum_5, // This must match or exceed MAX_RTD_INFO
150
CPT_C_AverageResponseTime_Squares,
151
CPT_C_AverageResponseTime_Squares_2,
152
CPT_C_AverageResponseTime_Squares_3,
153
CPT_C_AverageResponseTime_Squares_4,
154
CPT_C_AverageResponseTime_Squares_5,
155
137
CPT_C_FailedCallCannotSendMessage,
156
138
CPT_C_FailedCallMaxUdpRetrans,
157
139
CPT_C_FailedCallTcpConnect,
160
142
CPT_C_FailedCallCallRejected,
161
143
CPT_C_FailedCallCmdNotSent,
162
144
CPT_C_FailedCallRegexpDoesntMatch,
145
CPT_C_FailedCallRegexpShouldntMatch,
163
146
CPT_C_FailedCallRegexpHdrNotFound,
164
147
CPT_C_FailedOutboundCongestion,
165
148
CPT_C_FailedTimeoutOnRecv,
166
149
CPT_C_FailedTimeoutOnSend,
171
CPT_C_Generic_5, // This must match or exceed MAX_COUNTER
172
150
CPT_C_Retransmissions,
174
152
// Periodic Display counter
204
182
CPT_PD_FailedCallCallRejected,
205
183
CPT_PD_FailedCallCmdNotSent,
206
184
CPT_PD_FailedCallRegexpDoesntMatch,
185
CPT_PD_FailedCallRegexpShouldntMatch,
207
186
CPT_PD_FailedCallRegexpHdrNotFound,
208
187
CPT_PD_FailedOutboundCongestion,
209
188
CPT_PD_FailedTimeoutOnRecv,
210
189
CPT_PD_FailedTimeoutOnSend,
215
CPT_PD_Generic_5, // This must match or exceed MAX_COUNTER
216
190
CPT_PD_Retransmissions,
218
192
// Periodic logging counter
249
223
CPT_PL_FailedCallCallRejected,
250
224
CPT_PL_FailedCallCmdNotSent,
251
225
CPT_PL_FailedCallRegexpDoesntMatch,
226
CPT_PL_FailedCallRegexpShouldntMatch,
252
227
CPT_PL_FailedCallRegexpHdrNotFound,
253
228
CPT_PL_FailedOutboundCongestion,
254
229
CPT_PL_FailedTimeoutOnRecv,
255
230
CPT_PL_FailedTimeoutOnSend,
261
231
CPT_PL_Retransmissions,
266
236
// Cumulative counters
267
237
CPT_G_C_OutOfCallMsgs,
268
238
CPT_G_C_DeadCallMsgs,
241
CPT_G_C_WatchdogMajor,
242
CPT_G_C_WatchdogMinor,
269
243
CPT_G_C_AutoAnswered,
270
244
// Periodic Display counter
271
245
CPT_G_PD_OutOfCallMsgs,
272
246
CPT_G_PD_DeadCallMsgs,
247
CPT_G_PD_FatalErrors,
249
CPT_G_PD_WatchdogMajor,
250
CPT_G_PD_WatchdogMinor,
273
251
CPT_G_PD_AutoAnswered, // must be last (RESET_PD_COUNTER)
275
253
// Periodic logging counter
276
254
CPT_G_PL_OutOfCallMsgs,
277
255
CPT_G_PL_DeadCallMsgs,
256
CPT_G_PL_FatalErrors,
258
CPT_G_PL_WatchdogMajor,
259
CPT_G_PL_WatchdogMinor,
278
260
CPT_G_PL_AutoAnswered, // must be last (RESET_PL_COUNTER)
377
359
void displayData (FILE *f);
378
360
void displayStat(FILE *f);
379
361
void displayRepartition(FILE *f);
380
void displaySecondaryRepartition (FILE *f, int which);
362
void displayRtdRepartition (FILE *f, int which);
384
365
* Dump data periodically in the file M_FileName
429
410
static char* msToHHMMSSmmm (unsigned long P_ms);
412
/* Get a counter ID by name. */
413
int findCounter(const char *counter, bool alloc);
414
int findRtd(const char *name, bool start);
433
419
unsigned long long M_counters[E_NB_COUNTER];
434
420
static unsigned long long M_G_counters[E_NB_G_COUNTER - E_NB_COUNTER];
436
T_dynamicalRepartition* M_ResponseTimeRepartition[MAX_RTD_INFO_LENGTH];
425
#define GENERIC_TYPES 3
426
unsigned long long *M_genericCounters;
428
str_int_map M_genericMap;
429
int_str_map M_revGenericMap;
430
int_str_map M_genericDisplay;
432
str_int_map rtd_started;
433
str_int_map rtd_stopped;
439
unsigned long long *M_rtdInfo;
440
str_int_map M_rtdMap;
441
int_str_map M_revRtdMap;
443
T_dynamicalRepartition** M_ResponseTimeRepartition;
437
444
T_dynamicalRepartition* M_CallLengthRepartition;
438
445
int M_SizeOfResponseTimeRepartition;
439
446
int M_SizeOfCallLengthRepartition;
554
561
double computeMean(E_CounterName P_SumCounter,
555
562
E_CounterName P_NbOfCallUsed);
564
double computeRtdMean(int which, int type);
565
double computeRtdStdev(int which, int type);