1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-19 01:17:18 +02:00
unleash.unleash/frontend/src/hooks/api/getters/useInstanceMetrics/useInstanceMetrics.ts
Nuno Góis 4167a60588
feat: biome lint frontend (#4903)
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome
to the frontend as well.


![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65)

Added a few `biome-ignore` to speed up the process but we may want to
check and fix them in the future.
2023-10-02 13:25:46 +01:00

42 lines
1006 B
TypeScript

import useSWR, { SWRConfiguration } from 'swr';
import { useMemo } from 'react';
import { formatApiPath } from 'utils/formatPath';
import handleErrorResponses from '../httpErrorResponseHandler';
import { RequestsPerSecondSchema } from 'openapi';
export interface IInstanceMetricsResponse {
metrics: RequestsPerSecondSchema;
refetch: () => void;
loading: boolean;
error?: Error;
}
export const useInstanceMetrics = (
options: SWRConfiguration = {},
): IInstanceMetricsResponse => {
const { data, error, mutate } = useSWR(
formatApiPath(`api/admin/metrics/rps`),
fetcher,
options,
);
return useMemo(
() => ({
metrics: data,
loading: !error && !data,
refetch: () => mutate(),
error,
}),
[data, error, mutate],
);
};
const fetcher = (path: string) => {
return fetch(path)
.then(handleErrorResponses('Instance Metrics'))
.then((res) => res.json());
};