diff --git a/src/hooks/useExpressionsProcessor.ts b/src/hooks/useExpressionsProcessor.ts index 408dd724..60c66abe 100644 --- a/src/hooks/useExpressionsProcessor.ts +++ b/src/hooks/useExpressionsProcessor.ts @@ -119,14 +119,26 @@ export async function useExpressionsQueryProcessor(config: Indexable) { } else { for (const item of results) { const values = item.values.map((d: { value: unknown }) => d.value) || []; - const label = item.metric.labels.map((d: any) => `${d.key}=${d.value}`).join(","); + const label = item.metric.labels + .map((d: { key: string; value: string }) => `${d.key}=${d.value}`) + .join(","); source[label] = values; } } } if (type === ExpressionResultType.SINGLE_VALUE) { - source[c.label || name] = (results[0].values[0] || {}).value; + for (const item of results) { + const label = item.metric.labels + .map((d: { key: string; value: string }) => `${d.key}=${d.value}`) + .join(","); + const values = item.values.map((d: { value: unknown }) => d.value) || []; + if (results.length === 1) { + source[label || c.label || name] = values; + } else { + source[label] = values; + } + } } if (([ExpressionResultType.RECORD_LIST, ExpressionResultType.SORTED_LIST] as string[]).includes(type)) { source[name] = results[0].values; diff --git a/src/views/dashboard/graphs/Table.vue b/src/views/dashboard/graphs/Table.vue index 5813c075..2ab46c05 100644 --- a/src/views/dashboard/graphs/Table.vue +++ b/src/views/dashboard/graphs/Table.vue @@ -37,12 +37,7 @@ limitations under the License. --> >{{ k.split("=")[1] }}
- {{ - (config.metricTypes && config.metricTypes[0] === "readMetricsValue") || - (props.config.typesOfMQE && props.config.typesOfMQE[0] === ExpressionResultType.SINGLE_VALUE) - ? data[keys[0]] - : data[(keys as string[]).join(",")][data[(keys as string[]).join(",")].length - 1 || 0] - }} + {{ data[(keys as string[]).join(",")][data[(keys as string[]).join(",")].length - 1 || 0] }}
@@ -51,7 +46,6 @@ limitations under the License. --> import { computed } from "vue"; import type { PropType } from "vue"; import { useI18n } from "vue-i18n"; - import { ExpressionResultType } from "@/views/dashboard/data"; /*global defineProps */ const props = defineProps({ data: { @@ -76,10 +70,6 @@ limitations under the License. --> const keys = Object.keys(props.data || {}); return keys; } - if (props.config.typesOfMQE && props.config.typesOfMQE[0] === ExpressionResultType.SINGLE_VALUE) { - const keys = Object.keys(props.data || {}); - return keys; - } const keys = Object.keys(props.data || {}).filter( (i: string) => Array.isArray(props.data[i]) && props.data[i].length, );