in ui/src/APIUtil.js [18:136]
export function APIUtil(tenantID: string): ApiUtil {
return {
useAlarmsApi: useApi,
// Alertmanager Requests
viewFiringAlerts: async function(_req) {
const resp = await makeRequest({
url: `${AM_BASE_URL}/alerts`,
});
return resp.filter(alert => alert.labels.tenant === tenantID);
},
viewMatchingAlerts: ({expression}) =>
makeRequest({url: `${AM_BASE_URL}/matching_alerts/${expression}`}),
// suppressions
getSuppressions: _req =>
makeRequest({
url: `${AM_BASE_URL}/silences`,
method: 'GET',
}),
// global config
getGlobalConfig: _req =>
makeRequest({url: `${AM_BASE_URL}/globalconfig`, method: 'GET'}),
// Prometheus Configmanager Requests
createAlertRule: ({rule}) =>
makeRequest({
url: `${PROM_CONFIG_URL}/${tenantID}/alert`,
method: 'POST',
data: rule,
}),
editAlertRule: ({rule}) =>
makeRequest({
url: `${PROM_CONFIG_URL}/${tenantID}/alert/${rule.alert}`,
data: rule,
method: 'PUT',
}),
getAlertRules: _req =>
makeRequest({
url: `${PROM_CONFIG_URL}/${tenantID}/alert`,
method: 'GET',
}),
deleteAlertRule: ({ruleName}) =>
makeRequest({
url: `${PROM_CONFIG_URL}/${tenantID}/alert/${ruleName}`,
method: 'DELETE',
}),
// Alertmanager Configurer Requests
// receivers
createReceiver: ({receiver}) =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/receiver`,
method: 'POST',
data: receiver,
}),
editReceiver: ({receiver}) =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/receiver/${receiver.name}`,
method: 'PUT',
data: receiver,
}),
getReceivers: _req =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/receiver`,
method: 'GET',
}),
deleteReceiver: ({receiverName}) =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/receiver/${receiverName}`,
method: 'DELETE',
}),
// routes
getRouteTree: _req =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/route`,
method: 'GET',
}),
editRouteTree: req =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/route`,
method: 'POST',
data: req.route,
}),
// metric series
getMetricSeries: async function (_req) {
const resp = await makeRequest({
url: `${PROM_BASE_URL}/series?match[]={__name__=~".*"}`,
method: 'GET',
})
return resp.data;
},
editGlobalConfig: ({config}) =>
makeRequest({
url: `${AM_CONFIG_URL}/${tenantID}/globalconfig`,
method: 'POST',
data: config,
}),
getTenants: _req =>
makeRequest({
url: `${AM_CONFIG_URL}/tenants`,
method: 'GET',
}),
getAlertmanagerTenancy: _req =>
makeRequest({
url: `${AM_CONFIG_URL}/tenancy`,
method: 'GET',
}),
getPrometheusTenancy: _req =>
makeRequest({
url: `${PROM_CONFIG_URL}/tenancy`,
method: 'GET',
})
}
};