From 2da645d67e2328dbc3abce5fcfb5bf6a2a091dc2 Mon Sep 17 00:00:00 2001 From: Saxon Fletcher Date: Thu, 5 Jun 2025 13:25:07 +1000 Subject: [PATCH] add edge home chart --- .../interfaces/Home/ProjectUsage.tsx | 41 ++++++++++++++++--- .../data/analytics/project-log-stats-query.ts | 1 + 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/apps/studio/components/interfaces/Home/ProjectUsage.tsx b/apps/studio/components/interfaces/Home/ProjectUsage.tsx index c681a870c78..1157c195272 100644 --- a/apps/studio/components/interfaces/Home/ProjectUsage.tsx +++ b/apps/studio/components/interfaces/Home/ProjectUsage.tsx @@ -1,6 +1,6 @@ import dayjs from 'dayjs' import sumBy from 'lodash/sumBy' -import { Archive, ChevronDown, Database, Key, Zap } from 'lucide-react' +import { Archive, ChevronDown, Code, Database, Key, Zap } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/router' import { useState } from 'react' @@ -92,21 +92,25 @@ const ProjectUsage = () => { 'timestamp', [ 'total_auth_requests', - 'total_rest_requests', + 'total_func_invocations', 'total_storage_requests', 'total_realtime_requests', + 'total_requests', ], 0, startDateLocal.toISOString(), endDateLocal.toISOString(), 5 ) + + console.log('data:', data) + const datetimeFormat = selectedInterval.format || 'MMM D, ha' const handleBarClick = ( value: UsageApiCounts, // TODO (ziinc): link to edge logs with correct filter applied - _type: 'rest' | 'realtime' | 'storage' | 'auth' + _type: 'rest' | 'realtime' | 'storage' | 'auth' | 'edge-functions' ) => { const unit = selectedInterval.startUnit const selectedStart = dayjs(value?.timestamp) @@ -182,7 +186,7 @@ const ProjectUsage = () => { Statistics for {selectedInterval.label.toLowerCase()} -
+
{ title="REST Requests" data={charts} xAxisKey="timestamp" - yAxisKey="total_rest_requests" + yAxisKey="total_func_invocations" onBarClick={(v: unknown) => handleBarClick(v as UsageApiCounts, 'rest')} customDateFormat={datetimeFormat} - highlightedValue={sumBy(charts, 'total_rest_requests')} + highlightedValue={sumBy(charts, 'total_func_invocations')} /> @@ -285,6 +289,31 @@ const ProjectUsage = () => { + + + + +
+ } + title="Edge Functions" + href={`/project/${projectRef}/functions`} + /> + + + handleBarClick(v as UsageApiCounts, 'edge-functions')} + customDateFormat={datetimeFormat} + highlightedValue={sumBy(charts, 'total_requests')} + /> + + +
) diff --git a/apps/studio/data/analytics/project-log-stats-query.ts b/apps/studio/data/analytics/project-log-stats-query.ts index 76167f33d9e..8ee8d5ba8f0 100644 --- a/apps/studio/data/analytics/project-log-stats-query.ts +++ b/apps/studio/data/analytics/project-log-stats-query.ts @@ -18,6 +18,7 @@ export interface UsageApiCounts { total_storage_requests: number total_rest_requests: number total_realtime_requests: number + total_func_invocations: number timestamp: string }