可观测产品剖析:调用链追踪
观测场景
分布式、微服务、云原生等先进应用架构在落地敏捷开发、快速迭代、弹性伸缩的同时将原有的单体应用拆分成多个独立部署相互通信的组合应用。应用数量指数级增长,业务模块间依赖关系错综复杂,不同业务层级不同维度难以建立实时有效的映射关系。同时,随着容器频繁启停,监控对象及其指标变化成为常态,故障现场难以留存、故障问题难以有效定位。
场景痛点
以上云原生架构的观测难点给应用运维的故障分析、根因定位、业务连续稳定带来严峻挑战。应用观测难点概述为以下两点:
1)信息维度复杂,难以建立多维数据关联映射关系
云原生应用的监控度量涉及应用进程、中间件、容器编排平台、容器进程、资源基础设施等相关层级资源属性和性能指标;其次,应用排障及性能剖析涉及多个服务、多个组件复杂交互关系,需根据请求链路依赖关系分析故障根因。
2)架构动态变化,故障现场难以留存,问题难以定位
容器部署架构基于声明式面向终态的设计思想,部署资源实例对象变更频繁,服务节点漂移成为常态。基于多维明细数据和指标数据关联映射构建的运行时观测分析矩阵能有效回溯历史故障现场。
解决方案
1)合纵连横故障寻址
纵向:建立运行时软件架构级联对象下钻分析逻辑。基于实际业务流量构建不同服务的全局依赖拓扑,实现可选时间范围的单业务领域全景分析,通过拓扑节点大小、颜色差异有效分析服务流量负载及服务健康状态,支持对服务节点的下钻分析、指定时间范围内服务请求、负载、错误、耗时黄金指标,在服务内可下钻分析服务的单一接口/单一服务实例进一步故障寻址分析。将服务实例与 CMDB 管理资源(主机、容器)关联,可下钻至 IaaS 层资源,分析 IT 基础资源指标异常对服务流量的影响。
横向:基于 Trace 串联构建单笔请求链路追踪。每笔业务请求调用在入口服务生成请求唯一标识,当流量在下游多个服务传递时将请求唯一标识、当前节点请求标识、上游服务信息作为上下文传递,从而构建完成业务调用链路。此外,用户可结合实际业务场景从 HTTP 请求头、请求参数、cookie 等获取业务特征数据完成数据埋点,在链路分析时根据指定业务特征的请求依赖关系辅助业务异常分析。
2)调用链与日志明细关联根因定位
在 KAPM 和 KLC 共同交付场景下,可将调用链和日志明细进行关联,实现高效根因定位。通过 KAPM 调用链分析能力用户可以确定请求依赖关系、缩小排障范围、准确故障寻址,但无法获取故障根因明细,在此场景下将调用链和日志明细关联无缝链接排障最后“一公里”。
产品功能
功能点 1:应用分析
链路拓扑:通过探针埋点服务进程,自动探测绘制应用运行拓扑;通过节点面积大小区分服务流量情况,并根据相应耗时/请求错误等数据对服务节点进行 Apdex 评分染色。
资源关系:根据探针采集数据,自动关联主机、数据库及消息队列的基础监控实例,实现 APM 与 ITIM 的联动观测能力。
指标分析:通过页面集中展示应用运行黄金指标(健康状态、请求负载和请求错误数),展示服务及接口的请求 TOP 列表。
功能点 2:服务分析
服务列表:展示应用所属全部服务列表,汇总概要指标数据。
指标分析:展示服务视角运行指标,包括 Apdex 评分、请求负载、请求错误数和请求耗时等。
链路拓扑:展示从指定服务出发的局部拓扑上下游关系,精准定位服务运行影响范围。
接口列表:集中展示服务所属接口,汇总概要信息。
请求列表:罗列详细请求数据,精准记录每一次业务运行,支持一键跳转接口分析、服务分析、调用链检索等场景页面。
错误列表:集中展示错误调用,支持一键跳转调用链检索页面,可在页面一键查看错误堆栈信息。
实例分析-请求概览:针对服务实例(Java 进程)级别的分析概览页面,支持用户查看健康状态、请求负载、请求错误数和请求耗时等数据
实例分析-JVM 分析:针对实例级别的进程进行 JVM 分析,包括 GC 分析、堆内存分析、线程分析等指标视图。
SQL/NOSQL 分析:针对服务调用的周边数据库进行应用层面的数据分析视图,包括针对 SQL 命令/慢命令/错误的汇总分析视图。
功能点 3:接口分析
下钻至具体服务接口,查看应用运行情况,包括应用运行数据概览、请求列表和错误列表汇总分析;支持一键跳转服务分析,支持下钻至调用链检索进行详情查看。
功能点 4:调用链检
Trace/Span 检索:针对调用链 Trace 和 Span 环节的详情检索页面,支持通过 Trace/SpanID 精准定位请求详情,支持通过请求耗时范围检索请求列表;
请求详情:通过查看详情数据分析系统运行情况,包括探针原始数据,与日志联动的分析能力。
功能点 5:应用配置
健康度评分:支持用户手动配置健康度阈值,针对不同应用情况进行不同条件下的应用运行评估。
SQL/NOSQL 慢命令配置:支持用户自定义“慢命令/慢 SQL”的阈值配置。
落地愿景
在科技飞速发展的今天,各行各业都在不断迎来新的变革。在 IT 运维领域,云原生概念随着微服务、云以及容器化等技术的大规模应用愈发深入人心;云原生带来的新的运维困境和技术难题也愈发尖锐。在此背景下应时而生的调用链追踪技术,将会帮助运维乃至开发人员更加方便快捷的完成系统维稳、代码优化、故障排查等动作。同时,详尽的宽事件数据也在推动着监控领域从被动告警响应向主动可观测的模式转变,从而加速各行各业的产品迭代,最终实现 IT 领域的加速发展。
评论