istio - 如果使用 ingressgateway istio,Trace ID 不会转发到 zipkin
问题描述
我将 istio 与入口网关一起使用,并添加了 zipkin 跟踪。我所有的应用程序都使用带有 sleuth zipkin 的 spring boot。
我已经部署了 2 个 zipkin 进行测试
- 通过 istio 文档部署在 istio 系统中
- 在 zipkin 命名空间中手动部署
spring boot 配置指向 zipkin 命名空间,总是采样配置。
问题是当我使用入口网关时,跟踪 ID 看起来像请求 ID,它确实传播到我的子系统。但是当我查询 zipkin(从 istio 文档部署在 istio-system 中,并手动部署到另一个命名空间)时,跟踪 id 不存在。
有趣的是,当我对最外面的系统进行端口转发并使用 grpc 启动 spring boot 时,跟踪 id 正在传播到子系统,并且它确实显示在 zipkin 仪表板中。
尽管在使用 ingressgateway 和 port-forward 直接 grpc 调用时跟踪 id 不同:
入口网关:0672471566b9305f7dcaadecaf1a8c71 直接呼叫:cdc337ec90b8c085
谢谢!
解决方案
推荐阅读
- python - 使用 selenium 的 Python Web 抓取表
- python - Python:如何在数组中查找特定元素的索引?
- python-3.x - 如何在一系列日期字符串上“准确”使用 .to_datetime?
- javascript - 如何构建一个将返回包含特定名称-值对的 json 对象的 javascript
- git - GitHub 远程存储库是使用 --bare 标志创建的吗?
- node.js - 在 Ubuntu 18.04 上安装 ReactJS -- npm 权限被拒绝
- css - CSS:溢出包装:断字;word-wrap:断词;差异
- angular - flatMap 不能按预期的调用链工作
- mongodb - 如何在生产和查询中向 mongodb 添加新字段?
- c - C - 使用 sprintf() 在字符串中添加前缀