Istio 分布式跟踪与 Jaeger 不起作用

2023-12-28

我正在尝试设置本地 k8s 集群minikube已安装istio我在使用 Jaeger 启用分布式跟踪时遇到问题。 我有3个微服务A -> B -> C。我正在传播所需的所有标头:

{"x-request-id", "x-b3-traceid", "x-b3-spanid", "x-b3-parentspanid", "x-b3-sampled", "x-b3-flags", "x-ot-span-context"}

但是在Jaeger界面上,我只能看到对服务A的请求,而看不到对服务B的请求。

我已记录请求中发送的标头。 来自服务 A 的标头:

Header - x-request-id: c2804368-2ff0-9d90-a2aa-972537968924
Header - x-b3-traceid: 3a2400b40bbe5ed8
Header - x-b3-spanid: 3a2400b40bbe5ed8
Header - x-b3-parentspanid: 
Header - x-b3-sampled: 1
Header - x-b3-flags: 
Header - x-ot-span-context: 

来自服务 B 的标头:

Header - x-request-id: c2804368-2ff0-9d90-a2aa-972537968924
Header - x-b3-traceid: 3a2400b40bbe5ed8
Header - x-b3-spanid: 3a2400b40bbe5ed8
Header - x-b3-parentspanid:
Header - x-b3-sampled: 1
Header - x-b3-flags:
Header - x-ot-span-context:

So the x-request-id, x-b3-traceid, x-b3-sampled, and x-b3-spanid火柴。有一些标头未设置。 另外,我通过 LoadBalancer 类型的 k8s 服务 IP 访问服务 A,而不是通过入口。不知道这是否可能是问题所在。

UPD:我已经设置了 istio 网关,所以现在我正在访问服务A通过 istio 网关。但结果是一样的,我可以看到痕迹gateway->A但没有任何进一步的追踪


如果查询不存在的标头,某些 Web 框架会返回空字符串。我在 Spring Boot 和 KoaJS 中看到过这一点。

如果 Istio 未发送任何跟踪标头,则此标头逻辑会导致我们为那些不存在的标头发送空字符串,从而中断跟踪。

