【问题标题】:Is it possible to send x-request-id back when using istio with zipkin for distributed tracing?使用 istio 和 zipkin 进行分布式跟踪时,是否可以发回 x-request-id?
【发布时间】:2018-05-19 05:07:13
【问题描述】:

点击链接Istio/Distributed tracing,我可以使用 zipkin 进行跟踪。

目前为了让客户端/调用者知道 x-request-id(如果没有发送 id,zipkin 创建一个),他 需要将其作为请求的一部分发送。

这使他能够跟踪请求。一切正常。

但是,我认为客户端发送 x-request-id 以避免约束/重复问题可能不是一个好主意。

如果有可能在 istio 级别,应该能够修改响应标头并将 x-request-id 发回,那就太好了。

我目前没有为 istio 找到这样的功能。如果有办法实现这一点,请告诉我。

【问题讨论】:

    标签: kubernetes zipkin istio


    【解决方案1】:

    我不确定我是否完全理解您的问题,但我可以详细说明一下 istio 在跟踪方面的工作原理:

    跟踪意味着识别作为原始请求一部分的每个跨度或节点,因此通常 Id 由 istio-ingress 生成,您的应用程序应该 propagate it 以便每个 istio-proxy 可以捕获该信息并将其转发到 istio-混合器,然后您可以使用 Zipkin 或 Jaeger 对其进行可视化。

    Istio 无法知道您何时从应用程序中调用原始请求,除非您复制标头。

    这有帮助/有意义吗?

    【讨论】:

    • 我更多的是从调用 istio 暴露的服务的人的角度来看。如果客户端或调用者可以使用跟踪功能来检查请求流,那就太好了。
    • 哦,我明白了,所以您的意思是作为入口请求的结果将 traceid 暴露在外部。我想这可能是一种选择(对于大多数人来说,信息应该保留在内部可能不是默认的)。我还没有尝试过,但也许您可以先在该外部服务中生成标头,然后将其仅用于下游? (通过提前设置而不是将其返回到您的外部系统来实现您的目标)
    猜你喜欢
    • 2019-12-24
    • 2020-06-11
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多