diff --git a/src/components/PrometheusChart/BaseCard.jsx b/src/components/PrometheusChart/BaseCard.jsx
index 33cc2cb9..39eb7d56 100644
--- a/src/components/PrometheusChart/BaseCard.jsx
+++ b/src/components/PrometheusChart/BaseCard.jsx
@@ -19,6 +19,7 @@ function getChartData(data, device, devices) {
const BaseCard = (props) => {
const {
+ fetchPrometheusFunc,
createFetchParams,
handleDataParams,
fetchDataParams,
@@ -38,7 +39,10 @@ const BaseCard = (props) => {
const [isLoading, setIsLoading] = useState(true);
- const fetchData = createFetchPrometheusClient(createFetchParams);
+ const fetchData = createFetchPrometheusClient(
+ createFetchParams,
+ fetchPrometheusFunc
+ );
const dataHandler = createDataHandler(handleDataParams);
diff --git a/src/components/PrometheusChart/component/Charts.jsx b/src/components/PrometheusChart/component/Charts.jsx
index 024f2565..c60de412 100644
--- a/src/components/PrometheusChart/component/Charts.jsx
+++ b/src/components/PrometheusChart/component/Charts.jsx
@@ -23,8 +23,13 @@ import ChartCard from '../ChartCard';
import BaseContentContext from './context';
const Charts = (props) => {
- const { baseTopCardProps, baseChartProps, topCardList, chartCardList } =
- props;
+ const {
+ baseTopCardProps,
+ baseChartProps,
+ topCardList,
+ chartCardList,
+ fetchPrometheusFunc,
+ } = props;
const ctx = useContext(BaseContentContext);
@@ -60,7 +65,11 @@ const Charts = (props) => {
}
return (
-
+
);
})}
@@ -97,7 +106,11 @@ const Charts = (props) => {
}
return (
-
+
);
})}
diff --git a/src/components/PrometheusChart/utils/index.js b/src/components/PrometheusChart/utils/index.js
index 9a6fcb01..ce2b7400 100644
--- a/src/components/PrometheusChart/utils/index.js
+++ b/src/components/PrometheusChart/utils/index.js
@@ -2,8 +2,8 @@ import { get, clone, isArray } from 'lodash';
import DataSet from '@antv/data-set';
import { baseReturnFunc, fetchPrometheus, getRequestUrl } from './utils';
-export function createFetchPrometheusClient(createParams) {
- const { requestType, metricKey } = createParams;
+export function createFetchPrometheusClient(createParams, fetchPrometheusFunc) {
+ const { requestType, metricKey, convertUrl } = createParams;
const queryParams = get(METRICDICT, metricKey);
@@ -14,8 +14,16 @@ export function createFetchPrometheusClient(createParams) {
(queryParams.finalFormatFunc || [])[idx] || baseReturnFunc;
// get base params in order
const baseParams = (queryParams.baseParams || [])[idx] || {};
- const finalUrl = getRequestUrl(u, params, finalFormatFunc, baseParams);
- return fetchPrometheus(finalUrl, requestType, currentRange, interval);
+ const formattedUrl = getRequestUrl(
+ u,
+ params,
+ finalFormatFunc,
+ baseParams
+ );
+ const finalUrl = convertUrl ? convertUrl(formattedUrl) : formattedUrl;
+ return fetchPrometheusFunc
+ ? fetchPrometheusFunc(finalUrl, requestType, currentRange, interval)
+ : fetchPrometheus(finalUrl, requestType, currentRange, interval);
});
return Promise.all(promises);
};