我的建议是在获取标头的值后,过滤掉以空字符串作为其值的标头,并传播其余的标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Istio 分布式跟踪与 Jaeger 不起作用 的相关文章

  • 跨命名空间共享秘密

    有没有办法在 Kubernetes 中跨命名空间共享秘密 我的用例是 我的所有命名空间都有相同的私有注册表 并且我想避免为每个命名空间创建相同的秘密 秘密 API 对象驻留在命名空间中 它们只能由同一命名空间中的 pod 引用 基本上 您必
  • 多个 nginx 入口重写的默认路径

    这是我的情况 我在 kubernetes 入口 上 有两个 docker 镜像 一个专用于 Web 第二个专用于 api 在下一个配置下 在消息末尾 web将显示将进行一些调用的前端 api 那里一切都好 but 是 404 因为没有定义任
  • Kubernetes 仪表板 - ServiceUnavailable(503 错误)

    我是 Kubernetes 新手 我正在尝试使用 kops 在 AWS 上设置 Kubernetes 集群 我成功地设置了集群 但是 我无法访问仪表板 UI https kubernetes io docs tasks access app
  • 如何重用现有的持久卷声明

    我已经删除了我的 Elasticsearch 集群 但现在在部署新集群后 我需要访问存储在 3 个持久卷 PV 上的旧数据 如下所述 NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS
  • io.fabric8.kubernetes.client.KubernetesClientException:禁止!配置的服务帐户无权访问

    Config config new ConfigBuilder withMasterUrl https c2 eu de containers cloud ibm com 78945 build 尝试 KubernetesClient客户端
  • gofabric8> 无法解压缩 /Users/apple/.fabric8/bin/oc.zip zip:不是有效的 zip

    我正在尝试为微服务设置环境 我正在使用 Fabric8 来做到这一点 我在用着mvn fabric8 cluster start Dfabric8 cluster kind openshift命令 执行时出现以下错误 INFO gofabr
  • Kubernetes 中的暂停镜像有什么用?

    看来在 Windows 上 Kubernetes 启动了一个pause创建的每个 Pod 的图像 这个暂停图像的目的是什么 我在哪里可以找到更多有关它的文档 The pause容器是保存 Pod 网络命名空间的容器 Kubernetes 创
  • Kubernetes ConfigMap 大小限制

    Though resourceQuotas可能会限制命名空间中的配置映射的数量 是否有任何这样的选项来限制单个配置映射的大小 我不喜欢某些用户开始上传大型文本文件作为配置映射 ConfigMap etcd 支持的最大大小是多少 如果 etc
  • 如何使用 hostPath 将单个文件映射到 kubernetes pod 中?

    我有一个自己的 nginx 配置 home ubuntu workspace web conf由脚本生成 我更喜欢把它放在下面 etc nginx conf d除了default conf 下面是nginx yaml apiVersion
  • Jenkinsfile 泊坞窗

    我正在 docker 容器内的 GCE 上运行一个 jenkins 实例 并希望从此 Jenkinsfile 和 Github 执行多分支管道 我正在使用GCE詹金斯 https cloud google com solutions con
  • prometheus 节点实例列表

    是否可以使用 prometheus 获取节点实例列表 我有一个节点导出器 但我没有看到这样的指标 我们应该添加一个新的运算符吗 您可以使用kube 状态指标 https github com kubernetes kube state me
  • Grafana/prometheus 中没有 kafka 指标

    我成功部署了 Helm Chart普罗米修斯操作员 https github com coreos prometheus operator tree master helm prometheus operator kube 普罗米修斯 ht
  • 运行 istio-proxy 后启动容器/pod

    我正在尝试使用 Istio 和 Envoy 通过 Kubernetes 实现服务网格 我能够设置服务和 istio proxy 但无法控制容器和 istio proxy 的启动顺序 我的容器是第一个启动的 并尝试通过 TCP 访问外部资源
  • 使大型静态数据文件可供 kubernetes pod 使用

    我有一些相当大的 UTF 8 数据文件 pod 需要在启动时加载到内存中 从几百 KB 到大约 50 MB 该项目 包括 helm 图表 是开源的 但其中一些文件不是开源的 否则我可能只会将它们包含在图像中 我最初的想法是创建配置映射 但我
  • Ubuntu 16.04 中 kubeadm join 命令每次都会超时

    我正在使用 Ubuntu 16 04 Xenial 但我遇到了一个问题kubeadm加入时nodes to my master 在加入一个node to my master 我不断遇到超时问题 discovery Failed to req
  • 如何将新的 Kubernetes Minion 添加到当前集群

    我有一个运行在 3 台服务器上的 Kubernetes 集群 一台主服务器和 2 台服务器 我想添加另一个小黄人 是否可以添加 Minion 而无需再次进行完整安装 到目前为止 在寻找执行此操作的指南时 我只能找到有关建立整个集群的优秀指南
  • 入口和 SSL 直通

    我最近一直在使用 nginxdemo nginx ingress 控制器 据我了解 该控制器无法执行 SSL 直通 我的意思是 将客户端证书一直传递到后端服务进行身份验证 因此我一直通过标头传递客户端主题 DN 最终 我更喜欢 SSL 直通
  • 如何将 kubernetes LoadBalancer Ingress URL 发布到 aws Route53

    今天 当我通过 aws 使用 kubernetes 启动一个应用程序时 它公开了一个公开可见的 LoadBalancer Ingress URL 但是要将其链接到我的域以使公众可以访问该应用程序 我需要在每个设备上的浏览器中手动进入 aws
  • Kubernetes 通过基于时间的触发器扩展 Pod

    我有一台在 Kubernetes 上运行的服务器来处理每小时的处理作业 考虑使用服务来公开 pod 并使用 外部 cron 作业来访问负载均衡器 以便 kubernetes 可以根据需要自动缩放以处理更高的负载 然而在实现中 如果 cron
  • 用户“system:anonymous”无法代理命名空间“kube-system”中的服务。:“没有匹配的策略。\n未知用户\“system:anonymous\””

    尝试访问集群信息中找到的 Kubernetes 仪表板时 出现以下错误 kubectl cluster info 在 Chrome 中以隐身模式也会弹出 用户 system anonymous 无法代理命名空间 kube system 中的

