diff options
author | Arthur de Kerhor <arthurdekerhor@gmail.com> | 2021-03-11 10:26:54 -0800 |
---|---|---|
committer | Ole Tr�an <otroan@employees.org> | 2021-05-04 16:29:29 +0000 |
commit | db023809043f1dc64ed8c30dd5a575763df6045b (patch) | |
tree | eace5cdd59301a33872e312dd59bb9d2a24b8820 /src/vpp/stats/stat_segment.h | |
parent | 78b0a6e3f6e8644ebd06273f53b2440748ba34f4 (diff) |
stats: adding symlinks for nodes and interfaces in the stat segment
A given interface counter (e.g rx) can be accessed via
/interfaces/<interface_name>/<counter_name>.
Same goes with nodes: /nodes/<node_name>/<counter_name>
As interfaces may contain '/' in their names,
these are replaced by '_' in symlinks
Also added 2 tests for the stat segment
Type: feature
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Change-Id: I27da252e7b3dc177815616ca46b5c200a456bf0f
Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vpp/stats/stat_segment.h')
-rw-r--r-- | src/vpp/stats/stat_segment.h | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/vpp/stats/stat_segment.h b/src/vpp/stats/stat_segment.h index a048fa5b8ca..1d1ff31c294 100644 --- a/src/vpp/stats/stat_segment.h +++ b/src/vpp/stats/stat_segment.h @@ -40,23 +40,28 @@ typedef enum STAT_COUNTERS } stat_segment_counter_t; -#define foreach_stat_segment_counter_name \ - _(VECTOR_RATE, SCALAR_INDEX, vector_rate, /sys) \ - _(VECTOR_RATE_PER_WORKER, COUNTER_VECTOR_SIMPLE, \ - vector_rate_per_worker, /sys) \ - _(NUM_WORKER_THREADS, SCALAR_INDEX, num_worker_threads, /sys) \ - _(INPUT_RATE, SCALAR_INDEX, input_rate, /sys) \ - _(LAST_UPDATE, SCALAR_INDEX, last_update, /sys) \ - _(LAST_STATS_CLEAR, SCALAR_INDEX, last_stats_clear, /sys) \ - _(HEARTBEAT, SCALAR_INDEX, heartbeat, /sys) \ - _(NODE_CLOCKS, COUNTER_VECTOR_SIMPLE, clocks, /sys/node) \ - _(NODE_VECTORS, COUNTER_VECTOR_SIMPLE, vectors, /sys/node) \ - _(NODE_CALLS, COUNTER_VECTOR_SIMPLE, calls, /sys/node) \ - _(NODE_SUSPENDS, COUNTER_VECTOR_SIMPLE, suspends, /sys/node) \ - _(INTERFACE_NAMES, NAME_VECTOR, names, /if) \ - _(NODE_NAMES, NAME_VECTOR, names, /sys/node) \ - _(MEM_STATSEG_TOTAL, SCALAR_INDEX, total, /mem/statseg) \ - _(MEM_STATSEG_USED, SCALAR_INDEX, used, /mem/statseg) +/* clang-format off */ +#define foreach_stat_segment_node_counter_name \ + _ (NODE_CLOCKS, COUNTER_VECTOR_SIMPLE, clocks, /sys/node) \ + _ (NODE_VECTORS, COUNTER_VECTOR_SIMPLE, vectors, /sys/node) \ + _ (NODE_CALLS, COUNTER_VECTOR_SIMPLE, calls, /sys/node) \ + _ (NODE_SUSPENDS, COUNTER_VECTOR_SIMPLE, suspends, /sys/node) + +#define foreach_stat_segment_counter_name \ + _ (VECTOR_RATE, SCALAR_INDEX, vector_rate, /sys) \ + _ (VECTOR_RATE_PER_WORKER, COUNTER_VECTOR_SIMPLE, vector_rate_per_worker, \ + /sys) \ + _ (NUM_WORKER_THREADS, SCALAR_INDEX, num_worker_threads, /sys) \ + _ (INPUT_RATE, SCALAR_INDEX, input_rate, /sys) \ + _ (LAST_UPDATE, SCALAR_INDEX, last_update, /sys) \ + _ (LAST_STATS_CLEAR, SCALAR_INDEX, last_stats_clear, /sys) \ + _ (HEARTBEAT, SCALAR_INDEX, heartbeat, /sys) \ + _ (INTERFACE_NAMES, NAME_VECTOR, names, /if) \ + _ (NODE_NAMES, NAME_VECTOR, names, /sys/node) \ + _ (MEM_STATSEG_TOTAL, SCALAR_INDEX, total, /mem/statseg) \ + _ (MEM_STATSEG_USED, SCALAR_INDEX, used, /mem/statseg) \ + foreach_stat_segment_node_counter_name +/* clang-format on */ /* Default stat segment 32m */ #define STAT_SEGMENT_DEFAULT_SIZE (32<<20) |