服务地图
服务映射是应用程序架构中已埋点服务的实时可视化表示。它展示了这些服务如何连接,以及平均事务持续时间、每分钟请求数和每分钟错误数等高级指标。如果启用,服务映射还可以与机器学习集成——用于基于异常检测评分的实时健康指标。所有这些功能都可以帮助您快速、直观地评估服务的状态和健康状况。
我们目前提供两种类型的服务映射
- 全局:显示所有使用 APM 代理进行埋点的服务以及它们之间的连接。
- 特定服务:高亮显示所选服务的连接。
服务映射依赖分布式追踪来绘制服务之间的连接。由于支持的技术默认已启用分布式追踪,因此服务映射也是默认启用的。但是,如果某个服务未进行埋点,或者未向其传递 traceparent 标头,则分布式追踪将无法工作,映射上也不会绘制连接。
选择 Service Map 标签页以开始使用。默认情况下,将显示所有已埋点的服务和连接。无论您是带领新工程师上手,还是只是试图掌握全局,都可以通过拖拽、放大和缩小来开始可视化服务之间的连接方式。
使用查询栏或环境选择器自定义服务映射显示的内容。查询栏允许您使用高级查询根据您的需求自定义服务映射。环境选择器允许您将显示的结果缩小到特定的环境。如果您有两个或多个位于不同环境中但名称相同的服务,这会非常有用。使用环境下拉菜单仅查看您感兴趣的数据,例如 dev 或 production。
如果您使用的是 EDOT 或 contrib OpenTelemetry,请在已埋点的服务上设置 deployment.environment 资源属性。此属性映射到填充环境选择器的 service.environment 字段。如果没有它,服务将显示在“未设置”环境下,这意味着您无法使用选择器区分生产、暂存或其他环境。有关配置示例,请参考属性和标签。
如果您对某个特定的服务感兴趣,请选择该服务以高亮显示其连接。点击 Focus map 将地图重新聚焦于所选服务并锁定连接高亮显示。点击 Transactions 标签页可跳转到所选服务的事务概览。您还可以使用页面顶部的标签页轻松跳转到 Errors 或 Metrics 概览。
您可以创建机器学习作业,来计算所选服务中 APM 事务持续时间的异常评分。当这些作业处于活动状态时,服务映射将根据检测到的异常评分显示颜色编码的异常指示器
![]() |
最大异常评分 ≤25。服务健康。 |
![]() |
最大异常评分 26-74。检测到异常活动。服务可能已降级。 |
![]() |
最大异常评分 ≥75。检测到异常活动。服务不健康。 |
如果检测到异常,请点击 View anomalies 以查看异常检测指标查看器。此时间序列分析将显示有关检测到的异常的严重性和时间的更多详细信息。
要了解如何创建机器学习作业,请参考与机器学习集成。
映射上的节点呈现以下两种形状之一
- 圆形:已埋点的服务。内部图标基于所使用的 APM 代理的语言。
- 菱形:数据库、外部服务和消息传递。内部图标表示通用类型,已知实体(如 Elasticsearch)则有特定的图标。类型和子类型基于
span.type和span.subtype。
以下 APM 代理版本支持服务映射
| Go 代理 | ≥ v1.7.0 |
| Java Agent | ≥ v1.13.0 |
| .NET 代理 | ≥ v1.3.0 |
| Node.js Agent | ≥ v3.6.0 |
| PHP 代理 | ≥ v1.2.0 |
| Python 代理 | ≥ v5.5.0 |
| Ruby 代理 | ≥ v3.6.0 |
| 真实用户监控 (RUM) 代理 (仅限 Elastic Stack) | ≥ v4.7.0 |


