aboutsummaryrefslogtreecommitdiff
path: root/src/sensor
diff options
context:
space:
mode:
authorOmar Tarabai <tarabai@devegypt.com>2014-06-26 14:15:56 +0000
committerOmar Tarabai <tarabai@devegypt.com>2014-06-26 14:15:56 +0000
commitd5838194f7e6f059aa16bc5d0a49f9fd367ad90d (patch)
treebf98054ed9ac9076a96af44b267da32d119399e9 /src/sensor
parent8a8efc73d30f0358cbc784293dd6df0e8803dfd2 (diff)
downloadgnunet-d5838194f7e6f059aa16bc5d0a49f9fd367ad90d.tar.gz
gnunet-d5838194f7e6f059aa16bc5d0a49f9fd367ad90d.zip
sensor: unified numeric datatypes
Diffstat (limited to 'src/sensor')
-rw-r--r--src/sensor/gnunet-service-sensor-analysis.c18
-rw-r--r--src/sensor/gnunet-service-sensor.c21
-rw-r--r--src/sensor/gnunet_sensor_model_plugin.h9
-rw-r--r--src/sensor/plugin_sensor_model_gaussian.c24
-rw-r--r--src/sensor/sensors/average-ping-rtt2
-rw-r--r--src/sensor/sensors/datacache-bytes-stored2
-rw-r--r--src/sensor/sensors/known-peers2
-rw-r--r--src/sensor/sensors/nse2
-rw-r--r--src/sensor/sensors/peerstore-memory2
-rw-r--r--src/sensor/sensors/transport-bytes-received2
-rw-r--r--src/sensor/sensors/transport-tcp-bytes-transmitted2
-rw-r--r--src/sensor/sensors/transport-tcp-sessions-active2
12 files changed, 47 insertions, 41 deletions
diff --git a/src/sensor/gnunet-service-sensor-analysis.c b/src/sensor/gnunet-service-sensor-analysis.c
index 37844f30c..531f7857d 100644
--- a/src/sensor/gnunet-service-sensor-analysis.c
+++ b/src/sensor/gnunet-service-sensor-analysis.c
@@ -80,11 +80,6 @@ static struct GNUNET_SENSOR_ModelFunctions *model_api;
80static struct GNUNET_PEERSTORE_Handle *peerstore; 80static struct GNUNET_PEERSTORE_Handle *peerstore;
81 81
82/* 82/*
83 * Datatypes supported by the analysis component
84 */
85static const char *analysis_datatypes[] = { "uint64", "double", NULL };
86
87/*
88 * Head of DLL of created models 83 * Head of DLL of created models
89 */ 84 */
90static struct SensorModel *models_head; 85static struct SensorModel *models_head;
@@ -173,19 +168,8 @@ init_sensor_model (void *cls,
173{ 168{
174 struct SensorInfo *sensor = value; 169 struct SensorInfo *sensor = value;
175 struct SensorModel *sensor_model; 170 struct SensorModel *sensor_model;
176 int is_numeric;
177 int i;
178 171
179 is_numeric = GNUNET_NO; 172 if (0 != strcmp("numeric", sensor->expected_datatype))
180 for (i = 0; NULL != analysis_datatypes[i]; i++)
181 {
182 if (0 == strcmp (analysis_datatypes[i], sensor->expected_datatype))
183 {
184 is_numeric = GNUNET_YES;
185 break;
186 }
187 }
188 if (GNUNET_NO == is_numeric)
189 return GNUNET_YES; 173 return GNUNET_YES;
190 sensor_model = GNUNET_new(struct SensorModel); 174 sensor_model = GNUNET_new(struct SensorModel);
191 sensor_model->sensor = sensor; 175 sensor_model->sensor = sensor;
diff --git a/src/sensor/gnunet-service-sensor.c b/src/sensor/gnunet-service-sensor.c
index 681f132b6..83e611bfb 100644
--- a/src/sensor/gnunet-service-sensor.c
+++ b/src/sensor/gnunet-service-sensor.c
@@ -53,7 +53,7 @@ static const char *sources[] = { "gnunet-statistics", "process", NULL };
53/** 53/**
54 * Supported datatypes of sensor information 54 * Supported datatypes of sensor information
55 */ 55 */
56static const char *datatypes[] = { "uint64", "double", "string", NULL }; 56static const char *datatypes[] = { "numeric", "string", NULL };
57 57
58/** 58/**
59 * Handle to statistics service 59 * Handle to statistics service
@@ -697,6 +697,7 @@ int sensor_statistics_iterator (void *cls,
697 int is_persistent) 697 int is_persistent)
698{ 698{
699 struct SensorInfo *sensorinfo = cls; 699 struct SensorInfo *sensorinfo = cls;
700 double dvalue = (double)value;
700 struct GNUNET_TIME_Absolute expiry; 701 struct GNUNET_TIME_Absolute expiry;
701 702
702 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received a value for sensor `%s': %" PRIu64 "\n", sensorinfo->name, value); 703 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received a value for sensor `%s': %" PRIu64 "\n", sensorinfo->name, value);
@@ -705,8 +706,8 @@ int sensor_statistics_iterator (void *cls,
705 subsystem, 706 subsystem,
706 &peerid, 707 &peerid,
707 sensorinfo->name, 708 sensorinfo->name,
708 &value, 709 &dvalue,
709 sizeof(value), 710 sizeof(dvalue),
710 expiry, 711 expiry,
711 GNUNET_PEERSTORE_STOREOPTION_MULTIPLE, 712 GNUNET_PEERSTORE_STOREOPTION_MULTIPLE,
712 NULL, 713 NULL,
@@ -741,25 +742,13 @@ void end_sensor_run_stat (void *cls, int success)
741static size_t 742static size_t
742parse_sensor_value (const char *value, struct SensorInfo* sensor, void **ret) 743parse_sensor_value (const char *value, struct SensorInfo* sensor, void **ret)
743{ 744{
744 uint64_t *ullval;
745 double *dval; 745 double *dval;
746 char *endptr; 746 char *endptr;
747 747
748 *ret = NULL; 748 *ret = NULL;
749 if ('\0' == *value) 749 if ('\0' == *value)
750 return 0; 750 return 0;
751 //"uint64", "double", "string" 751 if(0 == strcmp("numeric", sensor->expected_datatype))
752 if (0 == strcmp("uint64", sensor->expected_datatype))
753 {
754 ullval = GNUNET_new(uint64_t);
755 *ullval = strtoull(value, &endptr, 10);
756 if ('\0' != *endptr &&
757 '\n' != *endptr) /* Invalid string */
758 return 0;
759 *ret = ullval;
760 return sizeof(uint64_t);
761 }
762 if(0 == strcmp("double", sensor->expected_datatype))
763 { 752 {
764 dval = GNUNET_new(double); 753 dval = GNUNET_new(double);
765 *dval = strtod(value, &endptr); 754 *dval = strtod(value, &endptr);
diff --git a/src/sensor/gnunet_sensor_model_plugin.h b/src/sensor/gnunet_sensor_model_plugin.h
index 374c776f5..b2973a60d 100644
--- a/src/sensor/gnunet_sensor_model_plugin.h
+++ b/src/sensor/gnunet_sensor_model_plugin.h
@@ -48,6 +48,15 @@ struct GNUNET_SENSOR_ModelFunctions
48 */ 48 */
49 void *cls; 49 void *cls;
50 50
51 /*
52 * Create a model instance
53 *
54 * @param cls closure (plugin state)
55 * @return model state to be used for later calls
56 */
57 void *
58 (*create_model) (void *cls);
59
51}; 60};
52 61
53 62
diff --git a/src/sensor/plugin_sensor_model_gaussian.c b/src/sensor/plugin_sensor_model_gaussian.c
index ee316035e..bf2090217 100644
--- a/src/sensor/plugin_sensor_model_gaussian.c
+++ b/src/sensor/plugin_sensor_model_gaussian.c
@@ -45,6 +45,30 @@ struct Plugin
45}; 45};
46 46
47/* 47/*
48 * State of single model instance
49 */
50struct Model
51{
52
53 /*
54 * Pointer to the plugin state
55 */
56 struct Plugin *plugin;
57
58};
59
60static void *
61sensor_gaussian_model_create_model (void *cls)
62{
63 struct Plugin *plugin = cls;
64 struct Model *model;
65
66 model = GNUNET_new(struct Model);
67 model->plugin = plugin;
68 return model;
69}
70
71/*
48 * Entry point for the plugin. 72 * Entry point for the plugin.
49 * 73 *
50 * @param cls The struct GNUNET_CONFIGURATION_Handle. 74 * @param cls The struct GNUNET_CONFIGURATION_Handle.
diff --git a/src/sensor/sensors/average-ping-rtt b/src/sensor/sensors/average-ping-rtt
index aaf84e0b6..36888c982 100644
--- a/src/sensor/sensors/average-ping-rtt
+++ b/src/sensor/sensors/average-ping-rtt
@@ -22,7 +22,7 @@ SOURCE = process
22EXT_PROCESS = avgping.sh 22EXT_PROCESS = avgping.sh
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = double 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/datacache-bytes-stored b/src/sensor/sensors/datacache-bytes-stored
index c58bb4ea1..b55ee8083 100644
--- a/src/sensor/sensors/datacache-bytes-stored
+++ b/src/sensor/sensors/datacache-bytes-stored
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # bytes stored
22#EXT_PROCESS = 22#EXT_PROCESS =
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/known-peers b/src/sensor/sensors/known-peers
index fa92bd7c7..5c7c1aeaa 100644
--- a/src/sensor/sensors/known-peers
+++ b/src/sensor/sensors/known-peers
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # peers known
22#EXT_PROCESS = 22#EXT_PROCESS =
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/nse b/src/sensor/sensors/nse
index 429e80478..f95cc34de 100644
--- a/src/sensor/sensors/nse
+++ b/src/sensor/sensors/nse
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # nodes in the network (estimate)
22#EXT_PROCESS = 22#EXT_PROCESS =
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/peerstore-memory b/src/sensor/sensors/peerstore-memory
index a75110d36..6d6c54600 100644
--- a/src/sensor/sensors/peerstore-memory
+++ b/src/sensor/sensors/peerstore-memory
@@ -22,7 +22,7 @@ SOURCE = process
22EXT_PROCESS = peerstore-memory.sh 22EXT_PROCESS = peerstore-memory.sh
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/transport-bytes-received b/src/sensor/sensors/transport-bytes-received
index 014546934..5c45d6cb1 100644
--- a/src/sensor/sensors/transport-bytes-received
+++ b/src/sensor/sensors/transport-bytes-received
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # bytes total received
22#EXT_PROCESS = 22#EXT_PROCESS =
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/transport-tcp-bytes-transmitted b/src/sensor/sensors/transport-tcp-bytes-transmitted
index 43b0f572c..cf45c0c86 100644
--- a/src/sensor/sensors/transport-tcp-bytes-transmitted
+++ b/src/sensor/sensors/transport-tcp-bytes-transmitted
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # bytes transmitted via TCP
22#EXT_PROCESS = 22#EXT_PROCESS =
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80
diff --git a/src/sensor/sensors/transport-tcp-sessions-active b/src/sensor/sensors/transport-tcp-sessions-active
index a0466f81a..810313091 100644
--- a/src/sensor/sensors/transport-tcp-sessions-active
+++ b/src/sensor/sensors/transport-tcp-sessions-active
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # TCP sessions active
22#EXT_PROCESS = 22#EXT_PROCESS =
23#EXT_ARGS = 23#EXT_ARGS =
24 24
25EXPECTED_DATATYPE = uint64 25EXPECTED_DATATYPE = numeric
26 26
27# Reporting mechanism 27# Reporting mechanism
28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 28COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80