feat(telemetry): session journey view replaces raw events table
- sessions listed from client_events grouped by session id (7d window) - timeline sheet merges page views, client events, errors, and server-fn activities joined by player within the session window - vitals excluded from timelines; gap markers over 5 minutes
This commit is contained in:
@@ -2,7 +2,9 @@ import { useServerSuspenseQuery } from "@/lib/tanstack-query/hooks";
|
||||
import {
|
||||
getClientErrorGroups,
|
||||
getRollupRange,
|
||||
getSessionTimeline,
|
||||
getTelemetryRuntimeStatus,
|
||||
listSessions,
|
||||
listTelemetryAlerts,
|
||||
searchClientErrors,
|
||||
searchClientEvents,
|
||||
@@ -30,6 +32,10 @@ export const telemetryKeys = {
|
||||
errorGroups: (params: ErrorGroupParams) => ["telemetry", "errorGroups", params] as const,
|
||||
rollups: (params: RollupRangeParams) => ["telemetry", "rollups", params] as const,
|
||||
alerts: (page: number) => ["telemetry", "alerts", page] as const,
|
||||
sessions: (params: { days?: number; page?: number }) =>
|
||||
["telemetry", "sessions", params] as const,
|
||||
sessionTimeline: (sessionId: string) =>
|
||||
["telemetry", "sessionTimeline", sessionId] as const,
|
||||
runtimeStatus: ["telemetry", "runtimeStatus"] as const,
|
||||
};
|
||||
|
||||
@@ -54,6 +60,14 @@ export const telemetryQueries = {
|
||||
queryKey: telemetryKeys.alerts(page),
|
||||
queryFn: () => listTelemetryAlerts({ data: { page } }),
|
||||
}),
|
||||
sessions: (params: { days?: number; page?: number } = {}) => ({
|
||||
queryKey: telemetryKeys.sessions(params),
|
||||
queryFn: () => listSessions({ data: params }),
|
||||
}),
|
||||
sessionTimeline: (sessionId: string) => ({
|
||||
queryKey: telemetryKeys.sessionTimeline(sessionId),
|
||||
queryFn: () => getSessionTimeline({ data: { sessionId } }),
|
||||
}),
|
||||
runtimeStatus: () => ({
|
||||
queryKey: telemetryKeys.runtimeStatus,
|
||||
queryFn: () => getTelemetryRuntimeStatus(),
|
||||
@@ -72,5 +86,11 @@ export const useClientErrorGroups = (params: ErrorGroupParams) =>
|
||||
export const useRollupRange = (params: RollupRangeParams) =>
|
||||
useServerSuspenseQuery(telemetryQueries.rollups(params));
|
||||
|
||||
export const useSessions = (params: { days?: number; page?: number } = {}) =>
|
||||
useServerSuspenseQuery(telemetryQueries.sessions(params));
|
||||
|
||||
export const useSessionTimeline = (sessionId: string) =>
|
||||
useServerSuspenseQuery(telemetryQueries.sessionTimeline(sessionId));
|
||||
|
||||
export const useTelemetryRuntimeStatus = () =>
|
||||
useServerSuspenseQuery(telemetryQueries.runtimeStatus());
|
||||
|
||||
Reference in New Issue
Block a user