make health check more optimistic

This commit is contained in:
wphan
2023-11-28 16:59:18 -08:00
parent d5c2bc1b01
commit d1f2ad3538
2 changed files with 12 additions and 23 deletions

View File

@@ -134,12 +134,11 @@ const handleHealthCheck = async (req, res, next) => {
if (lastHealthCheckState) { if (lastHealthCheckState) {
res.writeHead(200); res.writeHead(200);
res.end('OK'); res.end('OK');
} else { lastHealthCheckPerformed = Date.now();
res.writeHead(500);
res.end(`NOK`);
}
return; return;
} }
// always check if last check was unhealthy (give it another chance to recover)
}
const { lastSlotReceived, lastSlotReceivedMutex } = getSlotHealthCheckInfo(); const { lastSlotReceived, lastSlotReceivedMutex } = getSlotHealthCheckInfo();
@@ -149,7 +148,9 @@ const handleHealthCheck = async (req, res, next) => {
lastHealthCheckState = lastSlotReceived > lastHealthCheckSlot; lastHealthCheckState = lastSlotReceived > lastHealthCheckSlot;
if (!lastHealthCheckState) { if (!lastHealthCheckState) {
logger.error( logger.error(
`Unhealthy: lastSlot: ${lastSlotReceived}, lastHealthCheckSlot: ${lastHealthCheckSlot}` `Unhealthy: lastSlot: ${lastSlotReceived}, lastHealthCheckSlot: ${lastHealthCheckSlot}, timeSinceLastCheck: ${
Date.now() - lastHealthCheckPerformed
} ms`
); );
} }

View File

@@ -21,8 +21,8 @@ import {
SlotSource, SlotSource,
SlotSubscriber, SlotSubscriber,
UserMap, UserMap,
UserStatsMap,
Wallet, Wallet,
getUserStatsAccountPublicKey,
getVariant, getVariant,
groupL2, groupL2,
initialize, initialize,
@@ -231,8 +231,6 @@ const main = async () => {
lastSlotReceived = slotSource.getSlot(); lastSlotReceived = slotSource.getSlot();
}, ORDERBOOK_UPDATE_INTERVAL); }, ORDERBOOK_UPDATE_INTERVAL);
const userStatsMap = new UserStatsMap(driftClient);
logger.info(`Initializing userMap...`); logger.info(`Initializing userMap...`);
const initUserMapStart = Date.now(); const initUserMapStart = Date.now();
const userMap = new UserMap( const userMap = new UserMap(
@@ -243,12 +241,6 @@ const main = async () => {
await userMap.subscribe(); await userMap.subscribe();
logger.info(`userMap initialized in ${Date.now() - initUserMapStart} ms`); logger.info(`userMap initialized in ${Date.now() - initUserMapStart} ms`);
const initUserStatsMapStarts = Date.now();
await userStatsMap.sync(userMap.getUniqueAuthorities());
logger.info(
`userStatsMap initialized in ${Date.now() - initUserStatsMapStarts} ms`
);
logger.info(`Initializing DLOBSubscriber...`); logger.info(`Initializing DLOBSubscriber...`);
const initDlobSubscriberStart = Date.now(); const initDlobSubscriberStart = Date.now();
const dlobSubscriber = new DLOBSubscriber({ const dlobSubscriber = new DLOBSubscriber({
@@ -265,11 +257,7 @@ const main = async () => {
MARKET_SUBSCRIBERS = await initializeAllMarketSubscribers(driftClient); MARKET_SUBSCRIBERS = await initializeAllMarketSubscribers(driftClient);
const handleStartup = async (_req, res, _next) => { const handleStartup = async (_req, res, _next) => {
if ( if (driftClient.isSubscribed && userMap.size() > 0) {
driftClient.isSubscribed &&
userMap.size() > 0 &&
userStatsMap.size() > 0
) {
res.writeHead(200); res.writeHead(200);
res.end('OK'); res.end('OK');
} else { } else {
@@ -559,12 +547,12 @@ const main = async () => {
if (`${includeUserStats}`.toLowerCase() === 'true') { if (`${includeUserStats}`.toLowerCase() === 'true') {
const userAccount = side.userAccount.toBase58(); const userAccount = side.userAccount.toBase58();
await userMap.mustGet(userAccount); await userMap.mustGet(userAccount);
const userStats = await userStatsMap.mustGet(
userMap.getUserAuthority(userAccount)!.toBase58()
);
topMakers.add([ topMakers.add([
userAccount, userAccount,
userStats.userStatsAccountPublicKey.toBase58(), getUserStatsAccountPublicKey(
driftClient.program.programId,
userMap.getUserAuthority(userAccount)
),
]); ]);
} else { } else {
topMakers.add(side.userAccount.toBase58()); topMakers.add(side.userAccount.toBase58());