在云原生时代,随着微服务应用数量的极速增加,服务与服务之间的调用关系愈加错综复杂,寻找异常问题根源也愈加困难。当用户或应用程序发起请求后系统响应时间过长,或系统发生异常,可以使用链路图表帮助明确服务之间的调用链关系,快速发现、分析和准确定位应用软件、系统软件、基础设备等资源中的异常,有利于帮助用户及时排除问题,提高排障效率,避免导致业务中断、数据丢失等问题。
AnyRobot链路图表嵌于仪表盘模块,与仪表盘内其它可视化组件共同实现异常问题的指标表现、链路定位、日志事件还原,以下将介绍链路图表的配置以及应用。
配置链路图表
在查看链路图表之前需对其进行配置,主要分为图表配置和链路配置,具体操作如下:
说明:
• 链路(Trace):记录请求(由应用程序或最终用户发起)在多服务架构(如微服务和无服务器应用程序)中传播时的路径,有助于了解用户或应用发出请求时发生了什么。
• 跨度(Span):是链路当中的最小操作单元,链路由一个或多个跨度组成。跨度会跟踪请求发出的特定操作,记录该操作执行期间发生的事情,其包含名称、时间相关的数据、结构化日志消息和其它元数据(即属性)。第一个跨度表示根跨度,父级跨度下的子跨度提供了请求期间发生的事情更深入的上下文。跨度的运行状态直接影响链路呈现出的状态。
1. 进入仪表盘页面,点击右上角【编辑】>【配置管理】>【链路图表】,进入链路配置页面,进行图表配置、链路配置,各配置项说明如下:
♦ 图表配置:配置仪表盘页面链路图表的名称、图表数据范围和图表展示配置
♦ 链路配置:配置关联日志的展示信息
2. 配置完成后,点击【完成】即可生成链路图表,可在仪表盘页面查看。配置项与链路图表呈现效果对应关系如下所示:
• “图表配置”结果呈现于仪表盘页面,链路图表如下所示:
• “链路配置”结果呈现于链路详情视图,点击链路图表中【查看链路】,即可进入详情视图,可以更加清楚明了的查看此条跨度所属链路下所有跨度的详情视图。您可了解以下信息:
• 在页面顶部可查看跨度总数以及异常、正常、未知状态的跨度数;
• 通过跨度列表,可查看根跨度名称、服务名称、日志条数、跨度开始时间、持续时间、结束事件等;跨度名称项下,还可具体查看以层级展示的各跨度之间的调用关系(每条跨度前圆点的颜色与页面顶部跨度状态的颜色标识一致,可以此判断某跨度是否异常);
• 点击各跨度行后,可在对应页面右方可查看更加详细的跨度详情信息;在页面下方可查看相应跨度的运行日志信息,包括日志字段信息(展示的字段于“链路配置”中进行配置)。
说明:跨度的未知(unset)状态表示用户埋点时未自行定义的跨度的状态。
•点击有日志的跨度,如图所示“1”,进入日志列表,可查看关联日志详情信息;
•点击右下角查看上下文,可查看此条日志的上下文原始日志信息,从而了解事件发生的脉络。
应用链路图表溯源排障
当您的业务运行出现异常,您可进入仪表盘页面查看此业务相关的链路图表,确定问题所在的跨度、调用的服务以及查看相关调用信息、运行日志,帮助缩小排障范围、确定问题根源。以下为通过链路图表排障的操作:
1. 进入仪表盘页面,点击异常业务相关的仪表盘,查看链路图表,表中展示每条跨度的链路ID、跨度ID,以及其它在配置链路环节配置要展示的字段信息,通过展示的字段信息判断某条跨度是否正常,例如:若选择展示“Status”字段,即可直观判断某条跨度状态是否正常;或,若选择展示“Duration”字段,即可判断某条跨度的耗时是否正常。另外,可点击表头字段右侧按钮对整列进行排序,以便更快查询到异常跨度。
2. 也可通过仪表盘页面的全局过滤器进行过滤,筛选出异常链路。点击仪表盘页面右上角【添加配置】>【过滤器】,具体配置项详述请参考 数据应用>仪表盘>数据过滤下钻>过滤器过滤 章节,以下为以“跨度状态”为筛选条件的过滤器配置示例:
3.通过上述方法,可快速定位异常链路,再通过查看链路、查看日志详情、查看上下文等来进一步溯源排障。