From bdde4579c2fcb43cf5a32d617b3a5fe72314adf8 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Thu, 15 Apr 2021 12:46:23 -0400 Subject: relay: Code and objects to initialize metrics store Signed-off-by: David Goulet --- 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); -- cgit v1.2.3-54-g00ecf