我在Kubernetes中有关Istio的问题。我的Istio采样率为1%,并且我有1%未包含的错误。我会在Jaeger跟踪中看到此错误吗?
我是Kubernetes和Istio的新手。这就是为什么我不能自己测试的原因。我一直在玩Istio的Book Application
示例,我想知道我是否会看到跟踪错误,而该错误未包含在1%的采样率中。
使用以下命令配置Istio:
pilot.traceSampling=1
结果想知道我是否可以看到采样率中未包含的错误。如果没有,我如何配置Istio以查看它?
如果将采样率设置为1%,则一旦发生100次,就会在Jaeger中看到错误。在Distributed Tracing - Jaeger中提到了这一点:
要查看跟踪数据,必须将请求发送到您的服务。请求数量取决于Istio的采样率。您在安装Istio时设置此速率。默认采样率为1%。您需要至少发送100个请求,才能显示第一条跟踪。要将100个请求发送到
productpage
服务,请使用以下命令:
$ for i in `seq 1 100`; do curl -s -o /dev/null http://$GATEWAY_URL/productpage; done
如果您在当前样本中没有看到错误,我建议您提高样本数。
您可以阅读有关Tracing context propagation的信息,该信息由Envoy完成。特使自动将跨度发送到跟踪收集器
或者,跟踪上下文可以由服务手动传播:
- [使用LightStep跟踪器时,Envoy依靠服务在向其他服务发送HTTP请求时传播x-ot-span-context HTTP标头。
- [使用Zipkin跟踪器时,Envoy依靠服务来传播B3 HTTP标头(x-b3-traceid,x-b3-spanid,x-b3-parentspanid,x-b3-sampled和x-b3-flags)。 x-b3-sampled标头也可以由外部客户端提供,以启用或禁用对特定请求的跟踪。另外,支持单个b3标头传播格式,这是一种压缩程度更高的格式。
- [使用Datadog跟踪器时,Envoy依靠服务来传播特定于Datadog的HTTP标头(x-datadog-trace-id,x-datadog-parent-id,x-datadog-sampling-priority)。