我试图在整个微服务体系结构中建立分布式事件跟踪。
这里是关于我们的架构的一些序言:
/api/<serviceName>的各种后端服务设置traefik时,将traceContextHeaderName设置为"trace-id"。
我认为这是如何工作的,因为前端应用程序接收来自负载均衡器的头“跟踪id”,该值可用于将相关请求“链接”到一起。
示例场景:
当客户加载尝试登录时,他们向web应用程序发出请求,接收并呈现HTML/CSS/JS,然后对/api/auth/login的后续请求可以是带有登录数据和traefik提供的"trace-id"报头值的POSTed。处理/api/auth/login端点的后端服务可以捕获这个"trace-id"头值,并向jaeger发布一些与其验证用户的工作相关的跨度。
发生了什么:
当对前端HTML提出请求时,不会接收到任何"trace-id"头,因此随后发布的任何跨域都被认为是单独的跟踪,而不是链接在一起。
traefik.toml:
...
[tracing]
backend = "jaeger"
serviceName = "traefik"
spanNameLimit = 0
[tracing.jaeger]
samplingServerURL = "http://jaeger:5778/sampling"
samplingType = "const"
samplingParam = 1.0
localAgentHostPort = "jaeger:6831"
traceContextHeaderName = "trace-id"
...我知道StackOverflow不是一个“为我编写代码”的服务。我正在寻找关于什么可能是错误的指导,因为我是新的分布式事件跟踪。我试着搜索和寻找答案,但我已经到了一个死胡同。
任何关于去哪里找的帮助/建议都将不胜感激。
请告诉我,如果我在错误的树上吠叫,不正确地接近这个,或者如果我对traceContextHeaderName应该如何工作的理解是不正确的。
发布于 2019-07-19 21:47:14
呃。我是个白痴。
对于其他可能被困在这样的地方的人来说,这是出了什么问题:
前端应用程序正在接收一个标题,我只是找错地方了。
请求来自负载均衡器到节点前端微服务,后者将响应发送到浏览器。
我正在检查浏览器的头部,但是节点前端微服务并没有将这个头转发给浏览器。
https://stackoverflow.com/questions/57119864
复制相似问题