Skip to content

[UI Triage] 2026-07-10 · RPC 调用详情 · 线程名列始终为空 #8

Description

@databufflabs

页面

/appMonitor/serviceCallDetail(接口调用出入口详情 · RPC)

截图

RPC 调用详情 · 线程名列始终为空

复现步骤

  1. 进入 应用性能 → 服务 → 接口调用分析 → 接口调用出入口详情
  2. 选择 RPC 类型调用(示例:org.example.dubbo.DemoServiceC.sayHelloC2(String),skyWalking-service-a → skyWalking-service-c)
  3. 点击趋势图中任意时间点,加载下方 span 列表
  4. 观察「发出端」「接收端」分组下的「线程名」列

异常描述

「线程名」列始终显示 -(空值),占用表格宽度但无有效信息。

根因分析

  • 前端 serviceCallDetail/table-list.vuecomponentType=service.rpc 固定渲染 client.threadName / server.threadName
  • 后端 TracePortalService.toCallSide() / applyComponentMeta() 仅在 span meta 含 thread.name 时才填充 threadName
  • SkyWalking 接入的 Dubbo RPC span 通常不含 thread.name OTel 属性 → 列永远为空

建议修复

按数据可用性二选一:

  1. 若 trace 数据有 thread.name:修复后端映射或前端取值,确保线程名正确展示
  2. 若数据无 thread.name:删除 RPC 调用详情表的「线程名」列;或改为动态列(仅当当前列表存在非空 threadName 时才显示)

相关代码

  • ai-apm-frontend/src/views/appMonitor/serviceCallDetail/table-list.vue(L161、L166)
  • ai-apm-web/src/main/java/com/databuff/apm/web/portal/TracePortalService.javatoCallSide / applyComponentMeta service.rpc 分支)

来源

  • UI 分诊试点(kr-daily-ui-triage)
  • 发现时间:2026-07-10

检查清单

  • 确认 SkyWalking Dubbo span meta 是否含 thread.name
  • 若有数据:修复映射链路
  • 若无数据:移除或动态隐藏「线程名」列
  • 回归 HTTP / DB / MQ 类型调用详情,确认不受影响

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1UI triage priority P1bugSomething isn't workingui-triageCreated by UI triage system

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions