前言
在当今复杂的分布式系统中,了解请求在不同服务之间的传递路径和性能情况对于系统的性能优化至关重要。链路追踪通过记录和分析请求在系统中的传递路径和性能数据,为实现数据联动分析提供了重要的支持。我们曾谈论观测云提供火焰图能够实现链路追踪分析的可视化(参见《火焰图:链路追踪分析的可视化利器》),展示了观测云强大的链路追踪和分析能力。当然,观测云的链路追踪还有更多值得探索的扩展功能。本文将探讨观测云的链路追踪如何实现多方面数据联动分析,帮助用户更好地发现并解决问题,也能够优化系统性能,提升用户体验。
启动链路追踪与联动数据分析
观测云提供链路追踪是基于链路查看器,支持搜索和筛选链路数据,并能够通过火焰图、Span 列表等对链路性能进行全量分析。同时,所有的链路数据还可以与基础设施、日志、用户访问检测(RUM)、代码热点(Profile)以及内置视图等相关数据进行联动分析。
关联基础设施
主机、容器、Pod
在链路查看器,您可以先利用关联字段host/container_name/pod_name
实现联动查询,确定与主机/容器/Pod 相关的链路记录范围。当选中所需查看的链路,您就可以进入链路详情页查看相关主机、容器、Pod 的指标视图和属性视图,实现链路数据与基础设施对象数据联动分析。
通过指标视图,您不仅能够查看相关主机/容器/Pod 的 CPU、内存等性能指标状态,还可以针对某一数据点进行下钻分析、根因分析或查看相似趋势指标,帮助您得到更加精准的数据分析结果。
属性视图则能够帮助您了解在该链路产生时相关主机/容器/Pod 对象的真实情况,支持查看相关主机/容器/Pod 在对应时间内产生的最新一条对象数据,包括其基本信息、属性信息等。特别的,主机属性视图还会显示集成运行情况以及云厂商的信息。您还可以点击集成直接进入监控视图查看更详细的数据情况。
网络
当您需要查看错误链路中的问题是否是因为网络故障时 ,可以通过错误追踪详情页中的网络界面看到其拓扑图和数据总览。
您可以快速了解该错误链路中相关网络上下游关系、网络关键指标以及 48 小时内网络数据连接情况;方便您快速找出链路调用中的故障并修复,提高应用程序稳定性。当然,在详情页中查看相关网络需要匹配 Host 、Pod、Deployment、Service 对应的关联字段,如下所示:
维度 | 关联字段及优先级(从上至下) |
---|---|
Host | host |
Pod | namespace、pod_name namespace、pod pod_name pod |
Deployment | namespace、deployment_name namespace、deployment deployment_name deployment |
Service | namespace、service_name namespace、service |
值得强调的是,如果您想要进行更深层,更全面的网络数据分析,您还可以点击按钮一键跳转到网络流数据页面。
关联日志
在链路详情页面中,您可以通过日志页面查看该链路关联的日志(关联字段:trace_id)。同时您还可以对日志进行关键字搜索和多标签筛选。
当然,若您是管理员以上权限,您还可以自定义关联字段来完成更多筛选操作。若您需要更详细的日志内容来支持故障定位,您就可以点击日志内容跳转到相应的日志详情页查看更多相关数据。
例如,当您的链路出现请求缓慢等异常报错时,在利用火焰图快速查看上下游 Span 信息后,结合链路日志和网络调用能够快速定位错误原因,再通过进一步的跟踪和调试,可以最大程度地减少致命错误对服务的影响。
关联用户访问监测(RUM)
对于前端应用错误链路问题,您可以结合 RUM 更深地了解用户在访问中应用程序中的真实体验。
您可以通过 trace_id 在 View 查看器中直接查询该链路相关的用户访问数据,并直接跳转查看此链路的详情进行更深度分析;同时也支持在链路详情页“相关 View” 按钮反向跳转到 RUM ,查看该链路中应用性能对应的用户访问情况。
除此之外,用户访问体验数据与应用性能链路追踪联动分析,还可以快速帮助您回放查看用户的完整访问互动,更加高效地实现应用性能及用户体验的优化和提升。
关联代码热点(Profile)
若您想查看后端链路导致的异常情况,利用 runtime_id 实现联动查询后,您就可以点击某链路进入详情页中查看代码热点(Profile)。当然,当您选中火焰图的 Span,就可以获取对应时间段的代码热点信息,包括代码方法调用列表和执行耗时占比。方便您进一步查看和分析,探索异常问题。
数据采集前提:应用程序使用 ddtrace 采集器,并同时开启了APM 链路追踪和 Profile 性能追踪数据采集。
若想查看更多相关代码,您还可以点击查看 Profile 详情页,查看错误发生时确切执行的函数及代码行,快速定位程序或系统中哪些部分花费了最多的时间,进而排查错误是否由代码问题导致。
另外,您还可以根据需求,在链路查看器中绑定内置视图来实现数据联动分析,具体的操作和使用场景我们已在之前的文章中做出详细介绍(参见《内置视图联动查看器,实现数据关联分析》)。
结论
综上所述,链路追踪的实现数据联动分析对于分布式系统的性能优化至关重要。观测云提供的链路追踪联动多方数据分析,不仅帮助用户能够快速实现全链路观测;还能够更好地发现故障,及时解决问题,进一步优化系统性能,提升用户体验。