summaryrefslogtreecommitdiffstats
path: root/src/vlib
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2022-11-28 13:13:24 +0100
committerAndrew Yourtchenko <ayourtch@gmail.com>2022-11-30 11:55:44 +0000
commit5010bbd3c44d9fb061818be7a291a474608f510a (patch)
tree6740b042efc5eb08425915d9aa0e672beca412a3 /src/vlib
parente1f2058b548fe478c6dbfd450c343912cebb9740 (diff)
stats: add boot time in stats segment
Write time into /sys/boottime on VPP start. This allows a stateless control plane agent to validate if it's reconnecting to the same VPP instance. Type: improvement Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: Iba7f334339c46142045e43da6efab11612e7b9c0 Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vlib')
-rw-r--r--src/vlib/stats/collector.c2
-rw-r--r--src/vlib/stats/stats.h4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/vlib/stats/collector.c b/src/vlib/stats/collector.c
index c27d2fc65d8..53fbfa01a22 100644
--- a/src/vlib/stats/collector.c
+++ b/src/vlib/stats/collector.c
@@ -169,6 +169,8 @@ stat_segment_collector_process (vlib_main_t *vm, vlib_node_runtime_t *rt,
}
}
+ sm->directory_vector[STAT_COUNTER_BOOTTIME].value = unix_time_now ();
+
while (1)
{
do_stat_segment_updates (vm, sm);
diff --git a/src/vlib/stats/stats.h b/src/vlib/stats/stats.h
index b07f21724a0..ab1e2828c5a 100644
--- a/src/vlib/stats/stats.h
+++ b/src/vlib/stats/stats.h
@@ -21,12 +21,14 @@ typedef enum
{
STAT_COUNTER_HEARTBEAT = 0,
STAT_COUNTER_LAST_STATS_CLEAR,
+ STAT_COUNTER_BOOTTIME,
STAT_COUNTERS
} stat_segment_counter_t;
#define foreach_stat_segment_counter_name \
_ (LAST_STATS_CLEAR, SCALAR_INDEX, last_stats_clear, "/sys") \
- _ (HEARTBEAT, SCALAR_INDEX, heartbeat, "/sys")
+ _ (HEARTBEAT, SCALAR_INDEX, heartbeat, "/sys") \
+ _ (BOOTTIME, SCALAR_INDEX, boottime, "/sys")
typedef struct
{