APM 不需要另一套 SDK,也不会新增遥测数据流。发送完整埋点的 trace 后,MoleSignal 会在链路
去重之后、尾采样之前派生 APM 数据。因此,最终被采样丢弃的 trace 仍可计入 APM 指标。
可用分析
接入前提
- 把 OpenTelemetry trace 发送到 MoleSignal 的链路采集端点;
- 在组织工作区拥有
streams.query;或者 - 在受保护的
_sys遥测范围拥有sys.telemetry.read。
为服务接入 APM
1
设置稳定的服务资源属性
每个服务都要设置 具体配置方式取决于使用的 OpenTelemetry SDK 或 Collector。
service.name。如果需要筛选服务或比较部署,再添加命名空间、环境、
版本和实例属性。2
使用正确的 span kind
为入站请求创建
SERVER span,为消费的消息创建 CONSUMER span。为下游调用创建
CLIENT 或 PRODUCER span。MoleSignal 通过 span kind 区分事务与依赖。3
记录状态与异常
设置 OpenTelemetry span 状态、HTTP 或 RPC 状态属性,并记录 exception event。
MoleSignal 用这些信息区分成功与失败,并建立后端错误组。
4
发送 trace 并打开 APM
发送 OTLP trace,然后打开 APM → 概览。把全局时间范围保持在最近流量,等待投影器
刷写首批数据桶。
推荐的资源属性
请使用低基数值。不要把请求 ID、原始 URL、用户 ID 或其他无界值放进服务、环境、版本、
路由、操作或依赖属性。
APM 数据如何派生
服务与事务
SERVER 和 CONSUMER span 会计入服务与事务 RED 指标。没有 kind 且没有父 span 的数据可作为
服务总量的兼容回退,但显式 span kind 才能生成更完整的页面。
MoleSignal 会从语义属性构造有界事务名称:
- HTTP 方法与
http.route,例如POST /checkout; - RPC 服务与方法;
- 消息操作与目标端;
- 没有更强语义标识时,使用安全、低基数的 span 名称。
/orders/{id} 这样的路由模板,不要使用 /orders/83921 这样的原始路径。
依赖
CLIENT 和 PRODUCER span 会计入依赖 RED 指标。MoleSignal 会把目标分类为服务、数据库、缓存、
消息系统、外部 HTTP、外部 RPC 或其他依赖。标准的 peer.service、db.*、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 天。
阅读数据质量提示
每个 APM 响应都带有数据质量元数据,界面也会展示相同状态。
请先缩短时间范围并收窄过滤条件。如果部分或延迟状态持续存在,再检查 APM 健康端点与平台遥测。
隐私与有界数据
APM 保存聚合以及少量脱敏后的证据。APM 聚合不会保留请求体、响应体、URL 查询参数值、Header、 SQL 语句或 SQL 参数。标识值、代表性消息和栈帧都有长度限制;疑似敏感或易变化的值会在持久化 之前删除或掩码。 这些保护不能替代良好的埋点习惯。不要把密钥或个人数据放入 span 名称、状态描述、异常消息或 资源属性。故障排查
APM API
查询 APM 概览、目录、详情、版本对比与健康状态。
链路
检查 APM 证据背后的具体 span 与 trace。
服务地图
可视化跨服务父子 span 关系。
链路采集
把 OpenTelemetry trace 发送到 MoleSignal。