遥测和监控
Linkerd
最强大的功能之一是其围绕可观测性(observability)
的广泛工具集—在网格应用程序中测量和报告观察到的行为。虽然 Linkerd
没有直接洞察服务代码的内部结构,但它对服务代码的外部行为有着巨大的洞察力。
要访问 Linkerd
的可观测性功能,您只需要安装 Viz
扩展:
linkerd viz install | kubectl apply -f -
Linkerd
的遥测和监控功能会自动运行,无需开发人员进行任何工作。这些功能包括:
- 记录
HTTP
、HTTP/2
和gRPC
流量的顶级(“黄金”)指标(请求量、成功率和延迟分布)。 - 记录其他
TCP
流量的TCP
级别指标(输入/输出字节
等)。 - 报告每个服务、每个调用方/被调用方对或每个路由/路径(使用服务配置文件)的指标。
- 生成拓扑图,显示服务之间的运行时关系。
- 实时、按需请求采样。
可以通过多种方式使用这些数据:
- 通过 Linkerd CLI, 例如:使用
linkerd viz stat
和
linkerd viz routes
。 - 通过 Linkerd dashboard 和 pre-built Grafana dashboards。
- 直接来自
Linkerd
的内置Prometheus
实例。
黄金指标
成功率
这是一个时间窗口(默认为 1
分钟)内成功请求的百分比。
在命令 linkerd viz routes -o wide
的输出中,此指标分为 EFFECTIVE_SUCCESS
和 ACTUAL_SUCCESS
。对于配置了重试的路由,前者计算重试后的成功百分比(客户端感知),后者计算重试前的成功率(可能暴露服务的潜在问题)。
流量(每秒请求数)
这概述了对 service/route
的需求量。与成功率一样,linkerd viz routes --o wide
将此指标拆分为 EFFECTIVE_RPS
和 ACTUAL_RPS
,分别对应于重试前后的比率。
延迟
每个 service/route
的服务请求所花费的时间分为第 50
、95
和 99
个百分位数。较低的百分位数可让您大致了解系统的平均性能,而尾部百分位数有助于捕捉异常行为。
Linkerd 指标的生命周期
Linkerd
并非设计为长期历史指标存储。虽然 Linkerd
的 Viz
扩展确实包含一个 Prometheus
实例,但该实例会在很短的固定时间间隔(目前为 6
小时)内使指标过期。
相反,Linkerd
旨在补充您现有的指标存储。如果 Linkerd
的指标有价值,您应该将它们导出到您现有的历史指标存储中。
有关更多信息,请参阅 导出指标 。