Home / Function/ useServiceHealthQuery() — supabase Function Reference

useServiceHealthQuery() — supabase Function Reference

Architecture documentation for the useServiceHealthQuery() function in useServiceHealthMetrics.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  b8c0b026_622b_c2e0_9ae2_367bde44bbd7["useServiceHealthQuery()"]
  c356cf22_da3f_13fc_2350_53a3eed15996["useServiceHealthMetrics()"]
  c356cf22_da3f_13fc_2350_53a3eed15996 -->|calls| b8c0b026_622b_c2e0_9ae2_367bde44bbd7
  8e6f0ccf_1893_3653_5e36_aa2ae11a25a1["fetchServiceHealthMetrics()"]
  b8c0b026_622b_c2e0_9ae2_367bde44bbd7 -->|calls| 8e6f0ccf_1893_3653_5e36_aa2ae11a25a1
  d4a13260_2b2f_797d_e8dc_dc7ec541302a["transformToBarChartData()"]
  b8c0b026_622b_c2e0_9ae2_367bde44bbd7 -->|calls| d4a13260_2b2f_797d_e8dc_dc7ec541302a
  9bd1dfda_3d2b_1d26_70db_711bd8a752ed["calculateHealthMetrics()"]
  b8c0b026_622b_c2e0_9ae2_367bde44bbd7 -->|calls| 9bd1dfda_3d2b_1d26_70db_711bd8a752ed
  style b8c0b026_622b_c2e0_9ae2_367bde44bbd7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/Observability/useServiceHealthMetrics.ts lines 95–148

const useServiceHealthQuery = ({
  projectRef,
  serviceKey,
  startDate,
  endDate,
  enabled,
}: {
  projectRef: string
  serviceKey: ServiceKey
  startDate: string
  endDate: string
  enabled: boolean
}) => {
  const config = SERVICE_CONFIG[serviceKey]
  const table = config.table

  const queryResult = useQuery({
    queryKey: ['service-health-metrics', projectRef, serviceKey, startDate, endDate, table],
    queryFn: ({ signal }) =>
      fetchServiceHealthMetrics(projectRef, table, startDate, endDate, signal),
    enabled: enabled && config.enabled && Boolean(projectRef),
    staleTime: 1000 * 60, // 1 minute
  })

  // Convert unix microseconds to ISO timestamps
  const normalizedData = useTimeseriesUnixToIso(queryResult.data ?? [], 'timestamp')

  // Fill gaps in timeseries
  const { data: filledData } = useFillTimeseriesSorted({
    data: normalizedData,
    timestampKey: 'timestamp',
    valueKey: 'ok_count',
    defaultValue: 0,
    startDate,
    endDate,
  })

  // Transform to LogsBarChartDatum format
  const eventChartData: LogsBarChartDatum[] = useMemo(
    () => transformToBarChartData(filledData as RawChartData[]),
    [filledData]
  )

  // Calculate metrics
  const metrics = useMemo(() => calculateHealthMetrics(eventChartData), [eventChartData])

  return {
    ...metrics,
    eventChartData,
    isLoading: queryResult.isLoading,
    error: queryResult.error,
    refresh: queryResult.refetch,
  }
}

Subdomains

Frequently Asked Questions

What does useServiceHealthQuery() do?
useServiceHealthQuery() is a function in the supabase codebase.
What does useServiceHealthQuery() call?
useServiceHealthQuery() calls 3 function(s): calculateHealthMetrics, fetchServiceHealthMetrics, transformToBarChartData.
What calls useServiceHealthQuery()?
useServiceHealthQuery() is called by 1 function(s): useServiceHealthMetrics.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free