diff --git a/.changeset/tiny-timers-care.md b/.changeset/tiny-timers-care.md new file mode 100644 index 00000000..9660c172 --- /dev/null +++ b/.changeset/tiny-timers-care.md @@ -0,0 +1,5 @@ +--- +"@hyperdx/app": patch +--- + +feat: show error details in search event patterns diff --git a/packages/app/src/components/PatternTable.tsx b/packages/app/src/components/PatternTable.tsx index 63ff893e..e147243d 100644 --- a/packages/app/src/components/PatternTable.tsx +++ b/packages/app/src/components/PatternTable.tsx @@ -1,10 +1,13 @@ import { useMemo, useState } from 'react'; +import { ClickHouseQueryError } from '@hyperdx/common-utils/dist/clickhouse'; import { BuilderChartConfigWithDateRange, SourceKind, TSource, } from '@hyperdx/common-utils/dist/types'; +import { Box, Code, Container, Text } from '@mantine/core'; +import { SQLPreview } from '@/components/ChartSQLPreview'; import { RawLogTable } from '@/components/DBRowTable'; import { useSearchTotalCount } from '@/components/SearchTotalCountChart'; import { Pattern, useGroupedPatterns } from '@/hooks/usePatterns'; @@ -31,14 +34,16 @@ export default function PatternTable({ const [selectedPattern, setSelectedPattern] = useState(null); const { - totalCount, + error: totalCountError, isLoading: isTotalCountLoading, isTotalCountComplete, + totalCount, } = useSearchTotalCount(totalCountConfig, totalCountQueryKeyPrefix); const { data: groupedResults, isLoading: isGroupedPatternsLoading, + error: groupedPatternsError, patternQueryConfig, } = useGroupedPatterns({ config, @@ -54,13 +59,46 @@ export default function PatternTable({ const isLoading = isTotalCountLoading || !isTotalCountComplete || isGroupedPatternsLoading; + const error = totalCountError || groupedPatternsError; + const sortedGroupedResults = useMemo(() => { return Object.values(groupedResults).sort( (a, b) => b.count - a.count, ) as Pattern[]; }, [groupedResults]); - return ( + return error ? ( + + + + Error Message: + + + {error.message} + + + {error instanceof ClickHouseQueryError && ( + + + Original Query: + + + + + + )} + + ) : ( <>