stats: add boot time in stats segment 28/37728/4
authorOle Troan <ot@cisco.com>
Mon, 28 Nov 2022 12:13:24 +0000 (13:13 +0100)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Wed, 30 Nov 2022 11:55:44 +0000 (11:55 +0000)
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>
src/vlib/stats/collector.c
src/vlib/stats/stats.h

index c27d2fc..53fbfa0 100644 (file)
@@ -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);
index b07f217..ab1e282 100644 (file)
@@ -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
 {