代码之家  ›  专栏  ›  技术社区  ›  Sergii Bishyr

Istio分布式跟踪,Jaeger不工作

  •  2
  • Sergii Bishyr  · 技术社区  · 8 年前

    minikube 已安装 istio 我有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:
    

    所以 x-request-id , x-b3-traceid , x-b3-sampled ,和 x-b3-spanid 马西斯。有些标题未设置。 另外,我通过类型为LoadBalancer的k8s服务IP访问服务A,而不是通过入口。不知道这是否是问题所在。

    UPD:我已经设置了istio网关,所以现在我正在访问服务 A gateway->A 不能再追查了

    1 回复  |  直到 8 年前
        1
  •  3
  •   Utku Turunç    8 年前

    如果查询不存在的标头,某些web框架将返回空字符串。我在春靴和KoaJS中见过这个。

    如果任何跟踪头不是由Istio发送的,这个头逻辑会导致我们为那些不存在的头发送空字符串,这会中断跟踪。

    推荐文章