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