feat(gateway): 增强候选路由策略与可观测信息

This commit is contained in:
fawney19
2026-04-14 11:50:52 +08:00
parent 62e0a0338d
commit 593640ac19
44 changed files with 1828 additions and 302 deletions

View File

@@ -651,7 +651,7 @@
<TabsContent value="metadata">
<JsonContent
:data="detail.metadata"
:data="metadataPanelData"
:view-mode="viewMode"
:expand-depth="currentExpandDepth"
:is-dark="isDark"
@@ -855,6 +855,29 @@ const traceRequestMetadata = computed<Record<string, unknown> | null>(() => {
return meta as Record<string, unknown>
})
const metadataPanelData = computed<Record<string, unknown> | null>(() => {
if (!detail.value) return null
const merged: Record<string, unknown> = {}
if (hasContent(detail.value.metadata)) {
Object.assign(merged, detail.value.metadata || {})
}
if (hasContent(detail.value.routing)) {
merged.routing = detail.value.routing
}
if (hasContent(detail.value.body_capture)) {
merged.body_capture = detail.value.body_capture
}
if (hasContent(detail.value.trace)) {
merged.trace = detail.value.trace
}
if (hasContent(detail.value.settlement)) {
merged.settlement = detail.value.settlement
}
return Object.keys(merged).length > 0 ? merged : null
})
const settlementInfo = computed<JsonRecord | null>(() =>
asRecord(detail.value?.settlement ?? null),
)
@@ -1566,7 +1589,7 @@ const visibleTabs = computed(() => {
case 'response-body':
return hasResponseBodyAvailable.value
case 'metadata':
return hasContent(detail.value?.metadata)
return hasContent(metadataPanelData.value)
default:
return false
}
@@ -1970,7 +1993,7 @@ function copyContent(tabName: string) {
data = currentResponseBody.value
break
case 'metadata':
data = detail.value.metadata
data = metadataPanelData.value
break
}
if (data) {