服务拓扑图

本文旨在帮助您快速掌握查看服务拓扑的过程。

前提条件

要查看服务拓扑,您需要满足以下任一条件:

  • 对于 Istio 服务:确保该服务已注入 Sidecar。有关详细信息,请参阅 添加 ServiceMesh 服务
  • 对于 OpenTelemetry 服务:确保该服务已注入 OpenTelemetry Java Agent。有关详细信息,请参阅 添加 OpenTelemetry 服务

快速开始

在左侧导航栏中,点击 服务拓扑

基本页面显示

该页面清晰地展示了服务之间的调用关系,其中每个节点和连接线通过不同的颜色进行区分。

  • 连接线表示服务之间的调用,其颜色根据调用的成功率进行调整。灰色线表示在选定的时间段内,这些调用没有流量。
  • 节点表示单个服务,其颜色由服务 Pods 的比例决定。

有关节点图标的详细图例、节点和连接线的颜色阈值及其含义,请参阅拓扑图左上角提供的图例。

当某个服务(及其 Deployment、Pod)或与报警规则关联的入口网关触发报警时,拓扑图将用 报警中 标记该报警的服务或入口网关 ()。点击服务的 标记将重定向您到 实时报警 页面,以查看报警规则的详细信息。

默认情况下,拓扑图每 5 秒自动刷新一次。您可以手动刷新或设置自动刷新间隔:
手动刷新:点击拓扑图右下角的 以手动刷新数据;
设置自动刷新间隔:点击右下角 旁边的时间间隔以设置自动刷新间隔。

查看 Istio 跨集群拓扑

如果当前项目与多个由服务网格管理的集群相关联,选择 跨集群拓扑 可以查看当前服务网格和项目内所有命名空间中注入 Sidecar 的服务和入口网关的调用关系拓扑图,范围须在账户权限范围内。

注意:可查看范围取决于用户的账户数据权限;仅同一命名空间内的服务支持查看追踪。
例如:集群 A 和 B 被当前服务网格管理,命名空间 an1 和 bn1 分别存在于集群 A 和 B 中,而您对 an1 和 bn1 拥有查看权限。当您进入 an1 查看服务拓扑时,默认情况下您只能查看 an1 命名空间内所有服务的调用拓扑图;当您选择 所有集群 时,则可以查看 an1 和 bn1 命名空间内所有服务的调用拓扑图,包括 an1 中的服务调用 bn1 中服务的拓扑图。

查看指定命名空间下的服务调用拓扑

点击拓扑图上方的 命名空间 下拉框,您可以查看当前集群中指定命名空间下服务的调用拓扑。默认设置是所有命名空间,显示集群中所有管理命名空间的调用关系。

查看本地拓扑图

您可以 双击 节点(除标记为“主机未知”的中间件节点外)以展开以该节点为中心的本地拓扑。这使您能够快速查看目标节点上游和下游调用关系中所有节点的状态和数据,帮助您更专注于分析特定服务的调用情况。

查看详细信息

您可以 点击 节点/连接线以展开右侧的详细面板,在此可以进行多项操作。

查看追踪

当您点击某个 节点连接线 时,详细面板显示 查看追踪,您可以进入 追踪 页面查看当前 服务调用关系 的追踪数据。

  • 点击节点 > 查看追踪:该操作查询当前拓扑图所设置的时间范围内,所选服务报告的所有跨度数据。例如,如果您点击一个名为“client”的服务节点并点击 查看追踪,系统将搜索当前时间范围内属于名为 client 的服务的所有跨度。
  • 点击连接线 > 查看追踪:该操作查询当前拓扑图所设置的时间范围内,特定调用关系对应的跨度数据。例如,如果您点击从“client”服务到“server”的连接线并点击 查看追踪,系统将在当前时间范围内搜索“client”为呼叫者而“server”为被呼叫者的所有跨度。

注意:查看追踪功能根据您的服务网格实现支持不同类型的服务:

  • 对于 Istio:仅支持 ServiceMesh 服务入口网关出口网关 节点
  • 对于 OpenTelemetry:支持 OpenTelemetry 服务中间件 节点(如数据库和消息队列)

如果您点击不支持的节点类型或包含不支持节点的连接线,将无法导航到追踪页面。

查看服务流量监控

当您点击 ServiceMesh 服务OpenTelemetry 服务入口网关出口网关 节点时,点击详细面板中的 查看流量监控 以导航到 监控 页面,以查看当前服务的详细监控数据。

查看流量信息

注意

  • 流量信息面板仅聚合由 Sidecar 管理的流量数据,不包括与未知客户端(未由 Sidecar 管理的流量)通信的流量数据。您可以访问 服务详情监控 页面查看完整的流量数据。

  • 当平台收集流量数据时,如果客户端已经注入 Sidecar,则流量采样率与服务网格中配置的调用链采样率相同;否则,采样率为 100%。

  • 流量数据的查询时间范围取决于与服务网格整合的监控系统的数据保留配置。例如,如果监控系统(如 Prometheus)配置为保留过去 7 天的数据,则当查询时间范围超过 7 天时,系统只能显示最近 7 天内的流量数据。

当您点击 节点连接线 时,可以在详细面板中查看当前 服务调用关系 的流量图表。不同协议的图表说明如下:

HTTP/HTTP2/gRPC 协议

参数描述
入站/出站流量查询时间范围内的总入站/出站请求量,以及按 HTTP 状态码(正常/2xx、3xx、4xx、5xx)的流量比例。
将鼠标悬停在柱状图上可以查看每个类别的流量比例。
入站/出站 RPS查询时间范围内的总入站/出站流量 RPS(每秒请求数)和错误入站/出站流量 RPS。
RPS = 查询时间内的请求数 / 查询持续时间(秒)
流量查询时间范围内服务之间的总请求数,以及按 HTTP 状态码(正常/2xx、3xx、4xx、5xx)、NR(无响应)统计的请求数量和比例。
将鼠标悬停在柱状图上可以查看每个类别的请求数量和比例。
RPS查询时间范围内的总流量 RPS(每秒请求数)和错误流量 RPS。
响应时间服务之间或服务内部的请求响应时间,以平均值、TP 50、TP 95、TP 99 显示。
TP(顶级百分位) xx 表示满足 xx% 网络请求所需的最小持续时间,通常用于系统性能监控场景。
将鼠标悬停在曲线上可以查看特定时间段的响应时间。

TCP 协议

参数描述
入站/出站流量查询时间范围内的总入站/出站流量的字节数。
TCP 连接数连接总数。
错误率 = 失败连接数 / 连接总数
成功率 = 成功连接数 / 连接总数
将鼠标悬停在柱状图上可以查看不同类别的连接数。
流量查询时间范围内服务之间的总流量字节数。
入站/出站(Bps)入站/出站服务网络流量的字节传输率(每秒字节数)。

中间件信息

当您点击连接 OpenTelemetry 服务中间件服务连接线 时,可以查看以下信息:

节点信息

类型描述
数据库类型:数据库类型,如 MySQL、Oracle 等。
主机:提供数据库主机地址
详情:提供数据库用户名、数据库名称及其他信息
消息队列类型:消息队列类型,如 RabbitMQ、Kafka 等。

注意:有关支持的中间件类型的完整列表,请参阅 节点类型

流量信息

指在查询时间范围内 OpenTelemetry 服务对中间件发起的请求总数。