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>
diff --git a/src/vlib/stats/collector.c b/src/vlib/stats/collector.c
index c27d2fc..53fbfa0 100644
--- a/src/vlib/stats/collector.c
+++ b/src/vlib/stats/collector.c
@@ -169,6 +169,8 @@
}
}
+ 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 b07f217..ab1e282 100644
--- a/src/vlib/stats/stats.h
+++ b/src/vlib/stats/stats.h
@@ -21,12 +21,14 @@
{
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
{