prometheus
1import React, { FC } from 'react';
2import { useFetch } from '../../hooks/useFetch';
3import { withStatusIndicator } from '../../components/withStatusIndicator';
4import AlertsContent, { RuleStatus, AlertsProps } from './AlertContents';
5import { usePathPrefix } from '../../contexts/PathPrefixContext';
6import { API_PATH } from '../../constants/constants';
7
8const AlertsWithStatusIndicator = withStatusIndicator(AlertsContent);
9
10const Alerts: FC = () => {
11const pathPrefix = usePathPrefix();
12const { response, error, isLoading } = useFetch<AlertsProps>(`${pathPrefix}/${API_PATH}/rules?type=alert`);
13
14const ruleStatsCount: RuleStatus<number> = {
15inactive: 0,
16pending: 0,
17firing: 0,
18};
19
20if (response.data && response.data.groups) {
21response.data.groups.forEach((el) => el.rules.forEach((r) => ruleStatsCount[r.state]++));
22}
23
24return <AlertsWithStatusIndicator {...response.data} statsCount={ruleStatsCount} error={error} isLoading={isLoading} />;
25};
26
27export default Alerts;
28