commit bdde4579c2fcb43cf5a32d617b3a5fe72314adf8 Author: David Goulet dgoulet@torproject.org Date: Thu Apr 15 12:46:23 2021 -0400
relay: Code and objects to initialize metrics store
Signed-off-by: David Goulet dgoulet@torproject.org --- src/feature/relay/relay_metrics.c | 7 +++++++ src/feature/relay/relay_metrics.h | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+)
diff --git a/src/feature/relay/relay_metrics.c b/src/feature/relay/relay_metrics.c index 3364861592..3d392847e1 100644 --- a/src/feature/relay/relay_metrics.c +++ b/src/feature/relay/relay_metrics.c @@ -17,6 +17,13 @@
#include "feature/relay/relay_metrics.h"
+/** The base metrics that is a static array of metrics added to the metrics + * store. + * + * The key member MUST be also the index of the entry in the array. */ +static const relay_metrics_entry_t base_metrics[] = {}; +static const size_t num_base_metrics = ARRAY_LENGTH(base_metrics); + /** The only and single store of all the relay metrics. */ static metrics_store_t *the_store;
diff --git a/src/feature/relay/relay_metrics.h b/src/feature/relay/relay_metrics.h index 3a13eb2042..7bc4760916 100644 --- a/src/feature/relay/relay_metrics.h +++ b/src/feature/relay/relay_metrics.h @@ -10,6 +10,30 @@ #define TOR_FEATURE_RELAY_RELAY_METRICS_H
#include "lib/container/smartlist.h" +#include "lib/metrics/metrics_common.h" + +#ifdef RELAY_METRICS_ENTRY_PRIVATE + +/** Metrics key for each reported metrics. This key is also used as an index in + * the base_metrics array. */ +typedef enum { + /* XXX So code compiles. */ + PLACEHOLDER = 0, +} relay_metrics_key_t; + +/** The metadata of a relay metric. */ +typedef struct relay_metrics_entry_t { + /* Metric key used as a static array index. */ + relay_metrics_key_t key; + /* Metric type. */ + metrics_type_t type; + /* Metrics output name. */ + const char *name; + /* Metrics output help comment. */ + const char *help; +} relay_metrics_entry_t; + +#endif /* RELAY_METRICS_ENTRY_PRIVATE */
/* Init. */ void relay_metrics_init(void);
tor-commits@lists.torproject.org