Skip to content
This repository was archived by the owner on Jul 27, 2022. It is now read-only.
This repository was archived by the owner on Jul 27, 2022. It is now read-only.

StartUp Check called twice #18

Open
@rommik

Description

@rommik

I noticed that my StartupCheck is executed twice. I'm not sure if I'm using it wrong or is it by design. Please help me to understand.

I have a simple Express app

const express = require('express');
const path = require('path');
const health = require('@cloudnative/health-connect');

const healthCheck = new health.HealthChecker();
const app = express();

const startPromise = () =>{
  console.log('Start Promise Is called.');
  return new Promise((resolve, reject) => {
    if (true) {
      console.log('Start Up Check Promise called');
      resolve();
    } else {
      reject();
    }
  });
}

const livePromise = () =>
  new Promise((resolve, reject) => {

    if (true) {

      console.log('Liveness probe called');
      resolve();
    } else reject();
  });

const liveCheck = new health.LivenessCheck('liveCheck', livePromise);
healthCheck.registerLivenessCheck(liveCheck);

const ReadinessCheckPromise = () =>
  new Promise((resolve, reject) => {

    if (true) {
      console.log('Readiness Check  called');
      resolve();
    } else reject();
  });
const readinessCheck = new health.ReadinessCheck('ReadinessCheck', ReadinessCheckPromise);
healthCheck.registerReadinessCheck(readinessCheck);

app.use('/status/live', health.LivenessEndpoint(healthCheck));
app.use('/status/ready', health.ReadinessEndpoint(healthCheck));
app.use('/status/healthz', health.HealthEndpoint(healthCheck));

app.listen(3000, () => {

  console.log('running on port 3000');
  const startCheck = new health.StartupCheck('startCheck', startPromise);
  healthCheck.registerStartupCheck(startCheck);
});

In the logs I see

On App Start , the logs look

 MUI running on port 3000
 Start Promise Is called.
 Start Up Check Promise called

On localhost:3000/status/ready:

MUI running on port 3000
Start Promise Is called.
Start Up Check Promise called
++Start Promise Is called.
++Start Up Check Promise called
++Readiness Check  called
++Liveness probe called

++ are marked as Added New Lines
I understand Readiness will perform Liveness check too (once), but why does it perform On StartUp too?

If I do another localhost:3000/status/ready
the logs look

MUI running on port 3000
Start Promise Is called.
Start Up Check Promise called
Start Promise Is called.
Start Up Check Promise called
Readiness Check  called
Liveness probe called
++ Readiness Check  called

Only one line added, as expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions