diff --git a/apps/worker/src/jobs/events.create-session-end.ts b/apps/worker/src/jobs/events.create-session-end.ts
index bb01b6f5..c133ed19 100644
--- a/apps/worker/src/jobs/events.create-session-end.ts
+++ b/apps/worker/src/jobs/events.create-session-end.ts
@@ -128,6 +128,14 @@ export async function createSessionEnd(
await checkNotificationRulesForSessionEnd(events);
+ logger.info('Creating session_end', {
+ sessionStart,
+ lastEvent,
+ screenViews,
+ sessionDuration,
+ events,
+ });
+
return createEvent({
...sessionStart,
properties: {
diff --git a/apps/worker/src/jobs/events.incoming-event.ts b/apps/worker/src/jobs/events.incoming-event.ts
index 76ef3989..270aa166 100644
--- a/apps/worker/src/jobs/events.incoming-event.ts
+++ b/apps/worker/src/jobs/events.incoming-event.ts
@@ -20,10 +20,16 @@ const GLOBAL_PROPERTIES = ['__path', '__referrer'];
const merge = (a: Partial, b: Partial): A & B =>
R.mergeDeepRight(a, R.reject(R.anyPass([R.isEmpty, R.isNil]))(b)) as A & B;
-async function createEventAndNotify(payload: IServiceCreateEventPayload) {
+async function createEventAndNotify(
+ payload: IServiceCreateEventPayload,
+ jobData: Job['data']['payload'],
+) {
await checkNotificationRulesForEvent(payload).catch((e) => {
logger.error('Error checking notification rules', { error: e });
});
+
+ logger.info('Creating event', { event: payload, jobData });
+
return createEvent(payload);
}
@@ -107,7 +113,7 @@ export async function incomingEvent(job: Job) {
: null;
const payload = merge(omit(['properties'], event ?? {}), baseEvent);
- return createEventAndNotify(payload as IServiceEvent);
+ return createEventAndNotify(payload as IServiceEvent, job.data.payload);
}
const sessionEnd = await getSessionEnd({
@@ -130,5 +136,5 @@ export async function incomingEvent(job: Job) {
await createSessionEnd({ payload });
}
- return createEventAndNotify(payload);
+ return createEventAndNotify(payload, job.data.payload);
}
diff --git a/packages/db/src/buffers/event-buffer-redis.ts b/packages/db/src/buffers/event-buffer-redis.ts
index da4db407..1219a15d 100644
--- a/packages/db/src/buffers/event-buffer-redis.ts
+++ b/packages/db/src/buffers/event-buffer-redis.ts
@@ -220,7 +220,7 @@ return "OK"
}),
eventJson,
'EX',
- 60 * 31,
+ 60 * 60,
);
addEventToSession();
@@ -511,11 +511,13 @@ return "OK"
const flush: IClickhouseEvent[] = [];
const pending: IClickhouseEvent[] = [];
+ let hasSessionEnd = false;
for (let i = 0; i < events.length; i++) {
const event = events[i]!;
if (event.name === 'session_end') {
+ hasSessionEnd = true;
flush.push(event);
} else {
// For screen_view events, look for next event
@@ -527,6 +529,8 @@ return "OK"
new Date(event.created_at).getTime();
}
flush.push(event);
+ } else if (hasSessionEnd) {
+ flush.push(event);
} else {
pending.push(event);
}