diff options
author | Julius Bünger <buenger@mytum.de> | 2018-08-24 10:41:04 +0200 |
---|---|---|
committer | Julius Bünger <buenger@mytum.de> | 2018-08-24 10:41:04 +0200 |
commit | d8c24ef01b45a28d563bd96a6d1ee35d73fa1df7 (patch) | |
tree | 350c4e38cd7f2f9ae81fe8ee72ea84602dab2372 /src/rps/gnunet-rps-profiler.c | |
parent | 2cb60679f6078d53477859aedbee1210edfb8327 (diff) | |
download | gnunet-d8c24ef01b45a28d563bd96a6d1ee35d73fa1df7.tar.gz gnunet-d8c24ef01b45a28d563bd96a6d1ee35d73fa1df7.zip |
Unify strings in rps profiler
Diffstat (limited to 'src/rps/gnunet-rps-profiler.c')
-rw-r--r-- | src/rps/gnunet-rps-profiler.c | 224 |
1 files changed, 86 insertions, 138 deletions
diff --git a/src/rps/gnunet-rps-profiler.c b/src/rps/gnunet-rps-profiler.c index a40a067ae..79f0fbe2f 100644 --- a/src/rps/gnunet-rps-profiler.c +++ b/src/rps/gnunet-rps-profiler.c | |||
@@ -93,6 +93,25 @@ enum STAT_TYPE | |||
93 | STAT_TYPE_MAX, /* 16 */ | 93 | STAT_TYPE_MAX, /* 16 */ |
94 | }; | 94 | }; |
95 | 95 | ||
96 | static char* stat_type_strings[] = { | ||
97 | "# rounds", | ||
98 | "# rounds blocked", | ||
99 | "# rounds blocked - too many pushes", | ||
100 | "# rounds blocked - no pushes", | ||
101 | "# rounds blocked - no pull replies", | ||
102 | "# rounds blocked - too many pushes, no pull replies", | ||
103 | "# rounds blocked - no pushes, no pull replies", | ||
104 | "# push send issued", | ||
105 | "# pull request send issued", | ||
106 | "# pull reply send issued", | ||
107 | "# pushes sent", | ||
108 | "# pull requests sent", | ||
109 | "# pull replys sent", | ||
110 | "# push message received", | ||
111 | "# pull request message received", | ||
112 | "# pull reply messages received", | ||
113 | }; | ||
114 | |||
96 | struct STATcls | 115 | struct STATcls |
97 | { | 116 | { |
98 | struct RPSPeer *rps_peer; | 117 | struct RPSPeer *rps_peer; |
@@ -109,67 +128,99 @@ struct STATcls | |||
109 | */ | 128 | */ |
110 | enum STAT_TYPE stat_str_2_type (const char *stat_str) | 129 | enum STAT_TYPE stat_str_2_type (const char *stat_str) |
111 | { | 130 | { |
112 | if (0 == strncmp ("# rounds blocked - no pull replies", stat_str, strlen ("# rounds blocked - no pull replies"))) | 131 | if (0 == strncmp (stat_type_strings[STAT_TYPE_BLOCKS_NO_PULL], |
132 | stat_str, | ||
133 | strlen (stat_type_strings[STAT_TYPE_BLOCKS_NO_PULL]))) | ||
113 | { | 134 | { |
114 | return STAT_TYPE_BLOCKS_NO_PULL; | 135 | return STAT_TYPE_BLOCKS_NO_PULL; |
115 | } | 136 | } |
116 | else if (0 == strncmp ("# rounds blocked - too many pushes, no pull replies", stat_str, strlen ("# rounds blocked - too many pushes, no pull replies"))) | 137 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL], |
138 | stat_str, | ||
139 | strlen (stat_type_strings[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL]))) | ||
117 | { | 140 | { |
118 | return STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL; | 141 | return STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL; |
119 | } | 142 | } |
120 | else if (0 == strncmp ("# rounds blocked - too many pushes", stat_str, strlen ("# rounds blocked - too many pushes"))) | 143 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_BLOCKS_MANY_PUSH], |
144 | stat_str, | ||
145 | strlen (stat_type_strings[STAT_TYPE_BLOCKS_MANY_PUSH]))) | ||
121 | { | 146 | { |
122 | return STAT_TYPE_BLOCKS_MANY_PUSH; | 147 | return STAT_TYPE_BLOCKS_MANY_PUSH; |
123 | } | 148 | } |
124 | else if (0 == strncmp ("# rounds blocked - no pushes, no pull replies", stat_str, strlen ("# rounds blocked - no pushes, no pull replies"))) | 149 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL], |
150 | stat_str, | ||
151 | strlen (stat_type_strings[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL]))) | ||
125 | { | 152 | { |
126 | return STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL; | 153 | return STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL; |
127 | } | 154 | } |
128 | else if (0 == strncmp ("# rounds blocked - no pushes", stat_str, strlen ("# rounds blocked - no pushes"))) | 155 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_BLOCKS_NO_PUSH], |
156 | stat_str, | ||
157 | strlen (stat_type_strings[STAT_TYPE_BLOCKS_NO_PUSH]))) | ||
129 | { | 158 | { |
130 | return STAT_TYPE_BLOCKS_NO_PUSH; | 159 | return STAT_TYPE_BLOCKS_NO_PUSH; |
131 | } | 160 | } |
132 | else if (0 == strncmp ("# rounds blocked", stat_str, strlen ("# rounds blocked"))) | 161 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_BLOCKS], |
162 | stat_str, | ||
163 | strlen (stat_type_strings[STAT_TYPE_BLOCKS]))) | ||
133 | { | 164 | { |
134 | return STAT_TYPE_BLOCKS; | 165 | return STAT_TYPE_BLOCKS; |
135 | } | 166 | } |
136 | else if (0 == strncmp ("# rounds", stat_str, strlen ("# rounds"))) | 167 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_ROUNDS], |
168 | stat_str, | ||
169 | strlen (stat_type_strings[STAT_TYPE_ROUNDS]))) | ||
137 | { | 170 | { |
138 | return STAT_TYPE_ROUNDS; | 171 | return STAT_TYPE_ROUNDS; |
139 | } | 172 | } |
140 | else if (0 == strncmp ("# push send issued", stat_str, strlen ("# push send issued"))) | 173 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PUSH_SEND], |
174 | stat_str, | ||
175 | strlen (stat_type_strings[STAT_TYPE_ISSUED_PUSH_SEND]))) | ||
141 | { | 176 | { |
142 | return STAT_TYPE_ISSUED_PUSH_SEND; | 177 | return STAT_TYPE_ISSUED_PUSH_SEND; |
143 | } | 178 | } |
144 | else if (0 == strncmp ("# pull request send issued", stat_str, strlen ("# pull request send issued"))) | 179 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ], |
180 | stat_str, | ||
181 | strlen (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ]))) | ||
145 | { | 182 | { |
146 | return STAT_TYPE_ISSUED_PULL_REQ; | 183 | return STAT_TYPE_ISSUED_PULL_REQ; |
147 | } | 184 | } |
148 | else if (0 == strncmp ("# pull reply send issued", stat_str, strlen ("# pull reply send issued"))) | 185 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PULL_REP], |
186 | stat_str, | ||
187 | strlen (stat_type_strings[STAT_TYPE_ISSUED_PULL_REP]))) | ||
149 | { | 188 | { |
150 | return STAT_TYPE_ISSUED_PULL_REP; | 189 | return STAT_TYPE_ISSUED_PULL_REP; |
151 | } | 190 | } |
152 | else if (0 == strncmp ("# pushes sent", stat_str, strlen ("# pushes sent"))) | 191 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_SENT_PUSH_SEND], |
192 | stat_str, | ||
193 | strlen (stat_type_strings[STAT_TYPE_SENT_PUSH_SEND]))) | ||
153 | { | 194 | { |
154 | return STAT_TYPE_SENT_PUSH_SEND; | 195 | return STAT_TYPE_SENT_PUSH_SEND; |
155 | } | 196 | } |
156 | else if (0 == strncmp ("# pull requests sent", stat_str, strlen ("# pull requests sent"))) | 197 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_SENT_PULL_REQ], |
198 | stat_str, | ||
199 | strlen (stat_type_strings[STAT_TYPE_SENT_PULL_REQ]))) | ||
157 | { | 200 | { |
158 | return STAT_TYPE_SENT_PULL_REQ; | 201 | return STAT_TYPE_SENT_PULL_REQ; |
159 | } | 202 | } |
160 | else if (0 == strncmp ("# pull replys sent", stat_str, strlen ("# pull replys sent"))) | 203 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_SENT_PULL_REP], |
204 | stat_str, | ||
205 | strlen (stat_type_strings[STAT_TYPE_SENT_PULL_REP]))) | ||
161 | { | 206 | { |
162 | return STAT_TYPE_SENT_PULL_REP; | 207 | return STAT_TYPE_SENT_PULL_REP; |
163 | } | 208 | } |
164 | else if (0 == strncmp ("# push message received", stat_str, strlen ("# push message received"))) | 209 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PUSH_SEND], |
210 | stat_str, | ||
211 | strlen (stat_type_strings[STAT_TYPE_RECV_PUSH_SEND]))) | ||
165 | { | 212 | { |
166 | return STAT_TYPE_RECV_PUSH_SEND; | 213 | return STAT_TYPE_RECV_PUSH_SEND; |
167 | } | 214 | } |
168 | else if (0 == strncmp ("# pull request message received", stat_str, strlen ("# pull request message received"))) | 215 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REQ], |
216 | stat_str, | ||
217 | strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REQ]))) | ||
169 | { | 218 | { |
170 | return STAT_TYPE_RECV_PULL_REQ; | 219 | return STAT_TYPE_RECV_PULL_REQ; |
171 | } | 220 | } |
172 | else if (0 == strncmp ("# pull reply messages received", stat_str, strlen ("# pull reply messages received"))) | 221 | else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REP], |
222 | stat_str, | ||
223 | strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REP]))) | ||
173 | { | 224 | { |
174 | return STAT_TYPE_RECV_PULL_REP; | 225 | return STAT_TYPE_RECV_PULL_REP; |
175 | } | 226 | } |
@@ -178,58 +229,6 @@ enum STAT_TYPE stat_str_2_type (const char *stat_str) | |||
178 | 229 | ||
179 | 230 | ||
180 | /** | 231 | /** |
181 | * @brief Converts #STAT_TYPE enum to the equivalent string representation that | ||
182 | * is stored with the statistics service. | ||
183 | * | ||
184 | * @param stat_type #STAT_TYPE enum | ||
185 | * | ||
186 | * @return string representation that matches statistics value | ||
187 | */ | ||
188 | char* stat_type_2_str (enum STAT_TYPE stat_type) | ||
189 | { | ||
190 | switch (stat_type) | ||
191 | { | ||
192 | case STAT_TYPE_ROUNDS: | ||
193 | return "# rounds"; | ||
194 | case STAT_TYPE_BLOCKS: | ||
195 | return "# rounds blocked"; | ||
196 | case STAT_TYPE_BLOCKS_MANY_PUSH: | ||
197 | return "# rounds blocked - too many pushes"; | ||
198 | case STAT_TYPE_BLOCKS_NO_PUSH: | ||
199 | return "# rounds blocked - no pushes"; | ||
200 | case STAT_TYPE_BLOCKS_NO_PULL: | ||
201 | return "# rounds blocked - no pull replies"; | ||
202 | case STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL: | ||
203 | return "# rounds blocked - too many pushes, no pull replies"; | ||
204 | case STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL: | ||
205 | return "# rounds blocked - no pushes, no pull replies"; | ||
206 | case STAT_TYPE_ISSUED_PUSH_SEND: | ||
207 | return "# push send issued"; | ||
208 | case STAT_TYPE_ISSUED_PULL_REQ: | ||
209 | return "# pull request send issued"; | ||
210 | case STAT_TYPE_ISSUED_PULL_REP: | ||
211 | return "# pull reply send issued"; | ||
212 | case STAT_TYPE_SENT_PUSH_SEND: | ||
213 | return "# pushes sent"; | ||
214 | case STAT_TYPE_SENT_PULL_REQ: | ||
215 | return "# pull requests sent"; | ||
216 | case STAT_TYPE_SENT_PULL_REP: | ||
217 | return "# pull replys sent"; | ||
218 | case STAT_TYPE_RECV_PUSH_SEND: | ||
219 | return "# push message received"; | ||
220 | case STAT_TYPE_RECV_PULL_REQ: | ||
221 | return "# pull request message received"; | ||
222 | case STAT_TYPE_RECV_PULL_REP: | ||
223 | return "# pull reply messages received"; | ||
224 | case STAT_TYPE_MAX: | ||
225 | default: | ||
226 | return "ERROR"; | ||
227 | ; | ||
228 | } | ||
229 | } | ||
230 | |||
231 | |||
232 | /** | ||
233 | * @brief Indicates whether peer should go off- or online | 232 | * @brief Indicates whether peer should go off- or online |
234 | */ | 233 | */ |
235 | enum PEER_ONLINE_DELTA { | 234 | enum PEER_ONLINE_DELTA { |
@@ -940,7 +939,7 @@ clean_peer (unsigned peer_index) | |||
940 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 939 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, |
941 | "(%u) did not yet receive stat value for `%s'\n", | 940 | "(%u) did not yet receive stat value for `%s'\n", |
942 | rps_peers[peer_index].index, | 941 | rps_peers[peer_index].index, |
943 | stat_type_2_str (stat_type)); | 942 | stat_type_strings[stat_type]); |
944 | GNUNET_STATISTICS_get_cancel ( | 943 | GNUNET_STATISTICS_get_cancel ( |
945 | rps_peers[peer_index].h_stat_get[stat_type]); | 944 | rps_peers[peer_index].h_stat_get[stat_type]); |
946 | } | 945 | } |
@@ -2350,7 +2349,7 @@ void write_final_stats (void){ | |||
2350 | rps_peers[i].stats[STAT_TYPE_RECV_PUSH_SEND], | 2349 | rps_peers[i].stats[STAT_TYPE_RECV_PUSH_SEND], |
2351 | rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ], | 2350 | rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ], |
2352 | rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP]); | 2351 | rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP]); |
2353 | for (uint32_t stat_type = STAT_TYPE_ROUNDS; | 2352 | for (enum STAT_TYPE stat_type = STAT_TYPE_ROUNDS; |
2354 | stat_type < STAT_TYPE_MAX; | 2353 | stat_type < STAT_TYPE_MAX; |
2355 | stat_type++) | 2354 | stat_type++) |
2356 | { | 2355 | { |
@@ -2452,72 +2451,21 @@ stat_iterator (void *cls, | |||
2452 | { | 2451 | { |
2453 | const struct STATcls *stat_cls = (const struct STATcls *) cls; | 2452 | const struct STATcls *stat_cls = (const struct STATcls *) cls; |
2454 | struct RPSPeer *rps_peer = (struct RPSPeer *) stat_cls->rps_peer; | 2453 | struct RPSPeer *rps_peer = (struct RPSPeer *) stat_cls->rps_peer; |
2454 | enum STAT_TYPE stat_type; | ||
2455 | (void) subsystem; | ||
2456 | (void) is_persistent; | ||
2455 | 2457 | ||
2456 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got stat value: %s - %" PRIu64 "\n", | 2458 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got stat value: %s - %" PRIu64 "\n", |
2457 | //stat_type_2_str (stat_cls->stat_type), | ||
2458 | name, | 2459 | name, |
2459 | value); | 2460 | value); |
2460 | to_file (rps_peer->file_name_stats, | 2461 | to_file (rps_peer->file_name_stats, |
2461 | "%s: %" PRIu64 "\n", | 2462 | "%s: %" PRIu64 "\n", |
2462 | name, | 2463 | name, |
2463 | value); | 2464 | value); |
2464 | switch (stat_str_2_type (name)) | 2465 | stat_type = stat_str_2_type (name); |
2465 | { | 2466 | GNUNET_assert (STAT_TYPE_ROUNDS <= stat_type && |
2466 | case STAT_TYPE_ROUNDS: | 2467 | STAT_TYPE_MAX > stat_type); |
2467 | rps_peer->stats[STAT_TYPE_ROUNDS] = value; | 2468 | rps_peer->stats[stat_type] = value; |
2468 | break; | ||
2469 | case STAT_TYPE_BLOCKS: | ||
2470 | rps_peer->stats[STAT_TYPE_BLOCKS] = value; | ||
2471 | break; | ||
2472 | case STAT_TYPE_BLOCKS_MANY_PUSH: | ||
2473 | rps_peer->stats[STAT_TYPE_BLOCKS_MANY_PUSH] = value; | ||
2474 | break; | ||
2475 | case STAT_TYPE_BLOCKS_NO_PUSH: | ||
2476 | rps_peer->stats[STAT_TYPE_BLOCKS_NO_PUSH] = value; | ||
2477 | break; | ||
2478 | case STAT_TYPE_BLOCKS_NO_PULL: | ||
2479 | rps_peer->stats[STAT_TYPE_BLOCKS_NO_PULL] = value; | ||
2480 | break; | ||
2481 | case STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL: | ||
2482 | rps_peer->stats[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL] = value; | ||
2483 | break; | ||
2484 | case STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL: | ||
2485 | rps_peer->stats[STAT_TYPE_BLOCKS] = value; | ||
2486 | break; | ||
2487 | case STAT_TYPE_ISSUED_PUSH_SEND: | ||
2488 | rps_peer->stats[STAT_TYPE_ISSUED_PUSH_SEND] = value; | ||
2489 | break; | ||
2490 | case STAT_TYPE_ISSUED_PULL_REQ: | ||
2491 | rps_peer->stats[STAT_TYPE_ISSUED_PULL_REQ] = value; | ||
2492 | break; | ||
2493 | case STAT_TYPE_ISSUED_PULL_REP: | ||
2494 | rps_peer->stats[STAT_TYPE_ISSUED_PULL_REP] = value; | ||
2495 | break; | ||
2496 | case STAT_TYPE_SENT_PUSH_SEND: | ||
2497 | rps_peer->stats[STAT_TYPE_SENT_PUSH_SEND] = value; | ||
2498 | break; | ||
2499 | case STAT_TYPE_SENT_PULL_REQ: | ||
2500 | rps_peer->stats[STAT_TYPE_SENT_PULL_REQ] = value; | ||
2501 | break; | ||
2502 | case STAT_TYPE_SENT_PULL_REP: | ||
2503 | rps_peer->stats[STAT_TYPE_SENT_PULL_REP] = value; | ||
2504 | break; | ||
2505 | case STAT_TYPE_RECV_PUSH_SEND: | ||
2506 | rps_peer->stats[STAT_TYPE_RECV_PUSH_SEND] = value; | ||
2507 | break; | ||
2508 | case STAT_TYPE_RECV_PULL_REQ: | ||
2509 | rps_peer->stats[STAT_TYPE_RECV_PULL_REQ] = value; | ||
2510 | break; | ||
2511 | case STAT_TYPE_RECV_PULL_REP: | ||
2512 | rps_peer->stats[STAT_TYPE_RECV_PULL_REP] = value; | ||
2513 | break; | ||
2514 | case STAT_TYPE_MAX: | ||
2515 | default: | ||
2516 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
2517 | "Unknown statistics string: %s\n", | ||
2518 | name); | ||
2519 | break; | ||
2520 | } | ||
2521 | return GNUNET_OK; | 2469 | return GNUNET_OK; |
2522 | } | 2470 | } |
2523 | 2471 | ||
@@ -2545,17 +2493,17 @@ void post_profiler (struct RPSPeer *rps_peer) | |||
2545 | stat_cls->stat_type = stat_type; | 2493 | stat_cls->stat_type = stat_type; |
2546 | rps_peer->file_name_stats = | 2494 | rps_peer->file_name_stats = |
2547 | store_prefix_file_name (rps_peer->peer_id, "stats"); | 2495 | store_prefix_file_name (rps_peer->peer_id, "stats"); |
2548 | rps_peer->h_stat_get[stat_type] = GNUNET_STATISTICS_get ( | 2496 | rps_peer->h_stat_get[stat_type] = |
2549 | rps_peer->stats_h, | 2497 | GNUNET_STATISTICS_get (rps_peer->stats_h, |
2550 | "rps", | 2498 | "rps", |
2551 | stat_type_2_str (stat_type), | 2499 | stat_type_strings [stat_type], |
2552 | post_test_shutdown_ready_cb, | 2500 | post_test_shutdown_ready_cb, |
2553 | stat_iterator, | 2501 | stat_iterator, |
2554 | (struct STATcls *) stat_cls); | 2502 | (struct STATcls *) stat_cls); |
2555 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 2503 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
2556 | "Requested statistics for %s (peer %" PRIu32 ")\n", | 2504 | "Requested statistics for %s (peer %" PRIu32 ")\n", |
2557 | stat_type_2_str (stat_type), | 2505 | stat_type_strings [stat_type], |
2558 | rps_peer->index); | 2506 | rps_peer->index); |
2559 | } | 2507 | } |
2560 | } | 2508 | } |
2561 | } | 2509 | } |