Skip to content

Tracing MCP 新增服务列表工具

0x01 背景

Tracing MCP 需要服务列表查询能力,返回每个服务的 RPC 框架、SDK、指标时序类型、容器平台关联、日志关联等结构化信息。

现有 apm_web.metric.resources.ServiceListResource 面向前端表格渲染,字段与 MCP 不匹配,无法复用。

0x02 目标

  1. 新增 MCP 专用的服务列表接口。
  2. 数据统一走 EntitySet,按需扩展。
  3. 清理关联组件中的冗余设计。

0x03 接口契约

a. 请求

字段类型必选说明
bk_biz_idint业务 ID
app_namestring应用名称
service_nameslist[string]不传返回全部服务

b. 响应

列表,每个元素:

字段类型说明
service_namestring服务名
service_languagestring服务语言
systemobject系统信息;无则为 {}
system.namestring框架(trpc、tars、grpc ⋯⋯)
system.sdkstringSDK(galileo、opentelemetry ⋯⋯)
system.temporalitystring时序类型(delta、cumulative)
platformobject容器平台信息
platform.namestring平台名(k8s)
platform.relationslistWorkload 列表
log_relationslist日志关联
log_relations[].is_app_datasourcebool是否为应用数据源
log_relations[].bk_biz_idint关联业务 ID
log_relations[].index_set_idint索引集 ID

0x04 附带优化

  1. _service_log_indexes_map 补充 bk_biz_id
  2. get_first_log_index_set_id_or_none 优先匹配应用数据源和同业务。
  3. get_rpc_service_config_or_none 通用化为 get_system
  4. MetricTemporality.get_metric_config 拆解为类常量。
  5. 移除 apm_web.meta.resources.ServiceConfigResource

0x05 约束

  • apm_web.service.resources.ServiceConfigResource(服务配置 CRUD)保留。
  • get_system 改造需适配所有现有消费方。