grafana/public/app/features/alerting/unified/api/alertingApi.ts

33 lines
989 B
TypeScript
Raw Normal View History

import { BaseQueryFn, createApi } from '@reduxjs/toolkit/query/react';
import { lastValueFrom } from 'rxjs';
import { BackendSrvRequest, getBackendSrv } from '@grafana/runtime';
2022-10-31 09:55:47 -05:00
import { logInfo } from '../Analytics';
export const backendSrvBaseQuery = (): BaseQueryFn<BackendSrvRequest> => async (requestOptions) => {
try {
2022-10-31 09:55:47 -05:00
const requestStartTs = performance.now();
const { data, ...meta } = await lastValueFrom(getBackendSrv().fetch(requestOptions));
2022-10-31 09:55:47 -05:00
logInfo('Request finished', {
loadTimeMs: (performance.now() - requestStartTs).toFixed(0),
url: requestOptions.url,
method: requestOptions.method ?? '',
responseStatus: meta.statusText,
});
return { data, meta };
} catch (error) {
return { error };
}
};
export const alertingApi = createApi({
reducerPath: 'alertingApi',
baseQuery: backendSrvBaseQuery(),
tagTypes: ['AlertmanagerChoice', 'AlertmanagerConfiguration', 'OnCallIntegrations'],
endpoints: () => ({}),
});