batching events
This commit is contained in:
committed by
Carl-Gerhard Lindesvärd
parent
244aa3b0d3
commit
5e225b7ae6
@@ -19,6 +19,7 @@ import exportRouter from './routes/export.router';
|
||||
import liveRouter from './routes/live.router';
|
||||
import miscRouter from './routes/misc.router';
|
||||
import profileRouter from './routes/profile.router';
|
||||
import webhookRouter from './routes/webhook.router';
|
||||
import { logger, logInfo } from './utils/logger';
|
||||
|
||||
declare module 'fastify' {
|
||||
@@ -82,6 +83,7 @@ const startServer = async () => {
|
||||
fastify.register(profileRouter, { prefix: '/profile' });
|
||||
fastify.register(miscRouter, { prefix: '/misc' });
|
||||
fastify.register(exportRouter, { prefix: '/export' });
|
||||
fastify.register(webhookRouter, { prefix: '/webhook' });
|
||||
fastify.setErrorHandler((error) => {
|
||||
logger.error(error, 'Error in request');
|
||||
});
|
||||
@@ -89,35 +91,45 @@ const startServer = async () => {
|
||||
reply.send({ name: 'openpanel sdk api' });
|
||||
});
|
||||
fastify.get('/healthcheck', async (request, reply) => {
|
||||
try {
|
||||
const redisRes = await withTimings(redis.keys('*'));
|
||||
const dbRes = await withTimings(db.project.findFirst());
|
||||
const queueRes = await withTimings(eventsQueue.getCompleted());
|
||||
const chRes = await withTimings(
|
||||
chQuery('SELECT * FROM events LIMIT 1')
|
||||
);
|
||||
const redisRes = await withTimings(redis.keys('*')).catch(
|
||||
(e: Error) => e
|
||||
);
|
||||
const dbRes = await withTimings(db.project.findFirst()).catch(
|
||||
(e: Error) => e
|
||||
);
|
||||
const queueRes = await withTimings(eventsQueue.getCompleted()).catch(
|
||||
(e: Error) => e
|
||||
);
|
||||
const chRes = await withTimings(
|
||||
chQuery('SELECT * FROM events LIMIT 1')
|
||||
).catch((e: Error) => e);
|
||||
|
||||
reply.send({
|
||||
redis: {
|
||||
ok: redisRes[1].length ? true : false,
|
||||
time: `${redisRes[0]}ms`,
|
||||
},
|
||||
db: {
|
||||
ok: dbRes[1] ? true : false,
|
||||
time: `${dbRes[0]}ms`,
|
||||
},
|
||||
queue: {
|
||||
ok: queueRes[1].length ? true : false,
|
||||
time: `${queueRes[0]}ms`,
|
||||
},
|
||||
ch: {
|
||||
ok: chRes[1].length ? true : false,
|
||||
time: `${chRes[0]}ms`,
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
reply.status(500).send();
|
||||
}
|
||||
reply.send({
|
||||
redis: Array.isArray(redisRes)
|
||||
? {
|
||||
ok: redisRes[1].length ? true : false,
|
||||
time: `${redisRes[0]}ms`,
|
||||
}
|
||||
: redisRes,
|
||||
db: Array.isArray(dbRes)
|
||||
? {
|
||||
ok: dbRes[1] ? true : false,
|
||||
time: `${dbRes[0]}ms`,
|
||||
}
|
||||
: dbRes,
|
||||
queue: Array.isArray(queueRes)
|
||||
? {
|
||||
ok: queueRes[1].length ? true : false,
|
||||
time: `${queueRes[0]}ms`,
|
||||
}
|
||||
: queueRes,
|
||||
ch: Array.isArray(chRes)
|
||||
? {
|
||||
ok: chRes[1].length ? true : false,
|
||||
time: `${chRes[0]}ms`,
|
||||
}
|
||||
: chRes,
|
||||
});
|
||||
});
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
for (const signal of ['SIGINT', 'SIGTERM']) {
|
||||
|
||||
Reference in New Issue
Block a user