Alerting: Skip fetching receivers status in the alert rule form (#82892)

This commit is contained in:
Sonia Aguilar 2024-02-16 15:15:02 +01:00 committed by GitHub
parent 7b4dd4fe47
commit 7b415cf79e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 6 deletions

View File

@ -29,11 +29,18 @@ const RECEIVER_STATUS_POLLING_INTERVAL = 10 * 1000; // 10 seconds
*/
interface UseContactPointsWithStatusOptions {
includePoliciesCount: boolean;
receiverStatusPollingInterval?: number;
}
export function useContactPointsWithStatus(
{ includePoliciesCount }: UseContactPointsWithStatusOptions = { includePoliciesCount: true }
) {
const defaultHookOptions = {
includePoliciesCount: true,
receiverStatusPollingInterval: RECEIVER_STATUS_POLLING_INTERVAL,
};
export function useContactPointsWithStatus({
includePoliciesCount,
receiverStatusPollingInterval,
}: UseContactPointsWithStatusOptions = defaultHookOptions) {
const { selectedAlertmanager, isGrafanaAlertmanager } = useAlertmanager();
const { installed: onCallPluginInstalled, loading: onCallPluginStatusLoading } = usePluginBridge(
SupportedPlugin.OnCall
@ -43,8 +50,8 @@ export function useContactPointsWithStatus(
const fetchContactPointsStatus = alertmanagerApi.endpoints.getContactPointsStatus.useQuery(undefined, {
refetchOnFocus: true,
refetchOnReconnect: true,
// re-fetch status every so often for up-to-date information
pollingInterval: RECEIVER_STATUS_POLLING_INTERVAL,
// re-fetch status every so often for up-to-date information, allow disabling by passing "receiverStatusPollingInterval: 0"
pollingInterval: receiverStatusPollingInterval,
// skip fetching receiver statuses if not Grafana AM
skip: !isGrafanaAlertmanager,
});

View File

@ -29,7 +29,7 @@ export function AlertManagerManualRouting({ alertManager }: AlertManagerManualRo
error: errorInContactPointStatus,
contactPoints,
refetchReceivers,
} = useContactPointsWithStatus({ includePoliciesCount: false });
} = useContactPointsWithStatus({ includePoliciesCount: false, receiverStatusPollingInterval: 0 });
const [selectedContactPointWithMetadata, setSelectedContactPointWithMetadata] = useState<
ContactPointWithMetadata | undefined
>();