Istio 作为云原生下服务网格的事实标准,正在席卷全球软件的基础设施。
而作为服务网格,istio 宣称有三大功能:流量管理、可观测、安全能力,可观测独占一席,可见可观测对于 istio 本身的重要程度。
而在可观测三大法宝:指标、日志、全链路追踪中,全链路追踪可以说是可观测的中流砥柱。
1、Istio 中的全链路追踪
网格中的全链路追踪会对每一个流经网格的请求进行观测,全链路追踪使我们能够了解服务依赖关系以及流量在服务网格内的表现,包括延迟、错误等。
Istio 通过 Envoy (Sidecar)完成全链路追踪所需的数据生成。Envoy 会为其所代理的程序自动地生成全链路追踪中的 Span ,当然生成 Span 需要程序在流量上主动标记其上下文。
Istio 支持许多追踪后端,包括 Zipkin、Jaeger、Lightstep 和 Datadog等。
Istio 还可以控制追踪生成的采样率(即每个请求生成追踪数据的速率),这允许运维人员控制为其网格生成的跟踪数据的数量和速率。
2、在 Istio 中开启并配置全链路追踪
在 Istio 里开启并配置全链路追踪有两个方法,一个是通过 ProxyConfig 代理配置来设定,另一个则是基于 Istio 最新的 Telemetry API 相关配置。
1)ProxyConfig 代理配置
Istio 可以对不同的 pod 进行不同全链路追踪的配置。
通过给 POD 添加名为