微服务下链路追踪与日志埋点-第一篇

链路追踪:面对复杂的微服务环境下,我们需要通过技术手段来快速识别一条完整的请求路径,从而达到了解请求全路径的情况。

日志埋点:指通过收集程序中的指定日志进行可视化分析,通常有手动埋点(埋特定场景,如用户 点击了某个按钮,或者在程序中某些我特别关心的代码的执行情况)及自动埋点(简单就理解为全埋好了)

这两者基本是分不开的,因为这两者都需要标识符来标识自身,日志埋点更关注本服务的情况,链路追踪更关心本服务与其他服务之间的情况。因此就合在一起讲了。

为了解决什么问题?

不仅是微服务环境下,就算单体环境下。随着复杂度的上升,日志也变得逐渐没法看,分析成本越来越高,因此需要埋点技术,来标识一次请求内发生的事情。

只不过在微服务我们不仅要管好自己,还要管好和别人之间的关系。

为了实现开发过程中所有问题的快速定位分析,一般我们要实现下列四类场景:

  1. 调用链埋点:识别一个请求的经过了哪些服务,用于快速识别是谁出了问题,【你肯定不想经历那种A服务说是b服务出了问题 ,再去查B服务,B服务说C服务出了问题,以此类推。这里我都不想说如果服务还是跨部门的情况,那等着扯皮吧】
  2. 日志埋点:通过实现调用链埋点,我们已经能快速定位是哪个服务出了问题,那日志埋点就是为了解决这个服务出了哪些问题【调用链埋点时会有spanID用于标识请求】,在这里你可以快速 找到当前请求下的异常日志,或者说你关心的日志,你已经不需要从一对日志里找到你关心的东西了。
  3. 页面埋点:业务的发起端一般都是在页面上,因此我们需要通过页面埋点来标识是哪个按钮触发的请求,我们在这里不仅要拿到触发标识,还要拿到他的参数。这不仅有助于我们分析请求入参 ,还有助于我们分析用户行为。
  4. 业务埋点:这实际上和页面埋点是一个东西,只是侧重点不同。页面埋点侧重于拿到当前页面的触发参数,而业务埋点侧重于页面与页面之间的依赖关系。这多见于涉及到流程扭转的页面【我要完成A表单之后才能填写B表单】。注意,页面埋点与业务埋点都需要将自身唯一标识流转与整个调用链。

这四种埋点中最重要是调用链埋点【我们所说的链路追踪】,如果涉及业务侧,那么业务埋点的实现也至关重要。因为这两个都涉及到了唯一标识的生成【因为我们要通过唯一标识来串日志嘛】。

后面需要介绍链路追踪的基本概念【链路追踪已经很成熟了,现在成熟的技术都是基于谷歌的论文实现的】


点个赞鼓励一下,不花钱的啊!

peace and love

展开阅读全文

页面更新:2024-03-07

标签:日志   表单   路径   标识   按钮   场景   成熟   参数   东西   快速   情况   页面   环境   业务   技术   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top