[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34105 - in gnunet/src: include sensor sensor/sensors
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34105 - in gnunet/src: include sensor sensor/sensors |
Date: |
Mon, 4 Aug 2014 15:55:10 +0200 |
Author: otarabai
Date: 2014-08-04 15:55:10 +0200 (Mon, 04 Aug 2014)
New Revision: 34105
Modified:
gnunet/src/include/gnunet_sensor_util_lib.h
gnunet/src/sensor/gnunet-service-sensor-analysis.c
gnunet/src/sensor/gnunet-service-sensor-reporting.c
gnunet/src/sensor/gnunet-service-sensor.c
gnunet/src/sensor/sensor.conf.in
gnunet/src/sensor/sensor.h
gnunet/src/sensor/sensor_util_lib.c
gnunet/src/sensor/sensors/average-ping-rtt
gnunet/src/sensor/sensors/core-peers-connected
gnunet/src/sensor/sensors/datacache-bytes-stored
gnunet/src/sensor/sensors/dht-peers-connected
gnunet/src/sensor/sensors/fs-peers-connected
gnunet/src/sensor/sensors/gnunet-version
gnunet/src/sensor/sensors/known-peers
gnunet/src/sensor/sensors/nse
gnunet/src/sensor/sensors/peerstore-memory
gnunet/src/sensor/sensors/transport-bytes-received
gnunet/src/sensor/sensors/transport-http-connections
gnunet/src/sensor/sensors/transport-https-connections
gnunet/src/sensor/sensors/transport-peers-connected
gnunet/src/sensor/sensors/transport-tcp-bytes-transmitted
gnunet/src/sensor/sensors/transport-tcp-sessions-active
Log:
sensor: towards p2p anomaly reporting
Modified: gnunet/src/include/gnunet_sensor_util_lib.h
===================================================================
--- gnunet/src/include/gnunet_sensor_util_lib.h 2014-08-04 11:06:52 UTC (rev
34104)
+++ gnunet/src/include/gnunet_sensor_util_lib.h 2014-08-04 13:55:10 UTC (rev
34105)
@@ -47,78 +47,78 @@
*/
struct GNUNET_CONFIGURATION_Handle *cfg;
- /*
+ /**
* Sensor name
*/
char *name;
- /*
+ /**
* Path to definition file
*/
char *def_file;
- /*
+ /**
* First part of version number
*/
uint16_t version_major;
- /*
+ /**
* Second part of version number
*/
uint16_t version_minor;
- /*
+ /**
* Sensor description
*/
char *description;
- /*
+ /**
* Sensor currently enabled
*/
int enabled;
- /*
+ /**
* Category under which the sensor falls (e.g. tcp, datastore)
*/
char *category;
- /*
+ /**
* When does the sensor become active
*/
struct GNUNET_TIME_Absolute *start_time;
- /*
+ /**
* When does the sensor expire
*/
struct GNUNET_TIME_Absolute *end_time;
- /*
+ /**
* Time interval to collect sensor information (e.g. every 1 min)
*/
struct GNUNET_TIME_Relative interval;
- /*
+ /**
* Lifetime of an information sample after which it is deleted from storage
* If not supplied, will default to the interval value
*/
struct GNUNET_TIME_Relative lifetime;
- /*
+ /**
* A set of required peer capabilities for the sensor to collect meaningful
information (e.g. ipv6)
*/
char *capabilities;
- /*
+ /**
* Either "gnunet-statistics" or external "process"
*/
char *source;
- /*
+ /**
* Name of the GNUnet service that is the source for the gnunet-statistics
entry
*/
char *gnunet_stat_service;
- /*
+ /**
* Name of the gnunet-statistics entry
*/
char *gnunet_stat_name;
@@ -128,59 +128,61 @@
*/
struct GNUNET_STATISTICS_GetHandle *gnunet_stat_get_handle;
- /*
+ /**
* Name of the external process to be executed
*/
char *ext_process;
- /*
+ /**
* Arguments to be passed to the external process
*/
char *ext_args;
- /*
+ /**
* Handle to the external process
*/
struct GNUNET_OS_CommandHandle *ext_cmd;
- /*
+ /**
* Did we already receive a value
* from the currently running external
* proccess ? #GNUNET_YES / #GNUNET_NO
*/
int ext_cmd_value_received;
- /*
+ /**
* The output datatype to be expected
*/
char *expected_datatype;
- /*
+ /**
* Peer-identity of peer running collection point
*/
struct GNUNET_PeerIdentity *collection_point;
- /*
- * Time interval to send sensor information to collection point (e.g. every
30 mins)
+ /**
+ * Do we report received sensor values to collection point?
+ * #GNUNET_YES / #GNUNET_NO
*/
- struct GNUNET_TIME_Relative collection_interval;
+ int report_values;
- /*
- * Flag specifying if value is to be communicated to the p2p network
+ /**
+ * Time interval to send sensor values to collection point (e.g. every 30
mins)
*/
- int p2p_report;
+ struct GNUNET_TIME_Relative value_reporting_interval;
- /*
- * Time interval to communicate value to the p2p network
+ /**
+ * Do we report anomalies to collection point?
+ * #GNUNET_YES / #GNUNET_NO
*/
- struct GNUNET_TIME_Relative p2p_interval;
+ int report_anomalies;
- /*
+ /**
* Execution task (OR GNUNET_SCHEDULER_NO_TASK)
*/
GNUNET_SCHEDULER_TaskIdentifier execution_task;
- /*
+ /**
* Is the sensor being executed
*/
int running;
@@ -296,6 +298,7 @@
};
GNUNET_NETWORK_STRUCT_END
+
/**
* Given two version numbers as major and minor, compare them.
*
Modified: gnunet/src/sensor/gnunet-service-sensor-analysis.c
===================================================================
--- gnunet/src/sensor/gnunet-service-sensor-analysis.c 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/gnunet-service-sensor-analysis.c 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -31,36 +31,52 @@
#define LOG(kind,...) GNUNET_log_from (kind, "sensor-analysis",__VA_ARGS__)
-/*
+/**
* Carries information about the analysis model
* corresponding to one sensor
*/
struct SensorModel
{
- /*
+ /**
* DLL
*/
struct SensorModel *prev;
- /*
+ /**
* DLL
*/
struct SensorModel *next;
- /*
+ /**
* Pointer to sensor info structure
*/
struct GNUNET_SENSOR_SensorInfo *sensor;
- /*
+ /**
* Watcher of sensor values
*/
struct GNUNET_PEERSTORE_WatchContext *wc;
- /*
- * Closure for model plugin
+ /**
+ * State of sensor. #GNUNET_YES if anomalous, #GNUNET_NO otherwise.
*/
+ int anomalous;
+
+ /**
+ * Number of anomalous readings (positive) received in a row.
+ */
+ int positive_count;
+
+ /**
+ * Number of non-anomalous (negative) readings received in a row.
+ */
+ int negative_count;
+
+ /**
+ * Closure for model plugin.
+ * Usually, the instance of the model created for this sensor.
+ */
void *cls;
};
@@ -75,22 +91,22 @@
*/
static char *model_lib_name;
-/*
+/**
* Model handle
*/
static struct GNUNET_SENSOR_ModelFunctions *model_api;
-/*
+/**
* Handle to peerstore service
*/
static struct GNUNET_PEERSTORE_Handle *peerstore;
-/*
+/**
* Head of DLL of created models
*/
static struct SensorModel *models_head;
-/*
+/**
* Tail of DLL of created models
*/
static struct SensorModel *models_tail;
@@ -101,6 +117,12 @@
struct GNUNET_PeerIdentity peerid;
/**
+ * How many subsequent values required to flip anomaly label.
+ * E.g. After 3 subsequent anomaly reports, status change to anomalous.
+ */
+unsigned long long confirmation_count;
+
+/**
* Destroy a created model
*/
static void
@@ -155,11 +177,16 @@
/**
* Sensor value watch callback
+ *
+ * @param cls Sensor model struct
+ * @param record Received record from peerstore, should contain new sensor
value
+ * @param emsg Error message from peerstore if any, NULL if no errors
+ * @return #GNUNET_YES
*/
static int
sensor_watcher (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg)
{
- struct SensorModel *sensor_model = cls;
+ struct SensorModel *model = cls;
double *val;
int anomalous;
@@ -171,15 +198,41 @@
return GNUNET_YES;
}
val = (double *) (record->value);
- anomalous = model_api->feed_model (sensor_model->cls, *val);
+ anomalous = model_api->feed_model (model->cls, *val);
if (GNUNET_YES == anomalous)
{
- LOG (GNUNET_ERROR_TYPE_WARNING,
- "Anomaly detected in sensor `%s', value: %f.\n",
- sensor_model->sensor->name, *val);
+ model->positive_count++;
+ model->negative_count = 0;
+ if (GNUNET_NO == model->anomalous &&
+ model->positive_count >= confirmation_count)
+ {
+ model->anomalous = GNUNET_YES;
+ LOG (GNUNET_ERROR_TYPE_WARNING,
+ "Anomaly state started for sensor `%s'.\n", model->sensor->name);
+ GNUNET_PEERSTORE_store (peerstore, "senosr-analysis", &peerid,
+ model->sensor->name, &model->anomalous,
+ sizeof (model->anomalous),
+ GNUNET_TIME_UNIT_FOREVER_ABS,
+ GNUNET_PEERSTORE_STOREOPTION_REPLACE, NULL,
NULL);
+ }
}
else
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Value non-anomalous.\n");
+ {
+ model->negative_count++;
+ model->positive_count = 0;
+ if (GNUNET_YES == model->anomalous &&
+ model->negative_count >= confirmation_count)
+ {
+ model->anomalous = GNUNET_NO;
+ LOG (GNUNET_ERROR_TYPE_INFO, "Anomaly state stopped for sensor `%s'.\n",
+ model->sensor->name);
+ GNUNET_PEERSTORE_store (peerstore, "senosr-analysis", &peerid,
+ model->sensor->name, &model->anomalous,
+ sizeof (model->anomalous),
+ GNUNET_TIME_UNIT_FOREVER_ABS,
+ GNUNET_PEERSTORE_STOREOPTION_REPLACE, NULL,
NULL);
+ }
+ }
return GNUNET_YES;
}
@@ -206,6 +259,9 @@
sensor_model->wc =
GNUNET_PEERSTORE_watch (peerstore, "sensor", &peerid, sensor->name,
&sensor_watcher, sensor_model);
+ sensor_model->anomalous = GNUNET_NO;
+ sensor_model->positive_count = 0;
+ sensor_model->negative_count = 0;
sensor_model->cls = model_api->create_model (model_api->cls);
GNUNET_CONTAINER_DLL_insert (models_head, models_tail, sensor_model);
LOG (GNUNET_ERROR_TYPE_DEBUG, "Created sensor model for `%s'.\n",
@@ -255,6 +311,11 @@
SENSOR_analysis_stop ();
return GNUNET_SYSERR;
}
+ if (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_number (cfg, "sensor-analysis",
+ "CONFIRMATION_COUNT",
+ &confirmation_count))
+ confirmation_count = 1;
GNUNET_CRYPTO_get_peer_identity (cfg, &peerid);
GNUNET_CONTAINER_multihashmap_iterate (sensors, &init_sensor_model, NULL);
return GNUNET_OK;
Modified: gnunet/src/sensor/gnunet-service-sensor-reporting.c
===================================================================
--- gnunet/src/sensor/gnunet-service-sensor-reporting.c 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/gnunet-service-sensor-reporting.c 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -41,18 +41,18 @@
/**
* Context of reporting operations
*/
-struct ReportingContext
+struct ValueReportingContext
{
/**
* DLL
*/
- struct ReportingContext *prev;
+ struct ValueReportingContext *prev;
/**
* DLL
*/
- struct ReportingContext *next;
+ struct ValueReportingContext *next;
/**
* Sensor information
@@ -165,12 +165,12 @@
/**
* Head of DLL of all reporting contexts
*/
-struct ReportingContext *rc_head;
+struct ValueReportingContext *vrc_head;
/**
* Tail of DLL of all reporting contexts
*/
-struct ReportingContext *rc_tail;
+struct ValueReportingContext *vrc_tail;
/**
* Head of DLL of all cadet channels
@@ -186,24 +186,24 @@
* Destroy a reporting context structure
*/
static void
-destroy_reporting_context (struct ReportingContext *rc)
+destroy_reporting_context (struct ValueReportingContext *vrc)
{
- if (NULL != rc->wc)
+ if (NULL != vrc->wc)
{
- GNUNET_PEERSTORE_watch_cancel (rc->wc);
- rc->wc = NULL;
+ GNUNET_PEERSTORE_watch_cancel (vrc->wc);
+ vrc->wc = NULL;
}
- if (GNUNET_SCHEDULER_NO_TASK != rc->cp_task)
+ if (GNUNET_SCHEDULER_NO_TASK != vrc->cp_task)
{
- GNUNET_SCHEDULER_cancel (rc->cp_task);
- rc->cp_task = GNUNET_SCHEDULER_NO_TASK;
+ GNUNET_SCHEDULER_cancel (vrc->cp_task);
+ vrc->cp_task = GNUNET_SCHEDULER_NO_TASK;
}
- if (NULL != rc->last_value)
+ if (NULL != vrc->last_value)
{
- GNUNET_free (rc->last_value);
- rc->last_value_size = 0;
+ GNUNET_free (vrc->last_value);
+ vrc->last_value_size = 0;
}
- GNUNET_free (rc);
+ GNUNET_free (vrc);
}
@@ -239,7 +239,7 @@
void
SENSOR_reporting_stop ()
{
- struct ReportingContext *rc;
+ struct ValueReportingContext *vrc;
struct CadetChannelContext *cc;
LOG (GNUNET_ERROR_TYPE_DEBUG, "Stopping sensor reporting module.\n");
@@ -249,11 +249,11 @@
GNUNET_CONTAINER_DLL_remove (cc_head, cc_tail, cc);
destroy_cadet_channel_context (cc);
}
- while (NULL != rc_head)
+ while (NULL != vrc_head)
{
- rc = rc_head;
- GNUNET_CONTAINER_DLL_remove (rc_head, rc_tail, rc);
- destroy_reporting_context (rc);
+ vrc = vrc_head;
+ GNUNET_CONTAINER_DLL_remove (vrc_head, vrc_tail, vrc);
+ destroy_reporting_context (vrc);
}
if (NULL != peerstore)
{
@@ -308,7 +308,7 @@
* @return size of created message
*/
static size_t
-construct_reading_message (struct ReportingContext *rc,
+construct_reading_message (struct ValueReportingContext *vrc,
struct GNUNET_SENSOR_ReadingMessage **msg)
{
struct GNUNET_SENSOR_ReadingMessage *ret;
@@ -316,22 +316,22 @@
uint16_t total_size;
void *dummy;
- sensorname_size = strlen (rc->sensor->name) + 1;
+ sensorname_size = strlen (vrc->sensor->name) + 1;
total_size =
sizeof (struct GNUNET_SENSOR_ReadingMessage) + sensorname_size +
- rc->last_value_size;
+ vrc->last_value_size;
ret = GNUNET_malloc (total_size);
ret->header.size = htons (total_size);
ret->header.type = htons (GNUNET_MESSAGE_TYPE_SENSOR_READING);
ret->sensorname_size = htons (sensorname_size);
- ret->sensorversion_major = htons (rc->sensor->version_major);
- ret->sensorversion_minor = htons (rc->sensor->version_minor);
- ret->timestamp = GNUNET_htobe64 (rc->timestamp);
- ret->value_size = htons (rc->last_value_size);
+ ret->sensorversion_major = htons (vrc->sensor->version_major);
+ ret->sensorversion_minor = htons (vrc->sensor->version_minor);
+ ret->timestamp = GNUNET_htobe64 (vrc->timestamp);
+ ret->value_size = htons (vrc->last_value_size);
dummy = &ret[1];
- memcpy (dummy, rc->sensor->name, sensorname_size);
+ memcpy (dummy, vrc->sensor->name, sensorname_size);
dummy += sensorname_size;
- memcpy (dummy, rc->last_value, rc->last_value_size);
+ memcpy (dummy, vrc->last_value, vrc->last_value_size);
*msg = ret;
return total_size;
}
@@ -382,59 +382,59 @@
/**
* Task scheduled to send values to collection point
*
- * @param cls closure, a `struct CollectionReportingContext *`
+ * @param cls closure, a `struct ValueReportingContext *`
* @param tc unused
*/
static void
report_collection_point (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- struct ReportingContext *rc = cls;
- struct GNUNET_SENSOR_SensorInfo *sensor = rc->sensor;
+ struct ValueReportingContext *vrc = cls;
+ struct GNUNET_SENSOR_SensorInfo *sensor = vrc->sensor;
struct CadetChannelContext *cc;
struct GNUNET_SENSOR_ReadingMessage *msg;
size_t msg_size;
- rc->cp_task = GNUNET_SCHEDULER_NO_TASK;
- if (0 == rc->last_value_size) /* Did not receive a sensor value yet */
+ vrc->cp_task = GNUNET_SCHEDULER_NO_TASK;
+ if (0 == vrc->last_value_size) /* Did not receive a sensor value yet */
{
LOG (GNUNET_ERROR_TYPE_WARNING,
"Did not receive a value from `%s' to report yet.\n",
- rc->sensor->name);
- rc->cp_task =
- GNUNET_SCHEDULER_add_delayed (sensor->collection_interval,
- &report_collection_point, rc);
+ vrc->sensor->name);
+ vrc->cp_task =
+ GNUNET_SCHEDULER_add_delayed (sensor->value_reporting_interval,
+ &report_collection_point, vrc);
return;
}
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Now trying to report last seen value of `%s' " "to collection
point.\n",
- rc->sensor->name);
+ vrc->sensor->name);
GNUNET_assert (NULL != sensor->collection_point);
cc = get_cadet_channel (*sensor->collection_point);
if (GNUNET_YES == cc->sending)
{
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Cadet channel to collection point busy, "
- "trying again for sensor `%s' after %d seconds.\n", rc->sensor->name,
+ "trying again for sensor `%s' after %d seconds.\n", vrc->sensor->name,
COLLECTION_RETRY);
- rc->cp_task =
+ vrc->cp_task =
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_SECONDS,
COLLECTION_RETRY),
- &report_collection_point, rc);
+ &report_collection_point, vrc);
return;
}
- msg_size = construct_reading_message (rc, &msg);
+ msg_size = construct_reading_message (vrc, &msg);
cc->sending = GNUNET_YES;
cc->pending_msg = msg;
cc->pending_msg_size = msg_size;
cc->th =
GNUNET_CADET_notify_transmit_ready (cc->c, GNUNET_YES,
- sensor->collection_interval,
msg_size,
+ sensor->value_reporting_interval,
msg_size,
&do_report_collection_point, cc);
- rc->cp_task =
- GNUNET_SCHEDULER_add_delayed (sensor->collection_interval,
- &report_collection_point, rc);
+ vrc->cp_task =
+ GNUNET_SCHEDULER_add_delayed (sensor->value_reporting_interval,
+ &report_collection_point, vrc);
}
@@ -444,23 +444,23 @@
static int
sensor_watch_cb (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg)
{
- struct ReportingContext *rc = cls;
+ struct ValueReportingContext *vrc = cls;
if (NULL != emsg)
return GNUNET_YES;
- if (NULL != rc->last_value)
+ if (NULL != vrc->last_value)
{
- GNUNET_free (rc->last_value);
- rc->last_value_size = 0;
+ GNUNET_free (vrc->last_value);
+ vrc->last_value_size = 0;
}
- rc->last_value = GNUNET_malloc (record->value_size);
- memcpy (rc->last_value, record->value, record->value_size);
- rc->last_value_size = record->value_size;
- rc->timestamp = GNUNET_TIME_absolute_get ().abs_value_us;
+ vrc->last_value = GNUNET_malloc (record->value_size);
+ memcpy (vrc->last_value, record->value, record->value_size);
+ vrc->last_value_size = record->value_size;
+ vrc->timestamp = GNUNET_TIME_absolute_get ().abs_value_us;
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Received a sensor `%s' watch value at " "timestamp %" PRIu64
- ", updating notification last_value.\n", rc->sensor->name,
- rc->timestamp);
+ ", updating notification last_value.\n", vrc->sensor->name,
+ vrc->timestamp);
return GNUNET_YES;
}
@@ -479,38 +479,31 @@
void *value)
{
struct GNUNET_SENSOR_SensorInfo *sensor = value;
- struct ReportingContext *rc;
+ struct ValueReportingContext *vrc;
- if (NULL == sensor->collection_point && GNUNET_NO == sensor->p2p_report)
+ if (NULL == sensor->collection_point ||
+ (GNUNET_NO == sensor->report_values && GNUNET_NO ==
sensor->report_anomalies))
return GNUNET_YES;
- rc = GNUNET_new (struct ReportingContext);
- rc->sensor = sensor;
- rc->last_value = NULL;
- rc->last_value_size = 0;
- rc->wc =
+ vrc = GNUNET_new (struct ValueReportingContext);
+ vrc->sensor = sensor;
+ vrc->last_value = NULL;
+ vrc->last_value_size = 0;
+ vrc->wc =
GNUNET_PEERSTORE_watch (peerstore, "sensor", &mypeerid, sensor->name,
- &sensor_watch_cb, rc);
+ &sensor_watch_cb, vrc);
if (NULL != sensor->collection_point)
{
LOG (GNUNET_ERROR_TYPE_INFO,
"Will start reporting sensor `%s' values to "
"collection point `%s' every %s.\n", sensor->name,
GNUNET_i2s_full (sensor->collection_point),
- GNUNET_STRINGS_relative_time_to_string (sensor->collection_interval,
+ GNUNET_STRINGS_relative_time_to_string
(sensor->value_reporting_interval,
GNUNET_YES));
- rc->cp_task =
- GNUNET_SCHEDULER_add_delayed (sensor->collection_interval,
- &report_collection_point, rc);
+ vrc->cp_task =
+ GNUNET_SCHEDULER_add_delayed (sensor->value_reporting_interval,
+ &report_collection_point, vrc);
}
- if (GNUNET_YES == sensor->p2p_report)
- {
- LOG (GNUNET_ERROR_TYPE_INFO,
- "Will start reporting sensor `%s' values to p2p network every %s.\n",
- sensor->name,
- GNUNET_STRINGS_relative_time_to_string (sensor->p2p_interval,
- GNUNET_YES));
- }
- GNUNET_CONTAINER_DLL_insert (rc_head, rc_tail, rc);
+ GNUNET_CONTAINER_DLL_insert (vrc_head, vrc_tail, vrc);
return GNUNET_YES;
}
Modified: gnunet/src/sensor/gnunet-service-sensor.c
===================================================================
--- gnunet/src/sensor/gnunet-service-sensor.c 2014-08-04 11:06:52 UTC (rev
34104)
+++ gnunet/src/sensor/gnunet-service-sensor.c 2014-08-04 13:55:10 UTC (rev
34105)
@@ -554,7 +554,7 @@
else
{
sensorinfo->running = GNUNET_NO;
- GNUNET_break (0); //shouldn't happen
+ GNUNET_break (0); /* shouldn't happen */
}
}
@@ -596,7 +596,6 @@
/**
* Starts the execution of all enabled sensors
- *
*/
static void
schedule_all_sensors ()
Modified: gnunet/src/sensor/sensor.conf.in
===================================================================
--- gnunet/src/sensor/sensor.conf.in 2014-08-04 11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensor.conf.in 2014-08-04 13:55:10 UTC (rev 34105)
@@ -9,7 +9,10 @@
#UPDATE_POINTS = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
[sensor-analysis]
-model = gaussian
+MODEL = gaussian
+# How many subsequent values required to flip anomaly label. (Default: 1)
+# E.g. After 3 subsequent anomaly reports, status change to anomalous.
+CONFIRMATION_COUNT = 3
[sensor-model-gaussian]
TRAINING_WINDOW = 1000
Modified: gnunet/src/sensor/sensor.h
===================================================================
--- gnunet/src/sensor/sensor.h 2014-08-04 11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensor.h 2014-08-04 13:55:10 UTC (rev 34105)
@@ -61,7 +61,6 @@
};
GNUNET_NETWORK_STRUCT_END
-
/**
* Stop the sensor analysis module
*/
@@ -117,5 +116,4 @@
*/
int
SENSOR_update_start (const struct GNUNET_CONFIGURATION_Handle *c,
- struct GNUNET_CONTAINER_MultiHashMap *s,
- void (*cb) ());
+ struct GNUNET_CONTAINER_MultiHashMap *s, void (*cb) ());
Modified: gnunet/src/sensor/sensor_util_lib.c
===================================================================
--- gnunet/src/sensor/sensor_util_lib.c 2014-08-04 11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensor_util_lib.c 2014-08-04 13:55:10 UTC (rev 34105)
@@ -150,8 +150,6 @@
&starttime_str))
{
GNUNET_STRINGS_fancy_time_to_absolute (starttime_str, sensor->start_time);
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Start time loaded: `%s'. Parsed: %d\n",
- starttime_str, (NULL != sensor->start_time));
GNUNET_free (starttime_str);
}
//end time
@@ -161,8 +159,6 @@
&endtime_str))
{
GNUNET_STRINGS_fancy_time_to_absolute (endtime_str, sensor->end_time);
- LOG (GNUNET_ERROR_TYPE_DEBUG, "End time loaded: `%s'. Parsed: %d\n",
- endtime_str, (NULL != sensor->end_time));
GNUNET_free (endtime_str);
}
//interval
@@ -259,53 +255,37 @@
GNUNET_free (sensor);
return NULL;
}
- //reporting mechanism
+ //reporting
sensor->collection_point = NULL;
+ sensor->report_values = GNUNET_NO;
+ sensor->report_anomalies = GNUNET_NO;
if (GNUNET_OK ==
GNUNET_CONFIGURATION_get_value_string (cfg, sectionname,
"COLLECTION_POINT", &dummy))
{
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_number (cfg, sectionname,
- "COLLECTION_INTERVAL",
- &time_sec))
+ if (GNUNET_OK ==
+ GNUNET_CRYPTO_eddsa_public_key_from_string (dummy, strlen (dummy),
+ &public_key))
{
- LOG (GNUNET_ERROR_TYPE_ERROR,
- _("Error reading sensor collection interval\n"));
- }
- else
- {
- sensor->collection_interval =
- GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec);
+ sensor->collection_point = GNUNET_new (struct GNUNET_PeerIdentity);
+
+ sensor->collection_point->public_key = public_key;
if (GNUNET_OK ==
- GNUNET_CRYPTO_eddsa_public_key_from_string (dummy, strlen (dummy),
- &public_key))
+ GNUNET_CONFIGURATION_get_value_number (cfg, sectionname,
+ "VALUE_COLLECTION_INTERVAL",
+ &time_sec))
{
- sensor->collection_point = GNUNET_new (struct GNUNET_PeerIdentity);
-
- sensor->collection_point->public_key = public_key;
+ sensor->report_values = GNUNET_YES;
+ sensor->value_reporting_interval =
+ GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec);
}
+ if (GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_yesno (cfg, sectionname,
+ "REPORT_ANOMALIES"))
+ sensor->report_anomalies = GNUNET_YES;
}
GNUNET_free (dummy);
}
- sensor->p2p_report = GNUNET_NO;
- if (GNUNET_YES ==
- GNUNET_CONFIGURATION_get_value_yesno (cfg, sectionname, "P2P_REPORT"))
- {
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_number (cfg, sectionname,
"P2P_INTERVAL",
- &time_sec))
- {
- LOG (GNUNET_ERROR_TYPE_ERROR,
- _("Error reading sensor p2p reporting interval\n"));
- }
- else
- {
- sensor->p2p_interval =
- GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec);
- sensor->p2p_report = GNUNET_YES;
- }
- }
//execution task
sensor->execution_task = GNUNET_SCHEDULER_NO_TASK;
//running
@@ -490,8 +470,7 @@
"Loading sensor definitions from directory `%s'\n", sensordir);
GNUNET_assert (GNUNET_YES ==
GNUNET_DISK_directory_test (sensordir, GNUNET_YES));
-
- //read all files in sensors directory
+ /* read all files in sensors directory */
GNUNET_DISK_directory_scan (sensordir, &reload_sensors_dir_cb, sensors);
LOG (GNUNET_ERROR_TYPE_INFO, "Loaded %d sensors from directory `%s'\n",
GNUNET_CONTAINER_multihashmap_size (sensors), sensordir);
Modified: gnunet/src/sensor/sensors/average-ping-rtt
===================================================================
--- gnunet/src/sensor/sensors/average-ping-rtt 2014-08-04 11:06:52 UTC (rev
34104)
+++ gnunet/src/sensor/sensors/average-ping-rtt 2014-08-04 13:55:10 UTC (rev
34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 7200
-
-P2P_REPORT = NO
-#P2P_INTERVAL = 300
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 7200
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/core-peers-connected
===================================================================
--- gnunet/src/sensor/sensors/core-peers-connected 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/sensors/core-peers-connected 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/datacache-bytes-stored
===================================================================
--- gnunet/src/sensor/sensors/datacache-bytes-stored 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/sensors/datacache-bytes-stored 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/dht-peers-connected
===================================================================
--- gnunet/src/sensor/sensors/dht-peers-connected 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/sensors/dht-peers-connected 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/fs-peers-connected
===================================================================
--- gnunet/src/sensor/sensors/fs-peers-connected 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/sensors/fs-peers-connected 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/gnunet-version
===================================================================
--- gnunet/src/sensor/sensors/gnunet-version 2014-08-04 11:06:52 UTC (rev
34104)
+++ gnunet/src/sensor/sensors/gnunet-version 2014-08-04 13:55:10 UTC (rev
34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = string
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 86400
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/known-peers
===================================================================
--- gnunet/src/sensor/sensors/known-peers 2014-08-04 11:06:52 UTC (rev
34104)
+++ gnunet/src/sensor/sensors/known-peers 2014-08-04 13:55:10 UTC (rev
34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/nse
===================================================================
--- gnunet/src/sensor/sensors/nse 2014-08-04 11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensors/nse 2014-08-04 13:55:10 UTC (rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/peerstore-memory
===================================================================
--- gnunet/src/sensor/sensors/peerstore-memory 2014-08-04 11:06:52 UTC (rev
34104)
+++ gnunet/src/sensor/sensors/peerstore-memory 2014-08-04 13:55:10 UTC (rev
34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
-COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-COLLECTION_INTERVAL = 61
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Reporting:
+#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/transport-bytes-received
===================================================================
--- gnunet/src/sensor/sensors/transport-bytes-received 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/sensors/transport-bytes-received 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/transport-http-connections
===================================================================
--- gnunet/src/sensor/sensors/transport-http-connections 2014-08-04
11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensors/transport-http-connections 2014-08-04
13:55:10 UTC (rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/transport-https-connections
===================================================================
--- gnunet/src/sensor/sensors/transport-https-connections 2014-08-04
11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensors/transport-https-connections 2014-08-04
13:55:10 UTC (rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/transport-peers-connected
===================================================================
--- gnunet/src/sensor/sensors/transport-peers-connected 2014-08-04 11:06:52 UTC
(rev 34104)
+++ gnunet/src/sensor/sensors/transport-peers-connected 2014-08-04 13:55:10 UTC
(rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/transport-tcp-bytes-transmitted
===================================================================
--- gnunet/src/sensor/sensors/transport-tcp-bytes-transmitted 2014-08-04
11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensors/transport-tcp-bytes-transmitted 2014-08-04
13:55:10 UTC (rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
Modified: gnunet/src/sensor/sensors/transport-tcp-sessions-active
===================================================================
--- gnunet/src/sensor/sensors/transport-tcp-sessions-active 2014-08-04
11:06:52 UTC (rev 34104)
+++ gnunet/src/sensor/sensors/transport-tcp-sessions-active 2014-08-04
13:55:10 UTC (rev 34105)
@@ -24,9 +24,8 @@
EXPECTED_DATATYPE = numeric
-# Reporting mechanism
+# Reporting:
#COLLECTION_POINT = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
-#COLLECTION_INTERVAL = 120
-
-P2P_REPORT = NO
-#P2P_INTERVAL =
+# Comment or remove next line to disable reporting sensor values to collection
point
+#VALUE_COLLECTION_INTERVAL = 120
+REPORT_ANOMALIES = YES
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34105 - in gnunet/src: include sensor sensor/sensors,
gnunet <=