概述
Istio 利用 Envoy 的分布式追踪功能提供了开箱即用的追踪集成。确切地说,Istio 提供了安装各种各种追踪后端服务的选项,并且通过配置代理来自动发送追踪 span 到追踪后端服务。
请参阅 ,Jaeger 和 的任务文档来了解 Istio 如何与这些分布式追踪系统一起工作。
尽管 Istio 代理能够自动发送 span,但是他们需要一些附加线索才能将整个追踪链路关联到一起。
所以当代理发送 span 信息的时候,应用需要附加适当的 HTTP 请求头信息,这样才能够把多个 span 正确的关联到同一个追踪上。
要做到这一点,应用程序从传入请求到任何传出的请求中需要包含以下请求头参数:
x-b3-spanid
x-b3-parentspanid
x-b3-flags
例如,如果你看 Python 的 productpage
服务这个例子,可以看到这个应用程序使用了 OpenTracing 库从 HTTP 请求中提取所需的头信息:
在 reviews 这个应用中(Java)也做了类似的事情:
当你在应用程序中进行下游调用时,请确保包含这些请求头。
在网格安装时,使用可选项
values.pilot.traceSampling
来设置采样百分比。参考文档查看详细的配置可选项。在运行中的网格,可以通过编辑
istio-pilot
deployment 并通过以下步骤来改变环境变量:运行下面的命令来打开编辑器并加载 deployment 配置文件:
找到
PILOT_TRACE_SAMPLING
环境变量,将 设置成你想要的百分比。
在这两种情况下,有效值的范围从 0.0 到 100.0,精度为 0.01。
了解如何配置代理以向 Jaeger 发送追踪请求。
了解如何通过配置代理以将追踪请求发送到 Zipkin。
此任务向您展示如何配置从外部访问 Istio 遥测插件。
提高可用,降低延迟。
概要说明 Mixer 的插件架构。