This commit is contained in:
Fine 2022-10-26 20:35:17 +08:00
parent 3f20f6165e
commit 8b828c523c
2 changed files with 41 additions and 9 deletions

View File

@ -154,7 +154,7 @@ export function useQueryProcessor(config: any) {
}
});
const queryStr = `query queryData(${variables}) {${fragment}}`;
console.log(queryStr);
return {
queryStr,
conditions,
@ -255,7 +255,11 @@ export function useSourceProcessor(
export function useQueryPodsMetrics(
pods: Array<Instance | Endpoint | Service | any>,
config: { metrics: string[]; metricTypes: string[] },
config: {
metrics: string[];
metricTypes: string[];
metricConfig: MetricConfigOpt[];
},
scope: string
) {
const metricTypes = (config.metricTypes || []).filter((m: string) => m);
@ -287,12 +291,20 @@ export function useQueryPodsMetrics(
};
const f = metrics.map((name: string, idx: number) => {
const metricType = metricTypes[idx] || "";
variables.push(`$condition${index}${idx}: MetricsCondition!`);
conditions[`condition${index}${idx}`] = {
name,
entity: param,
};
variables.push(`$condition${index}${idx}: MetricsCondition!`);
return `${name}${index}${idx}: ${metricType}(condition: $condition${index}${idx}, duration: $duration)${RespFields[metricType]}`;
let labelStr = "";
if (metricType === MetricQueryTypes.ReadLabeledMetricsValues) {
variables.push(`$labels${index}${idx}: [String!]!`);
labelStr = `labels: $labels${index}${idx}, `;
conditions[`labels${index}${idx}`] = (
config.metricConfig[idx].label || ""
).split(",");
}
return `${name}${index}${idx}: ${metricType}(condition: $condition${index}${idx}, ${labelStr}duration: $duration)${RespFields[metricType]}`;
});
return f;
}
@ -315,6 +327,7 @@ export function usePodsSource(
ElMessage.error(resp.errors);
return {};
}
console.log(config);
const data = pods.map((d: Instance | any, idx: number) => {
config.metrics.map((name: string, index: number) => {
const c: any = (config.metricConfig && config.metricConfig[index]) || {};
@ -331,12 +344,31 @@ export function usePodsSource(
Calculations.PercentageAvg,
].includes(c.calculation)
) {
if (Array.isArray(d[resp.data[key]])) {
for (const item of d[resp.data[key]]) {
d[item.label]["avg"] = calculateExp(
resp.data[key][item.label].values.values,
c
);
}
} else {
d[name]["avg"] = calculateExp(resp.data[key].values.values, c);
}
}
if (Array.isArray(d[resp.data[key]])) {
for (const item of d[resp.data[key]]) {
d[item.label]["values"] = resp.data[key][
item.label
].values.values.map((val: { value: number }) =>
aggregation(val.value, c)
);
}
} else {
d[name]["values"] = resp.data[key].values.values.map(
(val: { value: number }) => aggregation(val.value, c)
);
}
}
});
return d;

View File

@ -216,7 +216,7 @@ async function queryServiceMetrics(currentServices: Service[]) {
const metricConfig = props.config.metricConfig || [];
services.value = usePodsSource(currentServices, json, {
...props.config,
metricConfig: metricConfig || [],
metricConfig,
});
return;
}