diff options
author | Omar Tarabai <tarabai@devegypt.com> | 2014-08-04 13:55:10 +0000 |
---|---|---|
committer | Omar Tarabai <tarabai@devegypt.com> | 2014-08-04 13:55:10 +0000 |
commit | f70a3e885ab86875a3c1215d755e3f3dd0030a1b (patch) | |
tree | c98daefbcb452032b75f38c72e5835d981019e39 /src/sensor | |
parent | 4371b0fcd9b50f78ca27ac48adf2f4663b2dfc9b (diff) | |
download | gnunet-f70a3e885ab86875a3c1215d755e3f3dd0030a1b.tar.gz gnunet-f70a3e885ab86875a3c1215d755e3f3dd0030a1b.zip |
sensor: towards p2p anomaly reporting
Diffstat (limited to 'src/sensor')
21 files changed, 237 insertions, 219 deletions
diff --git a/src/sensor/gnunet-service-sensor-analysis.c b/src/sensor/gnunet-service-sensor-analysis.c index f4a1269a4..175fc259c 100644 --- a/src/sensor/gnunet-service-sensor-analysis.c +++ b/src/sensor/gnunet-service-sensor-analysis.c | |||
@@ -31,35 +31,51 @@ | |||
31 | 31 | ||
32 | #define LOG(kind,...) GNUNET_log_from (kind, "sensor-analysis",__VA_ARGS__) | 32 | #define LOG(kind,...) GNUNET_log_from (kind, "sensor-analysis",__VA_ARGS__) |
33 | 33 | ||
34 | /* | 34 | /** |
35 | * Carries information about the analysis model | 35 | * Carries information about the analysis model |
36 | * corresponding to one sensor | 36 | * corresponding to one sensor |
37 | */ | 37 | */ |
38 | struct SensorModel | 38 | struct SensorModel |
39 | { | 39 | { |
40 | 40 | ||
41 | /* | 41 | /** |
42 | * DLL | 42 | * DLL |
43 | */ | 43 | */ |
44 | struct SensorModel *prev; | 44 | struct SensorModel *prev; |
45 | 45 | ||
46 | /* | 46 | /** |
47 | * DLL | 47 | * DLL |
48 | */ | 48 | */ |
49 | struct SensorModel *next; | 49 | struct SensorModel *next; |
50 | 50 | ||
51 | /* | 51 | /** |
52 | * Pointer to sensor info structure | 52 | * Pointer to sensor info structure |
53 | */ | 53 | */ |
54 | struct GNUNET_SENSOR_SensorInfo *sensor; | 54 | struct GNUNET_SENSOR_SensorInfo *sensor; |
55 | 55 | ||
56 | /* | 56 | /** |
57 | * Watcher of sensor values | 57 | * Watcher of sensor values |
58 | */ | 58 | */ |
59 | struct GNUNET_PEERSTORE_WatchContext *wc; | 59 | struct GNUNET_PEERSTORE_WatchContext *wc; |
60 | 60 | ||
61 | /* | 61 | /** |
62 | * Closure for model plugin | 62 | * State of sensor. #GNUNET_YES if anomalous, #GNUNET_NO otherwise. |
63 | */ | ||
64 | int anomalous; | ||
65 | |||
66 | /** | ||
67 | * Number of anomalous readings (positive) received in a row. | ||
68 | */ | ||
69 | int positive_count; | ||
70 | |||
71 | /** | ||
72 | * Number of non-anomalous (negative) readings received in a row. | ||
73 | */ | ||
74 | int negative_count; | ||
75 | |||
76 | /** | ||
77 | * Closure for model plugin. | ||
78 | * Usually, the instance of the model created for this sensor. | ||
63 | */ | 79 | */ |
64 | void *cls; | 80 | void *cls; |
65 | 81 | ||
@@ -75,22 +91,22 @@ static const struct GNUNET_CONFIGURATION_Handle *cfg; | |||
75 | */ | 91 | */ |
76 | static char *model_lib_name; | 92 | static char *model_lib_name; |
77 | 93 | ||
78 | /* | 94 | /** |
79 | * Model handle | 95 | * Model handle |
80 | */ | 96 | */ |
81 | static struct GNUNET_SENSOR_ModelFunctions *model_api; | 97 | static struct GNUNET_SENSOR_ModelFunctions *model_api; |
82 | 98 | ||
83 | /* | 99 | /** |
84 | * Handle to peerstore service | 100 | * Handle to peerstore service |
85 | */ | 101 | */ |
86 | static struct GNUNET_PEERSTORE_Handle *peerstore; | 102 | static struct GNUNET_PEERSTORE_Handle *peerstore; |
87 | 103 | ||
88 | /* | 104 | /** |
89 | * Head of DLL of created models | 105 | * Head of DLL of created models |
90 | */ | 106 | */ |
91 | static struct SensorModel *models_head; | 107 | static struct SensorModel *models_head; |
92 | 108 | ||
93 | /* | 109 | /** |
94 | * Tail of DLL of created models | 110 | * Tail of DLL of created models |
95 | */ | 111 | */ |
96 | static struct SensorModel *models_tail; | 112 | static struct SensorModel *models_tail; |
@@ -101,6 +117,12 @@ static struct SensorModel *models_tail; | |||
101 | struct GNUNET_PeerIdentity peerid; | 117 | struct GNUNET_PeerIdentity peerid; |
102 | 118 | ||
103 | /** | 119 | /** |
120 | * How many subsequent values required to flip anomaly label. | ||
121 | * E.g. After 3 subsequent anomaly reports, status change to anomalous. | ||
122 | */ | ||
123 | unsigned long long confirmation_count; | ||
124 | |||
125 | /** | ||
104 | * Destroy a created model | 126 | * Destroy a created model |
105 | */ | 127 | */ |
106 | static void | 128 | static void |
@@ -155,11 +177,16 @@ SENSOR_analysis_stop () | |||
155 | 177 | ||
156 | /** | 178 | /** |
157 | * Sensor value watch callback | 179 | * Sensor value watch callback |
180 | * | ||
181 | * @param cls Sensor model struct | ||
182 | * @param record Received record from peerstore, should contain new sensor value | ||
183 | * @param emsg Error message from peerstore if any, NULL if no errors | ||
184 | * @return #GNUNET_YES | ||
158 | */ | 185 | */ |
159 | static int | 186 | static int |
160 | sensor_watcher (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg) | 187 | sensor_watcher (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg) |
161 | { | 188 | { |
162 | struct SensorModel *sensor_model = cls; | 189 | struct SensorModel *model = cls; |
163 | double *val; | 190 | double *val; |
164 | int anomalous; | 191 | int anomalous; |
165 | 192 | ||
@@ -171,15 +198,41 @@ sensor_watcher (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg) | |||
171 | return GNUNET_YES; | 198 | return GNUNET_YES; |
172 | } | 199 | } |
173 | val = (double *) (record->value); | 200 | val = (double *) (record->value); |
174 | anomalous = model_api->feed_model (sensor_model->cls, *val); | 201 | anomalous = model_api->feed_model (model->cls, *val); |
175 | if (GNUNET_YES == anomalous) | 202 | if (GNUNET_YES == anomalous) |
176 | { | 203 | { |
177 | LOG (GNUNET_ERROR_TYPE_WARNING, | 204 | model->positive_count++; |
178 | "Anomaly detected in sensor `%s', value: %f.\n", | 205 | model->negative_count = 0; |
179 | sensor_model->sensor->name, *val); | 206 | if (GNUNET_NO == model->anomalous && |
207 | model->positive_count >= confirmation_count) | ||
208 | { | ||
209 | model->anomalous = GNUNET_YES; | ||
210 | LOG (GNUNET_ERROR_TYPE_WARNING, | ||
211 | "Anomaly state started for sensor `%s'.\n", model->sensor->name); | ||
212 | GNUNET_PEERSTORE_store (peerstore, "senosr-analysis", &peerid, | ||
213 | model->sensor->name, &model->anomalous, | ||
214 | sizeof (model->anomalous), | ||
215 | GNUNET_TIME_UNIT_FOREVER_ABS, | ||
216 | GNUNET_PEERSTORE_STOREOPTION_REPLACE, NULL, NULL); | ||
217 | } | ||
180 | } | 218 | } |
181 | else | 219 | else |
182 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Value non-anomalous.\n"); | 220 | { |
221 | model->negative_count++; | ||
222 | model->positive_count = 0; | ||
223 | if (GNUNET_YES == model->anomalous && | ||
224 | model->negative_count >= confirmation_count) | ||
225 | { | ||
226 | model->anomalous = GNUNET_NO; | ||
227 | LOG (GNUNET_ERROR_TYPE_INFO, "Anomaly state stopped for sensor `%s'.\n", | ||
228 | model->sensor->name); | ||
229 | GNUNET_PEERSTORE_store (peerstore, "senosr-analysis", &peerid, | ||
230 | model->sensor->name, &model->anomalous, | ||
231 | sizeof (model->anomalous), | ||
232 | GNUNET_TIME_UNIT_FOREVER_ABS, | ||
233 | GNUNET_PEERSTORE_STOREOPTION_REPLACE, NULL, NULL); | ||
234 | } | ||
235 | } | ||
183 | return GNUNET_YES; | 236 | return GNUNET_YES; |
184 | } | 237 | } |
185 | 238 | ||
@@ -206,6 +259,9 @@ init_sensor_model (void *cls, const struct GNUNET_HashCode *key, void *value) | |||
206 | sensor_model->wc = | 259 | sensor_model->wc = |
207 | GNUNET_PEERSTORE_watch (peerstore, "sensor", &peerid, sensor->name, | 260 | GNUNET_PEERSTORE_watch (peerstore, "sensor", &peerid, sensor->name, |
208 | &sensor_watcher, sensor_model); | 261 | &sensor_watcher, sensor_model); |
262 | sensor_model->anomalous = GNUNET_NO; | ||
263 | sensor_model->positive_count = 0; | ||
264 | sensor_model->negative_count = 0; | ||
209 | sensor_model->cls = model_api->create_model (model_api->cls); | 265 | sensor_model->cls = model_api->create_model (model_api->cls); |
210 | GNUNET_CONTAINER_DLL_insert (models_head, models_tail, sensor_model); | 266 | GNUNET_CONTAINER_DLL_insert (models_head, models_tail, sensor_model); |
211 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Created sensor model for `%s'.\n", | 267 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Created sensor model for `%s'.\n", |
@@ -255,6 +311,11 @@ SENSOR_analysis_start (const struct GNUNET_CONFIGURATION_Handle *c, | |||
255 | SENSOR_analysis_stop (); | 311 | SENSOR_analysis_stop (); |
256 | return GNUNET_SYSERR; | 312 | return GNUNET_SYSERR; |
257 | } | 313 | } |
314 | if (GNUNET_OK != | ||
315 | GNUNET_CONFIGURATION_get_value_number (cfg, "sensor-analysis", | ||
316 | "CONFIRMATION_COUNT", | ||
317 | &confirmation_count)) | ||
318 | confirmation_count = 1; | ||
258 | GNUNET_CRYPTO_get_peer_identity (cfg, &peerid); | 319 | GNUNET_CRYPTO_get_peer_identity (cfg, &peerid); |
259 | GNUNET_CONTAINER_multihashmap_iterate (sensors, &init_sensor_model, NULL); | 320 | GNUNET_CONTAINER_multihashmap_iterate (sensors, &init_sensor_model, NULL); |
260 | return GNUNET_OK; | 321 | return GNUNET_OK; |
diff --git a/src/sensor/gnunet-service-sensor-reporting.c b/src/sensor/gnunet-service-sensor-reporting.c index b935328d4..9bcf9904b 100644 --- a/src/sensor/gnunet-service-sensor-reporting.c +++ b/src/sensor/gnunet-service-sensor-reporting.c | |||
@@ -41,18 +41,18 @@ | |||
41 | /** | 41 | /** |
42 | * Context of reporting operations | 42 | * Context of reporting operations |
43 | */ | 43 | */ |
44 | struct ReportingContext | 44 | struct ValueReportingContext |
45 | { | 45 | { |
46 | 46 | ||
47 | /** | 47 | /** |
48 | * DLL | 48 | * DLL |
49 | */ | 49 | */ |
50 | struct ReportingContext *prev; | 50 | struct ValueReportingContext *prev; |
51 | 51 | ||
52 | /** | 52 | /** |
53 | * DLL | 53 | * DLL |
54 | */ | 54 | */ |
55 | struct ReportingContext *next; | 55 | struct ValueReportingContext *next; |
56 | 56 | ||
57 | /** | 57 | /** |
58 | * Sensor information | 58 | * Sensor information |
@@ -165,12 +165,12 @@ static struct GNUNET_CADET_Handle *cadet; | |||
165 | /** | 165 | /** |
166 | * Head of DLL of all reporting contexts | 166 | * Head of DLL of all reporting contexts |
167 | */ | 167 | */ |
168 | struct ReportingContext *rc_head; | 168 | struct ValueReportingContext *vrc_head; |
169 | 169 | ||
170 | /** | 170 | /** |
171 | * Tail of DLL of all reporting contexts | 171 | * Tail of DLL of all reporting contexts |
172 | */ | 172 | */ |
173 | struct ReportingContext *rc_tail; | 173 | struct ValueReportingContext *vrc_tail; |
174 | 174 | ||
175 | /** | 175 | /** |
176 | * Head of DLL of all cadet channels | 176 | * Head of DLL of all cadet channels |
@@ -186,24 +186,24 @@ struct CadetChannelContext *cc_tail; | |||
186 | * Destroy a reporting context structure | 186 | * Destroy a reporting context structure |
187 | */ | 187 | */ |
188 | static void | 188 | static void |
189 | destroy_reporting_context (struct ReportingContext *rc) | 189 | destroy_reporting_context (struct ValueReportingContext *vrc) |
190 | { | 190 | { |
191 | if (NULL != rc->wc) | 191 | if (NULL != vrc->wc) |
192 | { | 192 | { |
193 | GNUNET_PEERSTORE_watch_cancel (rc->wc); | 193 | GNUNET_PEERSTORE_watch_cancel (vrc->wc); |
194 | rc->wc = NULL; | 194 | vrc->wc = NULL; |
195 | } | 195 | } |
196 | if (GNUNET_SCHEDULER_NO_TASK != rc->cp_task) | 196 | if (GNUNET_SCHEDULER_NO_TASK != vrc->cp_task) |
197 | { | 197 | { |
198 | GNUNET_SCHEDULER_cancel (rc->cp_task); | 198 | GNUNET_SCHEDULER_cancel (vrc->cp_task); |
199 | rc->cp_task = GNUNET_SCHEDULER_NO_TASK; | 199 | vrc->cp_task = GNUNET_SCHEDULER_NO_TASK; |
200 | } | 200 | } |
201 | if (NULL != rc->last_value) | 201 | if (NULL != vrc->last_value) |
202 | { | 202 | { |
203 | GNUNET_free (rc->last_value); | 203 | GNUNET_free (vrc->last_value); |
204 | rc->last_value_size = 0; | 204 | vrc->last_value_size = 0; |
205 | } | 205 | } |
206 | GNUNET_free (rc); | 206 | GNUNET_free (vrc); |
207 | } | 207 | } |
208 | 208 | ||
209 | 209 | ||
@@ -239,7 +239,7 @@ destroy_cadet_channel_context (struct CadetChannelContext *cc) | |||
239 | void | 239 | void |
240 | SENSOR_reporting_stop () | 240 | SENSOR_reporting_stop () |
241 | { | 241 | { |
242 | struct ReportingContext *rc; | 242 | struct ValueReportingContext *vrc; |
243 | struct CadetChannelContext *cc; | 243 | struct CadetChannelContext *cc; |
244 | 244 | ||
245 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Stopping sensor reporting module.\n"); | 245 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Stopping sensor reporting module.\n"); |
@@ -249,11 +249,11 @@ SENSOR_reporting_stop () | |||
249 | GNUNET_CONTAINER_DLL_remove (cc_head, cc_tail, cc); | 249 | GNUNET_CONTAINER_DLL_remove (cc_head, cc_tail, cc); |
250 | destroy_cadet_channel_context (cc); | 250 | destroy_cadet_channel_context (cc); |
251 | } | 251 | } |
252 | while (NULL != rc_head) | 252 | while (NULL != vrc_head) |
253 | { | 253 | { |
254 | rc = rc_head; | 254 | vrc = vrc_head; |
255 | GNUNET_CONTAINER_DLL_remove (rc_head, rc_tail, rc); | 255 | GNUNET_CONTAINER_DLL_remove (vrc_head, vrc_tail, vrc); |
256 | destroy_reporting_context (rc); | 256 | destroy_reporting_context (vrc); |
257 | } | 257 | } |
258 | if (NULL != peerstore) | 258 | if (NULL != peerstore) |
259 | { | 259 | { |
@@ -308,7 +308,7 @@ get_cadet_channel (struct GNUNET_PeerIdentity pid) | |||
308 | * @return size of created message | 308 | * @return size of created message |
309 | */ | 309 | */ |
310 | static size_t | 310 | static size_t |
311 | construct_reading_message (struct ReportingContext *rc, | 311 | construct_reading_message (struct ValueReportingContext *vrc, |
312 | struct GNUNET_SENSOR_ReadingMessage **msg) | 312 | struct GNUNET_SENSOR_ReadingMessage **msg) |
313 | { | 313 | { |
314 | struct GNUNET_SENSOR_ReadingMessage *ret; | 314 | struct GNUNET_SENSOR_ReadingMessage *ret; |
@@ -316,22 +316,22 @@ construct_reading_message (struct ReportingContext *rc, | |||
316 | uint16_t total_size; | 316 | uint16_t total_size; |
317 | void *dummy; | 317 | void *dummy; |
318 | 318 | ||
319 | sensorname_size = strlen (rc->sensor->name) + 1; | 319 | sensorname_size = strlen (vrc->sensor->name) + 1; |
320 | total_size = | 320 | total_size = |
321 | sizeof (struct GNUNET_SENSOR_ReadingMessage) + sensorname_size + | 321 | sizeof (struct GNUNET_SENSOR_ReadingMessage) + sensorname_size + |
322 | rc->last_value_size; | 322 | vrc->last_value_size; |
323 | ret = GNUNET_malloc (total_size); | 323 | ret = GNUNET_malloc (total_size); |
324 | ret->header.size = htons (total_size); | 324 | ret->header.size = htons (total_size); |
325 | ret->header.type = htons (GNUNET_MESSAGE_TYPE_SENSOR_READING); | 325 | ret->header.type = htons (GNUNET_MESSAGE_TYPE_SENSOR_READING); |
326 | ret->sensorname_size = htons (sensorname_size); | 326 | ret->sensorname_size = htons (sensorname_size); |
327 | ret->sensorversion_major = htons (rc->sensor->version_major); | 327 | ret->sensorversion_major = htons (vrc->sensor->version_major); |
328 | ret->sensorversion_minor = htons (rc->sensor->version_minor); | 328 | ret->sensorversion_minor = htons (vrc->sensor->version_minor); |
329 | ret->timestamp = GNUNET_htobe64 (rc->timestamp); | 329 | ret->timestamp = GNUNET_htobe64 (vrc->timestamp); |
330 | ret->value_size = htons (rc->last_value_size); | 330 | ret->value_size = htons (vrc->last_value_size); |
331 | dummy = &ret[1]; | 331 | dummy = &ret[1]; |
332 | memcpy (dummy, rc->sensor->name, sensorname_size); | 332 | memcpy (dummy, vrc->sensor->name, sensorname_size); |
333 | dummy += sensorname_size; | 333 | dummy += sensorname_size; |
334 | memcpy (dummy, rc->last_value, rc->last_value_size); | 334 | memcpy (dummy, vrc->last_value, vrc->last_value_size); |
335 | *msg = ret; | 335 | *msg = ret; |
336 | return total_size; | 336 | return total_size; |
337 | } | 337 | } |
@@ -382,59 +382,59 @@ do_report_collection_point (void *cls, size_t size, void *buf) | |||
382 | /** | 382 | /** |
383 | * Task scheduled to send values to collection point | 383 | * Task scheduled to send values to collection point |
384 | * | 384 | * |
385 | * @param cls closure, a `struct CollectionReportingContext *` | 385 | * @param cls closure, a `struct ValueReportingContext *` |
386 | * @param tc unused | 386 | * @param tc unused |
387 | */ | 387 | */ |
388 | static void | 388 | static void |
389 | report_collection_point (void *cls, | 389 | report_collection_point (void *cls, |
390 | const struct GNUNET_SCHEDULER_TaskContext *tc) | 390 | const struct GNUNET_SCHEDULER_TaskContext *tc) |
391 | { | 391 | { |
392 | struct ReportingContext *rc = cls; | 392 | struct ValueReportingContext *vrc = cls; |
393 | struct GNUNET_SENSOR_SensorInfo *sensor = rc->sensor; | 393 | struct GNUNET_SENSOR_SensorInfo *sensor = vrc->sensor; |
394 | struct CadetChannelContext *cc; | 394 | struct CadetChannelContext *cc; |
395 | struct GNUNET_SENSOR_ReadingMessage *msg; | 395 | struct GNUNET_SENSOR_ReadingMessage *msg; |
396 | size_t msg_size; | 396 | size_t msg_size; |
397 | 397 | ||
398 | rc->cp_task = GNUNET_SCHEDULER_NO_TASK; | 398 | vrc->cp_task = GNUNET_SCHEDULER_NO_TASK; |
399 | if (0 == rc->last_value_size) /* Did not receive a sensor value yet */ | 399 | if (0 == vrc->last_value_size) /* Did not receive a sensor value yet */ |
400 | { | 400 | { |
401 | LOG (GNUNET_ERROR_TYPE_WARNING, | 401 | LOG (GNUNET_ERROR_TYPE_WARNING, |
402 | "Did not receive a value from `%s' to report yet.\n", | 402 | "Did not receive a value from `%s' to report yet.\n", |
403 | rc->sensor->name); | 403 | vrc->sensor->name); |
404 | rc->cp_task = | 404 | vrc->cp_task = |
405 | GNUNET_SCHEDULER_add_delayed (sensor->collection_interval, | 405 | GNUNET_SCHEDULER_add_delayed (sensor->value_reporting_interval, |
406 | &report_collection_point, rc); | 406 | &report_collection_point, vrc); |
407 | return; | 407 | return; |
408 | } | 408 | } |
409 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 409 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
410 | "Now trying to report last seen value of `%s' " "to collection point.\n", | 410 | "Now trying to report last seen value of `%s' " "to collection point.\n", |
411 | rc->sensor->name); | 411 | vrc->sensor->name); |
412 | GNUNET_assert (NULL != sensor->collection_point); | 412 | GNUNET_assert (NULL != sensor->collection_point); |
413 | cc = get_cadet_channel (*sensor->collection_point); | 413 | cc = get_cadet_channel (*sensor->collection_point); |
414 | if (GNUNET_YES == cc->sending) | 414 | if (GNUNET_YES == cc->sending) |
415 | { | 415 | { |
416 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 416 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
417 | "Cadet channel to collection point busy, " | 417 | "Cadet channel to collection point busy, " |
418 | "trying again for sensor `%s' after %d seconds.\n", rc->sensor->name, | 418 | "trying again for sensor `%s' after %d seconds.\n", vrc->sensor->name, |
419 | COLLECTION_RETRY); | 419 | COLLECTION_RETRY); |
420 | rc->cp_task = | 420 | vrc->cp_task = |
421 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | 421 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
422 | (GNUNET_TIME_UNIT_SECONDS, | 422 | (GNUNET_TIME_UNIT_SECONDS, |
423 | COLLECTION_RETRY), | 423 | COLLECTION_RETRY), |
424 | &report_collection_point, rc); | 424 | &report_collection_point, vrc); |
425 | return; | 425 | return; |
426 | } | 426 | } |
427 | msg_size = construct_reading_message (rc, &msg); | 427 | msg_size = construct_reading_message (vrc, &msg); |
428 | cc->sending = GNUNET_YES; | 428 | cc->sending = GNUNET_YES; |
429 | cc->pending_msg = msg; | 429 | cc->pending_msg = msg; |
430 | cc->pending_msg_size = msg_size; | 430 | cc->pending_msg_size = msg_size; |
431 | cc->th = | 431 | cc->th = |
432 | GNUNET_CADET_notify_transmit_ready (cc->c, GNUNET_YES, | 432 | GNUNET_CADET_notify_transmit_ready (cc->c, GNUNET_YES, |
433 | sensor->collection_interval, msg_size, | 433 | sensor->value_reporting_interval, msg_size, |
434 | &do_report_collection_point, cc); | 434 | &do_report_collection_point, cc); |
435 | rc->cp_task = | 435 | vrc->cp_task = |
436 | GNUNET_SCHEDULER_add_delayed (sensor->collection_interval, | 436 | GNUNET_SCHEDULER_add_delayed (sensor->value_reporting_interval, |
437 | &report_collection_point, rc); | 437 | &report_collection_point, vrc); |
438 | } | 438 | } |
439 | 439 | ||
440 | 440 | ||
@@ -444,23 +444,23 @@ report_collection_point (void *cls, | |||
444 | static int | 444 | static int |
445 | sensor_watch_cb (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg) | 445 | sensor_watch_cb (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg) |
446 | { | 446 | { |
447 | struct ReportingContext *rc = cls; | 447 | struct ValueReportingContext *vrc = cls; |
448 | 448 | ||
449 | if (NULL != emsg) | 449 | if (NULL != emsg) |
450 | return GNUNET_YES; | 450 | return GNUNET_YES; |
451 | if (NULL != rc->last_value) | 451 | if (NULL != vrc->last_value) |
452 | { | 452 | { |
453 | GNUNET_free (rc->last_value); | 453 | GNUNET_free (vrc->last_value); |
454 | rc->last_value_size = 0; | 454 | vrc->last_value_size = 0; |
455 | } | 455 | } |
456 | rc->last_value = GNUNET_malloc (record->value_size); | 456 | vrc->last_value = GNUNET_malloc (record->value_size); |
457 | memcpy (rc->last_value, record->value, record->value_size); | 457 | memcpy (vrc->last_value, record->value, record->value_size); |
458 | rc->last_value_size = record->value_size; | 458 | vrc->last_value_size = record->value_size; |
459 | rc->timestamp = GNUNET_TIME_absolute_get ().abs_value_us; | 459 | vrc->timestamp = GNUNET_TIME_absolute_get ().abs_value_us; |
460 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 460 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
461 | "Received a sensor `%s' watch value at " "timestamp %" PRIu64 | 461 | "Received a sensor `%s' watch value at " "timestamp %" PRIu64 |
462 | ", updating notification last_value.\n", rc->sensor->name, | 462 | ", updating notification last_value.\n", vrc->sensor->name, |
463 | rc->timestamp); | 463 | vrc->timestamp); |
464 | return GNUNET_YES; | 464 | return GNUNET_YES; |
465 | } | 465 | } |
466 | 466 | ||
@@ -479,38 +479,31 @@ init_sensor_reporting (void *cls, const struct GNUNET_HashCode *key, | |||
479 | void *value) | 479 | void *value) |
480 | { | 480 | { |
481 | struct GNUNET_SENSOR_SensorInfo *sensor = value; | 481 | struct GNUNET_SENSOR_SensorInfo *sensor = value; |
482 | struct ReportingContext *rc; | 482 | struct ValueReportingContext *vrc; |
483 | 483 | ||
484 | if (NULL == sensor->collection_point && GNUNET_NO == sensor->p2p_report) | 484 | if (NULL == sensor->collection_point || |
485 | (GNUNET_NO == sensor->report_values && GNUNET_NO == sensor->report_anomalies)) | ||
485 | return GNUNET_YES; | 486 | return GNUNET_YES; |
486 | rc = GNUNET_new (struct ReportingContext); | 487 | vrc = GNUNET_new (struct ValueReportingContext); |
487 | rc->sensor = sensor; | 488 | vrc->sensor = sensor; |
488 | rc->last_value = NULL; | 489 | vrc->last_value = NULL; |
489 | rc->last_value_size = 0; | 490 | vrc->last_value_size = 0; |
490 | rc->wc = | 491 | vrc->wc = |
491 | GNUNET_PEERSTORE_watch (peerstore, "sensor", &mypeerid, sensor->name, | 492 | GNUNET_PEERSTORE_watch (peerstore, "sensor", &mypeerid, sensor->name, |
492 | &sensor_watch_cb, rc); | 493 | &sensor_watch_cb, vrc); |
493 | if (NULL != sensor->collection_point) | 494 | if (NULL != sensor->collection_point) |
494 | { | 495 | { |
495 | LOG (GNUNET_ERROR_TYPE_INFO, | 496 | LOG (GNUNET_ERROR_TYPE_INFO, |
496 | "Will start reporting sensor `%s' values to " | 497 | "Will start reporting sensor `%s' values to " |
497 | "collection point `%s' every %s.\n", sensor->name, | 498 | "collection point `%s' every %s.\n", sensor->name, |
498 | GNUNET_i2s_full (sensor->collection_point), | 499 | GNUNET_i2s_full (sensor->collection_point), |
499 | GNUNET_STRINGS_relative_time_to_string (sensor->collection_interval, | 500 | GNUNET_STRINGS_relative_time_to_string (sensor->value_reporting_interval, |
500 | GNUNET_YES)); | 501 | GNUNET_YES)); |
501 | rc->cp_task = | 502 | vrc->cp_task = |
502 | GNUNET_SCHEDULER_add_delayed (sensor->collection_interval, | 503 | GNUNET_SCHEDULER_add_delayed (sensor->value_reporting_interval, |
503 | &report_collection_point, rc); | 504 | &report_collection_point, vrc); |
504 | } | 505 | } |
505 | if (GNUNET_YES == sensor->p2p_report) | 506 | GNUNET_CONTAINER_DLL_insert (vrc_head, vrc_tail, vrc); |
506 | { | ||
507 | LOG (GNUNET_ERROR_TYPE_INFO, | ||
508 | "Will start reporting sensor `%s' values to p2p network every %s.\n", | ||
509 | sensor->name, | ||
510 | GNUNET_STRINGS_relative_time_to_string (sensor->p2p_interval, | ||
511 | GNUNET_YES)); | ||
512 | } | ||
513 | GNUNET_CONTAINER_DLL_insert (rc_head, rc_tail, rc); | ||
514 | return GNUNET_YES; | 507 | return GNUNET_YES; |
515 | } | 508 | } |
516 | 509 | ||
diff --git a/src/sensor/gnunet-service-sensor.c b/src/sensor/gnunet-service-sensor.c index 24cb8d2aa..d9f3670d4 100644 --- a/src/sensor/gnunet-service-sensor.c +++ b/src/sensor/gnunet-service-sensor.c | |||
@@ -554,7 +554,7 @@ sensor_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
554 | else | 554 | else |
555 | { | 555 | { |
556 | sensorinfo->running = GNUNET_NO; | 556 | sensorinfo->running = GNUNET_NO; |
557 | GNUNET_break (0); //shouldn't happen | 557 | GNUNET_break (0); /* shouldn't happen */ |
558 | } | 558 | } |
559 | } | 559 | } |
560 | 560 | ||
@@ -596,7 +596,6 @@ schedule_sensor (void *cls, const struct GNUNET_HashCode *key, void *value) | |||
596 | 596 | ||
597 | /** | 597 | /** |
598 | * Starts the execution of all enabled sensors | 598 | * Starts the execution of all enabled sensors |
599 | * | ||
600 | */ | 599 | */ |
601 | static void | 600 | static void |
602 | schedule_all_sensors () | 601 | schedule_all_sensors () |
diff --git a/src/sensor/sensor.conf.in b/src/sensor/sensor.conf.in index a8531a58d..fcb914afe 100644 --- a/src/sensor/sensor.conf.in +++ b/src/sensor/sensor.conf.in | |||
@@ -9,7 +9,10 @@ UNIX_MATCH_GID = YES | |||
9 | #UPDATE_POINTS = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 9 | #UPDATE_POINTS = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
10 | 10 | ||
11 | [sensor-analysis] | 11 | [sensor-analysis] |
12 | model = gaussian | 12 | MODEL = gaussian |
13 | # How many subsequent values required to flip anomaly label. (Default: 1) | ||
14 | # E.g. After 3 subsequent anomaly reports, status change to anomalous. | ||
15 | CONFIRMATION_COUNT = 3 | ||
13 | 16 | ||
14 | [sensor-model-gaussian] | 17 | [sensor-model-gaussian] |
15 | TRAINING_WINDOW = 1000 | 18 | TRAINING_WINDOW = 1000 |
diff --git a/src/sensor/sensor.h b/src/sensor/sensor.h index 633f18e03..0fdb5a6e2 100644 --- a/src/sensor/sensor.h +++ b/src/sensor/sensor.h | |||
@@ -61,7 +61,6 @@ GNUNET_NETWORK_STRUCT_BEGIN | |||
61 | }; | 61 | }; |
62 | 62 | ||
63 | GNUNET_NETWORK_STRUCT_END | 63 | GNUNET_NETWORK_STRUCT_END |
64 | |||
65 | /** | 64 | /** |
66 | * Stop the sensor analysis module | 65 | * Stop the sensor analysis module |
67 | */ | 66 | */ |
@@ -117,5 +116,4 @@ SENSOR_update_stop (); | |||
117 | */ | 116 | */ |
118 | int | 117 | int |
119 | SENSOR_update_start (const struct GNUNET_CONFIGURATION_Handle *c, | 118 | SENSOR_update_start (const struct GNUNET_CONFIGURATION_Handle *c, |
120 | struct GNUNET_CONTAINER_MultiHashMap *s, | 119 | struct GNUNET_CONTAINER_MultiHashMap *s, void (*cb) ()); |
121 | void (*cb) ()); | ||
diff --git a/src/sensor/sensor_util_lib.c b/src/sensor/sensor_util_lib.c index 756c193ef..d12698c3a 100644 --- a/src/sensor/sensor_util_lib.c +++ b/src/sensor/sensor_util_lib.c | |||
@@ -150,8 +150,6 @@ load_sensor_from_cfg (struct GNUNET_CONFIGURATION_Handle *cfg, | |||
150 | &starttime_str)) | 150 | &starttime_str)) |
151 | { | 151 | { |
152 | GNUNET_STRINGS_fancy_time_to_absolute (starttime_str, sensor->start_time); | 152 | GNUNET_STRINGS_fancy_time_to_absolute (starttime_str, sensor->start_time); |
153 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Start time loaded: `%s'. Parsed: %d\n", | ||
154 | starttime_str, (NULL != sensor->start_time)); | ||
155 | GNUNET_free (starttime_str); | 153 | GNUNET_free (starttime_str); |
156 | } | 154 | } |
157 | //end time | 155 | //end time |
@@ -161,8 +159,6 @@ load_sensor_from_cfg (struct GNUNET_CONFIGURATION_Handle *cfg, | |||
161 | &endtime_str)) | 159 | &endtime_str)) |
162 | { | 160 | { |
163 | GNUNET_STRINGS_fancy_time_to_absolute (endtime_str, sensor->end_time); | 161 | GNUNET_STRINGS_fancy_time_to_absolute (endtime_str, sensor->end_time); |
164 | LOG (GNUNET_ERROR_TYPE_DEBUG, "End time loaded: `%s'. Parsed: %d\n", | ||
165 | endtime_str, (NULL != sensor->end_time)); | ||
166 | GNUNET_free (endtime_str); | 162 | GNUNET_free (endtime_str); |
167 | } | 163 | } |
168 | //interval | 164 | //interval |
@@ -259,53 +255,37 @@ load_sensor_from_cfg (struct GNUNET_CONFIGURATION_Handle *cfg, | |||
259 | GNUNET_free (sensor); | 255 | GNUNET_free (sensor); |
260 | return NULL; | 256 | return NULL; |
261 | } | 257 | } |
262 | //reporting mechanism | 258 | //reporting |
263 | sensor->collection_point = NULL; | 259 | sensor->collection_point = NULL; |
260 | sensor->report_values = GNUNET_NO; | ||
261 | sensor->report_anomalies = GNUNET_NO; | ||
264 | if (GNUNET_OK == | 262 | if (GNUNET_OK == |
265 | GNUNET_CONFIGURATION_get_value_string (cfg, sectionname, | 263 | GNUNET_CONFIGURATION_get_value_string (cfg, sectionname, |
266 | "COLLECTION_POINT", &dummy)) | 264 | "COLLECTION_POINT", &dummy)) |
267 | { | 265 | { |
268 | if (GNUNET_OK != | 266 | if (GNUNET_OK == |
269 | GNUNET_CONFIGURATION_get_value_number (cfg, sectionname, | 267 | GNUNET_CRYPTO_eddsa_public_key_from_string (dummy, strlen (dummy), |
270 | "COLLECTION_INTERVAL", | 268 | &public_key)) |
271 | &time_sec)) | ||
272 | { | ||
273 | LOG (GNUNET_ERROR_TYPE_ERROR, | ||
274 | _("Error reading sensor collection interval\n")); | ||
275 | } | ||
276 | else | ||
277 | { | 269 | { |
278 | sensor->collection_interval = | 270 | sensor->collection_point = GNUNET_new (struct GNUNET_PeerIdentity); |
279 | GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec); | 271 | |
272 | sensor->collection_point->public_key = public_key; | ||
280 | if (GNUNET_OK == | 273 | if (GNUNET_OK == |
281 | GNUNET_CRYPTO_eddsa_public_key_from_string (dummy, strlen (dummy), | 274 | GNUNET_CONFIGURATION_get_value_number (cfg, sectionname, |
282 | &public_key)) | 275 | "VALUE_COLLECTION_INTERVAL", |
276 | &time_sec)) | ||
283 | { | 277 | { |
284 | sensor->collection_point = GNUNET_new (struct GNUNET_PeerIdentity); | 278 | sensor->report_values = GNUNET_YES; |
285 | 279 | sensor->value_reporting_interval = | |
286 | sensor->collection_point->public_key = public_key; | 280 | GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec); |
287 | } | 281 | } |
282 | if (GNUNET_YES == | ||
283 | GNUNET_CONFIGURATION_get_value_yesno (cfg, sectionname, | ||
284 | "REPORT_ANOMALIES")) | ||
285 | sensor->report_anomalies = GNUNET_YES; | ||
288 | } | 286 | } |
289 | GNUNET_free (dummy); | 287 | GNUNET_free (dummy); |
290 | } | 288 | } |
291 | sensor->p2p_report = GNUNET_NO; | ||
292 | if (GNUNET_YES == | ||
293 | GNUNET_CONFIGURATION_get_value_yesno (cfg, sectionname, "P2P_REPORT")) | ||
294 | { | ||
295 | if (GNUNET_OK != | ||
296 | GNUNET_CONFIGURATION_get_value_number (cfg, sectionname, "P2P_INTERVAL", | ||
297 | &time_sec)) | ||
298 | { | ||
299 | LOG (GNUNET_ERROR_TYPE_ERROR, | ||
300 | _("Error reading sensor p2p reporting interval\n")); | ||
301 | } | ||
302 | else | ||
303 | { | ||
304 | sensor->p2p_interval = | ||
305 | GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec); | ||
306 | sensor->p2p_report = GNUNET_YES; | ||
307 | } | ||
308 | } | ||
309 | //execution task | 289 | //execution task |
310 | sensor->execution_task = GNUNET_SCHEDULER_NO_TASK; | 290 | sensor->execution_task = GNUNET_SCHEDULER_NO_TASK; |
311 | //running | 291 | //running |
@@ -490,8 +470,7 @@ GNUNET_SENSOR_load_all_sensors () | |||
490 | "Loading sensor definitions from directory `%s'\n", sensordir); | 470 | "Loading sensor definitions from directory `%s'\n", sensordir); |
491 | GNUNET_assert (GNUNET_YES == | 471 | GNUNET_assert (GNUNET_YES == |
492 | GNUNET_DISK_directory_test (sensordir, GNUNET_YES)); | 472 | GNUNET_DISK_directory_test (sensordir, GNUNET_YES)); |
493 | 473 | /* read all files in sensors directory */ | |
494 | //read all files in sensors directory | ||
495 | GNUNET_DISK_directory_scan (sensordir, &reload_sensors_dir_cb, sensors); | 474 | GNUNET_DISK_directory_scan (sensordir, &reload_sensors_dir_cb, sensors); |
496 | LOG (GNUNET_ERROR_TYPE_INFO, "Loaded %d sensors from directory `%s'\n", | 475 | LOG (GNUNET_ERROR_TYPE_INFO, "Loaded %d sensors from directory `%s'\n", |
497 | GNUNET_CONTAINER_multihashmap_size (sensors), sensordir); | 476 | GNUNET_CONTAINER_multihashmap_size (sensors), sensordir); |
diff --git a/src/sensor/sensors/average-ping-rtt b/src/sensor/sensors/average-ping-rtt index f929b8cf4..7a4b5ca67 100644 --- a/src/sensor/sensors/average-ping-rtt +++ b/src/sensor/sensors/average-ping-rtt | |||
@@ -24,9 +24,8 @@ EXT_PROCESS = avgping.sh | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 7200 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 7200 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = 300 | ||
diff --git a/src/sensor/sensors/core-peers-connected b/src/sensor/sensors/core-peers-connected index 2ea388b65..51bf7f7d3 100644 --- a/src/sensor/sensors/core-peers-connected +++ b/src/sensor/sensors/core-peers-connected | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # peers connected | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/datacache-bytes-stored b/src/sensor/sensors/datacache-bytes-stored index 3ba7e293d..9601f5280 100644 --- a/src/sensor/sensors/datacache-bytes-stored +++ b/src/sensor/sensors/datacache-bytes-stored | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # bytes stored | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/dht-peers-connected b/src/sensor/sensors/dht-peers-connected index 21ba05e7c..6e4d448ae 100644 --- a/src/sensor/sensors/dht-peers-connected +++ b/src/sensor/sensors/dht-peers-connected | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # peers connected | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/fs-peers-connected b/src/sensor/sensors/fs-peers-connected index 24f4abb9e..1a3cb127b 100644 --- a/src/sensor/sensors/fs-peers-connected +++ b/src/sensor/sensors/fs-peers-connected | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # peers connected | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/gnunet-version b/src/sensor/sensors/gnunet-version index ecb71ac59..271b738d4 100644 --- a/src/sensor/sensors/gnunet-version +++ b/src/sensor/sensors/gnunet-version | |||
@@ -24,9 +24,8 @@ EXT_ARGS = -v | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = string | 25 | EXPECTED_DATATYPE = string |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 86400 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/known-peers b/src/sensor/sensors/known-peers index 2ee85b1d6..fda106330 100644 --- a/src/sensor/sensors/known-peers +++ b/src/sensor/sensors/known-peers | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # peers known | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/nse b/src/sensor/sensors/nse index 2ba89b9a0..8cede34cb 100644 --- a/src/sensor/sensors/nse +++ b/src/sensor/sensors/nse | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # nodes in the network (estimate) | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/peerstore-memory b/src/sensor/sensors/peerstore-memory index 380fe0cec..0a60866ad 100644 --- a/src/sensor/sensors/peerstore-memory +++ b/src/sensor/sensors/peerstore-memory | |||
@@ -24,9 +24,8 @@ EXT_PROCESS = peerstore-memory.sh | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | COLLECTION_INTERVAL = 61 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/transport-bytes-received b/src/sensor/sensors/transport-bytes-received index b9005b6f3..d247f6572 100644 --- a/src/sensor/sensors/transport-bytes-received +++ b/src/sensor/sensors/transport-bytes-received | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # bytes total received | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/transport-http-connections b/src/sensor/sensors/transport-http-connections index 56971d44c..6d8d7d95a 100644 --- a/src/sensor/sensors/transport-http-connections +++ b/src/sensor/sensors/transport-http-connections | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # HTTP client connections | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/transport-https-connections b/src/sensor/sensors/transport-https-connections index 028b52bba..44af29b4b 100644 --- a/src/sensor/sensors/transport-https-connections +++ b/src/sensor/sensors/transport-https-connections | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # HTTPS client connections | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/transport-peers-connected b/src/sensor/sensors/transport-peers-connected index d7917b631..fd18919ba 100644 --- a/src/sensor/sensors/transport-peers-connected +++ b/src/sensor/sensors/transport-peers-connected | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # peers connected | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/transport-tcp-bytes-transmitted b/src/sensor/sensors/transport-tcp-bytes-transmitted index 22194373d..5452d7ac0 100644 --- a/src/sensor/sensors/transport-tcp-bytes-transmitted +++ b/src/sensor/sensors/transport-tcp-bytes-transmitted | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # bytes transmitted via TCP | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||
diff --git a/src/sensor/sensors/transport-tcp-sessions-active b/src/sensor/sensors/transport-tcp-sessions-active index fe8527f91..5dd9c6d35 100644 --- a/src/sensor/sensors/transport-tcp-sessions-active +++ b/src/sensor/sensors/transport-tcp-sessions-active | |||
@@ -24,9 +24,8 @@ GNUNET_STAT_NAME = # TCP sessions active | |||
24 | 24 | ||
25 | EXPECTED_DATATYPE = numeric | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting: |
28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 | 28 | #COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0 |
29 | #COLLECTION_INTERVAL = 120 | 29 | # Comment or remove next line to disable reporting sensor values to collection point |
30 | 30 | #VALUE_COLLECTION_INTERVAL = 120 | |
31 | P2P_REPORT = NO | 31 | REPORT_ANOMALIES = YES |
32 | #P2P_INTERVAL = | ||