mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-05-02 15:04:38 +00:00
feat: implement owner option for TopList widgets in related trace options (#426)
This commit is contained in:
parent
14fa5d65b6
commit
aeddb39637
@ -81,7 +81,7 @@ limitations under the License. -->
|
|||||||
const latency = ref<boolean>(traceOpt.latency || false);
|
const latency = ref<boolean>(traceOpt.latency || false);
|
||||||
const enableRelate = ref<boolean>(traceOpt.enableRelate || false);
|
const enableRelate = ref<boolean>(traceOpt.enableRelate || false);
|
||||||
const type = ref<string>((graph && graph.type) || "");
|
const type = ref<string>((graph && graph.type) || "");
|
||||||
const refIdType = ref<string>(traceOpt.refIdType || "traceId");
|
const refIdType = ref<string>(traceOpt.refIdType || "");
|
||||||
|
|
||||||
function updateConfig(param: { [key: string]: unknown }) {
|
function updateConfig(param: { [key: string]: unknown }) {
|
||||||
const relatedTrace = {
|
const relatedTrace = {
|
||||||
|
@ -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" },
|
||||||
|
@ -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: () => ({}),
|
||||||
},
|
},
|
||||||
@ -114,14 +114,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,
|
||||||
|
@ -133,12 +133,15 @@ 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 (!filters.owner) {
|
||||||
if (dashboardStore.entity === EntityType[2].value) {
|
return;
|
||||||
state.endpoint = selectorStore.currentPod.id;
|
|
||||||
}
|
}
|
||||||
if (dashboardStore.entity === EntityType[3].value) {
|
state.service = filters.owner.serviceID;
|
||||||
state.instance = selectorStore.currentPod.id;
|
if (filters.owner.scope === EntityType[2].value) {
|
||||||
|
state.endpoint = filters.owner.endpointID;
|
||||||
|
}
|
||||||
|
if (filters.owner?.scope === EntityType[3].value) {
|
||||||
|
state.instance = filters.owner.serviceInstanceID;
|
||||||
}
|
}
|
||||||
await queryTraces();
|
await queryTraces();
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user