add owner

This commit is contained in:
Fine 2024-11-07 09:59:51 +08:00
parent 14fa5d65b6
commit 8fdf3c46a0
3 changed files with 18 additions and 15 deletions

View File

@ -266,8 +266,9 @@ export const TextColors: { [key: string]: string } = {
}; };
export const RefIdTypes = [ export const RefIdTypes = [
{ label: "Trace ID", value: "traceId" },
{ label: "None", value: "none" }, { label: "None", value: "none" },
{ label: "Trace ID", value: "traceId" },
{ label: "Owner", value: "owner" },
]; ];
export const RefreshOptions = [ export const RefreshOptions = [
{ label: "Last 30 minutes", value: "30", step: "MINUTE" }, { label: "Last 30 minutes", value: "30", step: "MINUTE" },

View File

@ -32,7 +32,7 @@ limitations under the License. -->
<div class="operation" @click="handleClick(i.name)"> <div class="operation" @click="handleClick(i.name)">
<span>{{ t("copy") }}</span> <span>{{ t("copy") }}</span>
</div> </div>
<div class="operation" @click="viewTrace(i)" v-show="refIdType === RefIdTypes[0].value"> <div class="operation" @click="viewTrace(i)" v-show="![RefIdTypes[0].value].includes(refIdType)">
<span>{{ t("viewTrace") }}</span> <span>{{ t("viewTrace") }}</span>
</div> </div>
<div class="operation" @click="viewDashboard(i)"> <div class="operation" @click="viewDashboard(i)">
@ -75,7 +75,7 @@ limitations under the License. -->
const props = defineProps({ const props = defineProps({
data: { data: {
type: Object as PropType<{ type: Object as PropType<{
[key: string]: { name: string; value: number; refId: string }[]; [key: string]: { name: string; value: number; refId: string; owner: object }[];
}>, }>,
default: () => ({}), default: () => ({}),
}, },
@ -97,9 +97,7 @@ limitations under the License. -->
const traceOptions = ref<{ type: string; filters?: unknown }>({ const traceOptions = ref<{ type: string; filters?: unknown }>({
type: WidgetType.Trace, type: WidgetType.Trace,
}); });
const refIdType = computed( const refIdType = computed(() => props.config.relatedTrace && props.config.relatedTrace.refIdType);
() => (props.config.relatedTrace && props.config.relatedTrace.refIdType) || RefIdTypes[0].value,
);
const key = computed(() => Object.keys(props.data)[0] || ""); const key = computed(() => Object.keys(props.data)[0] || "");
const available = computed( const available = computed(
() => Array.isArray(props.data[key.value]) && props.data[key.value][0] && props.data[key.value][0].value, () => Array.isArray(props.data[key.value]) && props.data[key.value][0] && props.data[key.value][0].value,
@ -114,14 +112,15 @@ limitations under the License. -->
function handleClick(i: string) { function handleClick(i: string) {
copy(i); copy(i);
} }
function viewTrace(item: { name: string; refId: string; value: unknown }) { function viewTrace(item: { name: string; refId: string; value: unknown; owner: object }) {
const filters = { const filters = {
...item, ...item,
queryOrder: QueryOrders[1].value, queryOrder: QueryOrders[1].value,
status: Status[2].value, status: Status[2].value,
id: item.refId, id: refIdType.value === RefIdTypes[1].value ? item.refId : undefined,
metricValue: [{ label: props.config.expressions[0], data: item.value, value: item.name }], metricValue: [{ label: props.config.expressions[0], data: item.value, value: item.name }],
isReadRecords: props.config.typesOfMQE.includes(ExpressionResultType.RECORD_LIST) || undefined, isReadRecords: props.config.typesOfMQE.includes(ExpressionResultType.RECORD_LIST) || undefined,
owner: refIdType.value === RefIdTypes[2].value ? item.owner : null,
}; };
traceOptions.value = { traceOptions.value = {
...traceOptions.value, ...traceOptions.value,

View File

@ -103,6 +103,7 @@ limitations under the License. -->
}); });
const { t } = useI18n(); const { t } = useI18n();
const filters = reactive<Recordable>(props.data.filters || {}); const filters = reactive<Recordable>(props.data.filters || {});
const owner = reactive<Recordable>(props.data.owner || {});
const appStore = useAppStoreWithOut(); const appStore = useAppStoreWithOut();
const selectorStore = useSelectorStore(); const selectorStore = useSelectorStore();
const dashboardStore = useDashboardStore(); const dashboardStore = useDashboardStore();
@ -133,14 +134,16 @@ limitations under the License. -->
} }
conditions.value = (items.value[0] && items.value[0].label) || ""; conditions.value = (items.value[0] && items.value[0].label) || "";
if (!filters.id) { if (!filters.id) {
state.service = selectorStore.currentService.id; if (owner) {
if (dashboardStore.entity === EntityType[2].value) { state.service = owner.serviceID;
state.endpoint = selectorStore.currentPod.id; if (owner.scope === EntityType[2].value) {
state.endpoint = owner.endpointID;
}
if (owner.scope === EntityType[3].value) {
state.instance = owner.serviceInstanceID;
}
await queryTraces();
} }
if (dashboardStore.entity === EntityType[3].value) {
state.instance = selectorStore.currentPod.id;
}
await queryTraces();
return; return;
} }
if (filters.isReadRecords) { if (filters.isReadRecords) {