Skip to main content
MoleSignal APM 把后端 OpenTelemetry trace span 转换成有界 RED 聚合,无需另行维护指标埋点, 即可发现慢服务、失败入口、高开销依赖、重复出现的后端错误,以及部署版本之间的性能回退。
APM 不需要另一套 SDK,也不会新增遥测数据流。发送完整埋点的 trace 后,MoleSignal 会在链路 去重之后、尾采样之前派生 APM 数据。因此,最终被采样丢弃的 trace 仍可计入 APM 指标。

可用分析

接入前提

  • 把 OpenTelemetry trace 发送到 MoleSignal 的链路采集端点
  • 在组织工作区拥有 streams.query;或者
  • 在受保护的 _sys 遥测范围拥有 sys.telemetry.read

为服务接入 APM

1

设置稳定的服务资源属性

每个服务都要设置 service.name。如果需要筛选服务或比较部署,再添加命名空间、环境、 版本和实例属性。
具体配置方式取决于使用的 OpenTelemetry SDK 或 Collector。
2

使用正确的 span kind

为入站请求创建 SERVER span,为消费的消息创建 CONSUMER span。为下游调用创建 CLIENTPRODUCER span。MoleSignal 通过 span kind 区分事务与依赖。
3

记录状态与异常

设置 OpenTelemetry span 状态、HTTP 或 RPC 状态属性,并记录 exception event。 MoleSignal 用这些信息区分成功与失败,并建立后端错误组。
4

发送 trace 并打开 APM

发送 OTLP trace,然后打开 APM → 概览。把全局时间范围保持在最近流量,等待投影器 刷写首批数据桶。

推荐的资源属性

请使用低基数值。不要把请求 ID、原始 URL、用户 ID 或其他无界值放进服务、环境、版本、 路由、操作或依赖属性。

APM 数据如何派生

服务与事务

SERVERCONSUMER span 会计入服务与事务 RED 指标。没有 kind 且没有父 span 的数据可作为 服务总量的兼容回退,但显式 span kind 才能生成更完整的页面。 MoleSignal 会从语义属性构造有界事务名称:
  • HTTP 方法与 http.route,例如 POST /checkout
  • RPC 服务与方法;
  • 消息操作与目标端;
  • 没有更强语义标识时,使用安全、低基数的 span 名称。
请使用 /orders/{id} 这样的路由模板,不要使用 /orders/83921 这样的原始路径。

依赖

CLIENTPRODUCER span 会计入依赖 RED 指标。MoleSignal 会把目标分类为服务、数据库、缓存、 消息系统、外部 HTTP、外部 RPC 或其他依赖。标准的 peer.servicedb.*messaging.*rpc.*server.* 和 HTTP 语义属性可以提高依赖标识质量。

错误

span 包含异常、OpenTelemetry 状态为 ERROR、HTTP 状态码不低于 500,或 RPC 状态非零时, MoleSignal 会把该 span 判定为错误。错误组的稳定指纹由错误类型、第一个应用栈帧和事务名称组成; 经常变化的错误消息不参与指纹计算。

理解 RED 指标

Trace exemplar 会把聚合点关联到具体请求。如果 trace 没有通过尾采样,即使对应 span 已计入聚合, exemplar 仍可能显示 trace_available: false

调查性能问题

1

确认影响

打开概览,比较选定时间范围内的请求量、错误率、p95 时延和数据质量提示。
2

选择服务

打开服务,选择受影响的命名空间、服务、环境和版本。服务工作台会组合趋势、事务、 依赖、错误与版本。
3

缩小原因范围

事务查找慢入口,用依赖检查下游耗时,用错误分析重复失败。当时延与流量都很 重要时,按总耗时排序。
4

打开证据

打开可用的 trace exemplar,或跳转到已过滤的链路、日志、指标与 profile。受支持的跳转会 保留服务过滤条件与时间范围。
5

检查部署

打开部署,选择服务、基线版本和候选版本,再查看 RED 差异与回退事务。数据不足表示 结论尚不可靠,不能直接判定没有回退。

过滤、分辨率与保留

APM 页面共享全局时间范围,并支持命名空间、服务、环境和版本过滤。列表页还支持本地搜索、 排序和游标分页。过滤条件会编码进 URL,便于分享或重新打开。 使用默认部署设置时:
  • API 未指定范围时查询最近 24 小时;
  • auto 对不超过 24 小时的范围使用分钟桶,对更长范围使用小时桶;
  • 分钟聚合保留 24 小时;
  • 小时聚合和最大查询范围为 30 天。
管理员可以调整这些部署限制。只有对比双方都达到配置的请求量阈值时,版本对比才会标记为数据 充足;默认阈值是每个版本 1,000 个请求。

阅读数据质量提示

每个 APM 响应都带有数据质量元数据,界面也会展示相同状态。 请先缩短时间范围并收窄过滤条件。如果部分或延迟状态持续存在,再检查 APM 健康端点与平台遥测。

隐私与有界数据

APM 保存聚合以及少量脱敏后的证据。APM 聚合不会保留请求体、响应体、URL 查询参数值、Header、 SQL 语句或 SQL 参数。标识值、代表性消息和栈帧都有长度限制;疑似敏感或易变化的值会在持久化 之前删除或掩码。 这些保护不能替代良好的埋点习惯。不要把密钥或个人数据放入 span 名称、状态描述、异常消息或 资源属性。

故障排查

APM API

查询 APM 概览、目录、详情、版本对比与健康状态。

链路

检查 APM 证据背后的具体 span 与 trace。

服务地图

可视化跨服务父子 span 关系。

链路采集

把 OpenTelemetry trace 发送到 MoleSignal。
最后修改于 2026年8月9日