【问题标题】:Sample rate issue采样率问题
【发布时间】:2021-12-25 07:04:09
【问题描述】:

如果服务的流量很大,跟踪每次调用并保存相应的链接日志成本很高,但是一旦设置了采样率,可能会错过一些有错误的跟踪。如果我想保留一些费率收集,并且必须跟踪有错误的跟踪,这在spring-cloud-sleuth 中是否可能?如果没有,有解决办法吗?

【问题讨论】:

    标签: trace spring-cloud-sleuth zipkin


    【解决方案1】:

    Spring Cloud Sleuth 将采样决策下推至跟踪器实现,您需要创建 SamplerFunctionSampler 来执行此操作,请参阅文档:

    更新: 采样是一个早期的决定,因为跟踪有一些开销,而早期采样可以让你的应用程序免于这种开销。 如果您想在最后过滤掉您的跨度,您可以设置一个始终采样器和一个SpanHandler,您可以在其中访问Spanerrortags 等),您还可以保留/删除它们基于此(您可以将采样器注入到您的处理程序并将其逻辑应用于其余的跨度)。

    【讨论】:

    • 但是还是head-based采样器,看来只有tail-based采样器才能采集到故障痕迹。
    • 哦,对不起,我误解了你的问题,我编辑了我的答案,请检查它是否适合你。
    • 如果我实现 spanhandler ,我只会报告发生错误的日​​志(例如报告给 zipkin)。 Service 1 将远程呼叫services 2service 3。调用service 2时出错,调用service 3时正常。但是service 3无法感知其他服务的错误,所以此时service 3节点上这个span的日志会被丢弃。那么整个链接是不完整的。有问题吗?
    • 这是采样是一个早期决定的另一个原因。你可以试试 Brave 在这种情况下会做什么,我想你最终可能会得到一堆不完整的跨度。
    • 您好,问一个无关紧要的问题,brave 不再维护了吗? Adrian Cole去哪儿了,好像在2021年突然消失了一样。我问这个是因为spring-cloud-sleuth使用brave作为跟踪库......@Jonatan Ivanov
    猜你喜欢
    • 2016-11-06
    • 2011-09-19
    • 2010-12-15
    • 1970-01-01
    • 2022-08-08
    • 2017-01-28
    • 2013-03-27
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多