Alerting: Apply rule_uid filter when fetching state of a single rule
This commit is contained in:
@@ -69,5 +69,19 @@ describe('alertRuleApi', () => {
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(request.params?.[PrometheusAPIFilters.LimitAlerts]).toBe('25');
|
||||
});
|
||||
|
||||
it('includes rule_uid when provided', async () => {
|
||||
const request = await executePrometheusRuleNamespacesQuery({ ruleUid: 'test-rule-uid-123' });
|
||||
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(request.params?.[PrometheusAPIFilters.RuleUID]).toBe('test-rule-uid-123');
|
||||
});
|
||||
|
||||
it('omits rule_uid when not provided', async () => {
|
||||
const request = await executePrometheusRuleNamespacesQuery();
|
||||
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(request.params?.[PrometheusAPIFilters.RuleUID]).toBeUndefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -54,6 +54,7 @@ export enum PrometheusAPIFilters {
|
||||
Namespace = 'file',
|
||||
NamespaceVanilla = 'file[]',
|
||||
FolderUID = 'folder_uid',
|
||||
RuleUID = 'rule_uid',
|
||||
LimitAlerts = 'limit_alerts',
|
||||
MaxGroups = 'max_groups',
|
||||
ExcludeAlerts = 'exclude_alerts',
|
||||
@@ -169,6 +170,7 @@ export const alertRuleApi = alertingApi.injectEndpoints({
|
||||
namespace?: string;
|
||||
groupName?: string;
|
||||
ruleName?: string;
|
||||
ruleUid?: string;
|
||||
dashboardUid?: string;
|
||||
panelId?: number;
|
||||
limitAlerts?: number;
|
||||
@@ -181,6 +183,7 @@ export const alertRuleApi = alertingApi.injectEndpoints({
|
||||
namespace,
|
||||
groupName,
|
||||
ruleName,
|
||||
ruleUid,
|
||||
dashboardUid,
|
||||
panelId,
|
||||
limitAlerts,
|
||||
@@ -202,6 +205,11 @@ export const alertRuleApi = alertingApi.injectEndpoints({
|
||||
queryParams[PrometheusAPIFilters.RuleNameVanilla] = ruleName;
|
||||
}
|
||||
|
||||
// Supported only by Grafana managed rules
|
||||
if (ruleUid) {
|
||||
queryParams[PrometheusAPIFilters.RuleUID] = ruleUid;
|
||||
}
|
||||
|
||||
if (namespace) {
|
||||
if (isGrafanaRulesSource(ruleSourceName)) {
|
||||
queryParams[PrometheusAPIFilters.FolderUID] = namespace;
|
||||
|
||||
@@ -122,6 +122,7 @@ export function useCombinedRule({ ruleIdentifier, limitAlerts }: Props): Request
|
||||
namespace: ruleLocation?.namespace,
|
||||
groupName: ruleLocation?.group,
|
||||
ruleName: ruleLocation?.ruleName,
|
||||
ruleUid: isGrafanaRuleIdentifier(ruleIdentifier) ? ruleIdentifier.uid : undefined,
|
||||
limitAlerts,
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user