@@ -31,6 +31,10 @@ func (h *Healthcheck) fullNodeReceive(resp *types.WebsocketResponse) {
3131 return
3232 }
3333
34+ if block .BlockchainState .Sync .Synced {
35+ h .lastSyncedTime = time .Now ()
36+ }
37+
3438 h .lastHeight = blockHeight
3539 h .lastHeightTime = time .Now ()
3640}
@@ -62,9 +66,23 @@ func (h *Healthcheck) fullNodeHealthcheck() func(http.ResponseWriter, *http.Requ
6266 }
6367}
6468
65- // Healthcheck endpoint for the full node service as a whole
69+ // Startup endpoint will be successful when the full node is running and the peak height is increasing
70+ func (h * Healthcheck ) fullNodeStartup () func (http.ResponseWriter , * http.Request ) {
71+ return func (w http.ResponseWriter , r * http.Request ) {
72+ timeMetricHealthcheckHelper (h .lastHeightTime , w , r )
73+ }
74+ }
75+
76+ // Readiness endpoint will be successful when the full node is synced
6677func (h * Healthcheck ) fullNodeReadiness () func (http.ResponseWriter , * http.Request ) {
6778 return func (w http.ResponseWriter , r * http.Request ) {
68- timeMetricHealthcheckHelper (h .lastFullNodeActivity , w , r )
79+ timeMetricHealthcheckHelper (h .lastSyncedTime , w , r )
80+ }
81+ }
82+
83+ // Liveness endpoint will be successful when the full node is running and the peak height is increasing
84+ func (h * Healthcheck ) fullNodeLiveness () func (http.ResponseWriter , * http.Request ) {
85+ return func (w http.ResponseWriter , r * http.Request ) {
86+ timeMetricHealthcheckHelper (h .lastHeightTime , w , r )
6987 }
7088}
0 commit comments