随机推荐

  • Vuetify 中的颜色主题更改不起作用

    我将 vuejs 与 vuetify 一起使用 我放置了基本 vuetify 模板并尝试更改颜色主题 但颜色不会切换 我的控制台中没有出现任何错误 并且我的缓存也被清除 main js代码 import Vue from vue impor
  • VM 快照期间 BizTalk 与 SQL 的连接问题

    我们有一个用于 BizTalk 的虚拟机和一个用于 SQL 后端的单独虚拟机 我们使用 Veeam 进行备份 这基本上会启动虚拟机的快照 当此快照在 SQL VM 上最终确定时 应用程序服务器上的 BizTalk 服务将失败 通常它们会自动
  • 检测是否开启“蓝牙扫描”定位

    从 Android M 开始 如果您启用了蓝牙设备 即使全球定位已关闭 也可以在后台扫描蓝牙设备 蓝牙扫描位置设置中的选项 参见屏幕截图 为了扫描 BLE 设备 必须满足以下条件 COARSE LOCATION or FINE LOCATI
  • 使用 C# 将布尔数组转换为字符串

    我有一个看起来像这样的数组 status 0 true status 1 true status 2 false status 3 true 实际上它更大 但仍然小于 20 我需要将其转换为 ABD 其中每个 true 代表字母表中的一个有
  • 使用芯片输入选择不显示所选值

    我有一个选择 输入采用芯片格式 我尝试了所选值的控制台日志 效果很好 但由于某种原因 它没有显示在选择框中 我在这里做错了什么 handleChange event gt this setState badge event target v
  • Spring Boot中事务同步与Database+kafka示例

    我想使用 Spring boot 编写一个新应用程序 使用 MySQL Mango 数据库和 Spring Kafka 进行消息传递 我尝试使用 Many POC 来同步 Kafka 和 DB 之间的事务 但在某些情况下失败了 并且我还搜索
  • 如何访问 CGContext 以在屏幕外创建 CGLayer

    意图 创造CGLayer在屏幕外 从第二个线程在其上绘制一些复杂的东西 稍后使用它在主线程上快速绘制 Problem CGLayerCreateWithContext context size info 期望已经存在的CGContext这样
  • 如何在 ASP.net IIS 7.5 中利用浏览器缓存

    以下可缓存资源的新鲜生命周期较短 指定以下资源至少在未来一周内到期 http pagespeed googlelabs com http pagespeed googlelabs com建议我将此作为我的网站的高度优先事项 我正在使用 Wi
  • 用于 GUI 的 Java 2D 场景图形库

    我正在寻找用于构建 GUI 应用程序的 2D 场景图形库 它应该很快 使用 Java2D 并与 Swing 兼容 可嵌入 Swing 应用程序并显示 Swing 组件 对动画的支持是一个优点 您有使用某些图书馆的经验吗 有没有我错过的图书馆
  • Numpy 图像数组:如何有效地从 RGB 切换到 Hex

    我一直在使用嵌套 for 循环将 RGB 图像转换为十六进制值的图像数组 但对于大图像来说太慢了 有谁知道可以帮助我从 RGB 切换回 HEX 的快速方法和 或库 编辑 ragingSloth 这是我想出的 但对于我的需要来说太慢了 def
  • 如何在 Travis CI 上安装某些东西而不超时?

    我正在尝试测试 travis ci org 上构建的包 但 pip install scipy 遇到超时 Installing collected packages scipy Running setup py install for sc
  • 如何从 Excel 单元格获取完整值,而不是显示的(四舍五入)值?

    我在从工作表的单元格检索确切值时遇到问题 如果我打开文件 单元格有一个十进制数 仅显示 4 位小数 但如果我单击特定单元格 则该值会不同 有 6 位小数 我知道这是应用于单元格的设置 以便仅显示 4 位小数 现在我尝试使用 ClosedXM
  • WPF中如何移动焦点?

    我想知道是否有办法将焦点从当前控件移至 WPF 中 TabIndex 分配的控件上的其他控件 例子 我有 TabIndex 1 到 5 的控件 有没有办法将焦点从 1 跳转到 5
  • 从 C# 类设置 Gridview“标题”的样式

    我正在尝试在 C 文件中设置 ASP Net GridView 标题的样式 这是我返回样式化 GridView 的方法 private GridView setupGridView string caption var gview new
  • 检查context.Request.Body的条件是azure api管理策略中的JArray或JObject

    我正在使用 Azure API 管理策略表达式将供应商值发送到每个帖子 对后端 API 的放置和删除请求 我编写了一个代码 当请求类型为 JObject 时 该代码工作正常 但我有一些请求可以是 JArray 类型的情况 在这种情况下它会抛
  • 如何在IIS7中禁用应用程序池空闲超时?

    如果我将空闲超时设置为0 它会被禁用吗 是的 将空闲超时值设置为零将禁用空闲超时 奇怪的是 这没有记录在 MS 文档中 但我的证据来自 IIS 设置架构 如果您查看了 IIS 设置架构 C Windows System32 inetsrv
  • 如何安装:OpenSSL + WAMP

    这里有人有关于如何在我的本地开发计算机上获取 SSL 的清晰详细的步骤吗 我已在 c wamp 上安装了最新版本的 WAMP 2 2c 我在网上找到的说明在大多数情况下似乎已经过时 并且缺乏正确完成工作所需的详细信息 指南 WampServ
  • wl-pprint-extras 中的可选空格和多个替代项

    是否有一种好的 可接受的方法来获得两种以上的替代布局 特别是支持可选空间的方式 特别是 我可能想通过以下三种方式之一打印列表 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 按照该优先顺序 您可以先尝试一种替代方案 然后再尝试另
  • 从 FireWire 获取视频流

    我正在尝试通过 FireWire 将摄像机 Sony HVR Z1E 中的视频流式传输到我的计算机 传入的图片 流应由一些期望 CVMat 格式 来自 openCV 的函数进一步处理 好吧 我现在的问题是我不知道如何获取流 好吧 openC
  • Istio 分布式跟踪与 Jaeger 不起作用

    我正在尝试设置本地 k8s 集群minikube已安装istio我在使用 Jaeger 启用分布式跟踪时遇到问题 我有3个微服务A gt B gt C 我正在传播所需的所有标头 x request id x b3 traceid x b3