From bb888475708ebc1dcf482ae5e676606192c9fabc Mon Sep 17 00:00:00 2001 From: Rotimi Best Date: Tue, 9 Jun 2026 22:43:07 +0100 Subject: [PATCH] chore: performance tracking on root routes --- .../src/routes/(app)/org/[slug]/+layout.server.ts | 12 ++++++++---- .../routes/(app)/org/[slug]/setup/+page.server.ts | 14 +++++++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/apps/dashboard/src/routes/(app)/org/[slug]/+layout.server.ts b/apps/dashboard/src/routes/(app)/org/[slug]/+layout.server.ts index 377a4463..f7c8094f 100644 --- a/apps/dashboard/src/routes/(app)/org/[slug]/+layout.server.ts +++ b/apps/dashboard/src/routes/(app)/org/[slug]/+layout.server.ts @@ -9,6 +9,7 @@ const APP_SUBDOMAINS = env.PRIVATE_APP_SUBDOMAINS?.split(',') || ['app']; const ORG_ID_COOKIE_PREFIX = 'cio_org_id_'; export const load = async ({ params, url, cookies }) => { + const loadStart = performance.now(); const subdomain = getSubdomain(url); const isOrgSite = subdomain && !APP_SUBDOMAINS.includes(subdomain); @@ -22,14 +23,14 @@ export const load = async ({ params, url, cookies }) => { const cookieKey = `${ORG_ID_COOKIE_PREFIX}${siteName}`; const cachedOrgId = cookies.get(cookieKey); - console.log('cachedOrgId', cachedOrgId); - console.log('cookieKey', cookieKey); - let orgId: string | undefined = cachedOrgId; + let orgLookupMs = 0; if (!orgId) { + const orgLookupStart = performance.now(); const apiKeyHeaders = getApiKeyHeaders(); const org = await getOrgBySiteName(siteName, apiKeyHeaders); + orgLookupMs = Math.round((performance.now() - orgLookupStart) * 100) / 100; if (org?.id) { orgId = org.id; @@ -43,7 +44,10 @@ export const load = async ({ params, url, cookies }) => { } } - console.log('returning orgId', orgId); + const loadMs = Math.round((performance.now() - loadStart) * 100) / 100; + console.log( + `[org/+layout.server] load: ${loadMs}ms | siteName=${siteName} orgIdCache=${cachedOrgId ? 'hit' : 'miss'} getOrgBySiteName: ${orgLookupMs}ms` + ); return { orgName: siteName, diff --git a/apps/dashboard/src/routes/(app)/org/[slug]/setup/+page.server.ts b/apps/dashboard/src/routes/(app)/org/[slug]/setup/+page.server.ts index 78004efe..cdbc115b 100644 --- a/apps/dashboard/src/routes/(app)/org/[slug]/setup/+page.server.ts +++ b/apps/dashboard/src/routes/(app)/org/[slug]/setup/+page.server.ts @@ -5,13 +5,25 @@ type GetOrganizationSetupRequest = typeof classroomio.organization.setup.$get; type GetOrganizationSetupSuccess = Extract, { success: true }>; export const load = async ({ params, parent, cookies }) => { - const { orgId } = await parent(); + const loadStart = performance.now(); const siteName = params.slug || ''; + const parentStart = performance.now(); + const { orgId } = await parent(); + const parentMs = Math.round((performance.now() - parentStart) * 100) / 100; + + const setupApiStart = performance.now(); const result = await safeServerApi(() => classroomio.organization.setup.$get({ query: { siteName } }, getApiHeaders(cookies, orgId)) ); + const setupApiMs = Math.round((performance.now() - setupApiStart) * 100) / 100; + const setupProgress = result.ok ? result.body.data : null; + const loadMs = Math.round((performance.now() - loadStart) * 100) / 100; + + console.log( + `[org/setup/+page.server] load: ${loadMs}ms | siteName=${siteName} parent: ${parentMs}ms organization.setup: ${setupApiMs}ms ok=${result.ok}` + ); return { orgSiteName: siteName,