import { Card, CardContent, CardHeader, CardTitle, CardDescription, } from "@bullstudio/ui/components/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@bullstudio/ui/components/table"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@bullstudio/ui/components/tooltip"; import { Badge } from "@bullstudio/ui/components/badge"; import dayjs from "@bullstudio/dayjs"; import type { OverviewMetricsResponse } from "@/integrations/trpc/routers/overview"; type FailingJobType = OverviewMetricsResponse["failingJobTypes"][number]; type FailingJobTypesTableProps = { jobTypes: FailingJobType[]; }; export function FailingJobTypesTable({ jobTypes }: FailingJobTypesTableProps) { return ( Most Failing Job Types Jobs grouped by name with highest failure counts {jobTypes.length === 0 ? (
No failed jobs in this time range
) : ( Job Type Queue Failures Last Failed {jobTypes.map((jobType) => ( {jobType.name} {jobType.lastFailedReason && (

{jobType.lastFailedReason}

)}
{jobType.queueName} {jobType.failureCount} {dayjs(jobType.lastFailedAt).fromNow()}
))}
)}
); }