mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-19 01:17:18 +02:00
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome to the frontend as well.  Added a few `biome-ignore` to speed up the process but we may want to check and fix them in the future.
42 lines
1006 B
TypeScript
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());
|
|
};
|