APM-Skywalking UI使用全攻略

0. 概述

功能简介

Skywalking(简称SW)是分布式系统的应用程序性能监视(APM)工具,专为微服务、云原生和容器架构而设计,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。通过探针自动收集所需的指标,并进行分布式追踪,具有无代码嵌入,支持众多中间件,agent种类全面,性能消耗低等优点。

本文基于7.0版本,为读者提供UI使用全攻略,帮助读者快速入门指标监控。

指标盘界面通识

image-20200602144210229
  • 最上方为功能区,用来切换SW不同的功能,具体功能将在后续篇章介绍;

  • 功能区下方为指标对象,SW的监控对象分为 服务端点实例三种;

  • 右下角为时间区,用来设定统计指标的时间域(所有的指标展示都依赖与这个时间范围)。点击右上“自动”按钮可以开启自动刷新模式;

  • 其余空间为指标盘展示区,用来展示各种指标信息。

这里着重介绍下 SkyWalking 中最重要的三个概念:

  • 服务(Service) :表示对请求提供相同行为的一系列或一组工作负载。在使用 Agent 或 SDK 的时候,你可以定义服务的名字。如果不定义的话,SkyWalking 将会使用应用名称上定义的名字,为了和告警服务联动,这里推荐大家配置成应用中心中的应用名。

    这里,我们可以看到 应用的服务"is-travel-business",这是在agent 环境变量 SW_AGENT_NAME 中所定义的。

  • 端点(Endpoint) :对于特定服务所接收的请求路径, 如 HTTP 的 URI 路径和 gRPC 服务的类名 + 方法签名。

    这里,我们可以看到 Spring Boot 应用的一个端点,为 API 接口 /api/banner/{id}

  • 服务实例(Service Instance) :上述的一组工作负载中的每一个工作负载称为一个实例。就像 Kubernetes 中的 pods 一样, 服务实例未必就是操作系统上的一个进程。但当你在使用 Agent 的时候, 一个服务实例实际就是操作系统上的一个真实进程。

    这里,我们可以看到 Spring Boot 应用的实例{进程UUID}@{hostname},由 Agent 自动生成。

SW所有的指标信息都是围绕三者展开的。

1. 指标仪表盘

1.1 服务指标

点击仪表盘,选择要查询的应用,如“is-file-store”, 再切换仪表盘为“Service”模式,即可查询对应服务的指标

image-20200602152707864

服务主要指标包括:

  • ApdexScore : 性能指数,Apdex(Application Performance Index)是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量,其中最高为1最低为0;

  • ResponseTime:响应时间,即在选定时间内,服务所有请求的平均响应时间(ms);

  • Throughput: 吞吐量,即在选定时间内,每分钟服务响应的请求量(cpm)

  • SLA: service level agreement,服务等级协议,SW中特指每分钟内响应成功请求的占比。

大盘中会列出以上指标的当前的平均值,和历史走势。

服务慢端点 Service Slow Endpoint

服务指标仪表盘会列举出当前服务响应时间最大的端点Top5,如果有端点的响应时间过高,则需要进一步关注其指标(点击可以复制端点名称)。

image-20200602154937031

运行中的实例 Running ServiceInstance

该服务目前所有实例的吞吐量情况,通过此可以推断出实例之间的负载情况。如果发现某个实例吞吐量较低,就需要查询实例指标(如查询该实例是不是发生了GC,或则CPU利用率过高)

image-20200602172630012

1.2 端点指标

如果发现有端点的响应时间过高,可以进一步查询该端点的指标信息。和服务指标类似,端点指标也包括吞吐量、SLA、响应时间等指标,这里不再赘述。

端点仪表盘会有如下特有信息:

  1. Dependency Map: 依赖关系图,代表哪些服务在依赖(调用)该端点,如果是前端直接调用,会显示为用户(User)依赖中;

  2. Slow Traces: 即慢调用请求记录,SW会自动列出当前时间段内端点最慢的调用记录和TraceID,通过这个ID可以在追踪功能找到具体的调用链信息,便于定位。

image-20200602160237829

1.3 服务实例指标

选择服务的实例并切换仪表盘,即可查看服务某个实例的指标数据。除了常规的吞吐量、SLA、响应时间等指标外,实例信息中还会给出JVM的信息,如堆栈使用量,GC耗时和次数等。

image-20200602160801867

1.4 DB 数据指标查询

除了服务本身的指标,SW也监控了服务依赖的DB指标。切换DB指标盘并选择对应DB实例,就可以看到从服务角度(client)来看该DB实例的吞吐量、SLA、响应时间等指标。

更进一步,该DB执行慢SQL会被自动列出,可以直接粘贴出来,便于定位耗时原因。

image-20200602174112268

2. 拓扑结构

  • 不同于仪表盘来展示单一服务的指标,拓扑图是来展示服务和服务之间的依赖关系。

  • 用户可以选择单一服务查询,也可以将多个服务设定为一组同时查询。

  • 点击服务图片会自动显示当前的服务指标;

  • SW会根据请求数据,自动探测出依赖的服务,DB和中间件等。

  • 点击依赖线上的圆点,会显示服务之间的依赖情况,如每分钟吞吐量,平均延迟时间,和侦察端模式(client/Server)。

image-20200602162056258

3. 请求追踪

当用户发现服务的SLA降低,或者某个具体的端口响应时间上扬明显,可以使用追踪功能查询具体的请求记录。

  • 最上方为搜索区,用户可以指定搜索条件,如隶属于哪个服务、哪个实例、哪个端口,或者请求是成功还是失败;也可以根据上文提到的TraceID精确查询。

  • 整个调用链上每一个跨度的耗时和执行结果都会被列出(默认是列表,也可选择树形结构和表格的形式);

  • 如果有步骤失败,该步骤会标记为红色。

image-20200602162641769

  • 点击跨度,会显示跨度详情,如果有异常发生,异常的种类、信息和堆栈都会被自动捕获;

image-20200602181837692

  • 如果跨度为数据库操作,执行的SQL也会被自动记录。
image-20200602163316474

*

4. 性能剖析

追踪功能展示出的跨度是服务调用粒度的,如果要看应用实时的堆栈信息,可以选择性能剖析功能。

  • 新建分析任务;

  • 选指定的服务和端点作为分析对象;

  • 设定采样频率和次数;

注意: 如果端点的响应时间小于监控间隔,可能会导致采样分析失败。

image-20200602164824443

新建任务后,SW将开始采集应用的实时堆栈信息。采样结束后,用户点击分析即可查看具体的堆栈信息。

  1. 点击跨度右侧的“查看”,可以看到调用链的具体详情;

  2. 跨度目录下方是SW收集到的具体进程堆栈信息和耗时情况。

image-20200602165038016

需要提醒的时候,性能剖析功能因为要实时高频率收集服务的JVM堆栈信息,对于服务本身有一定的性能消耗,只适用于耗时端点的行为分析。

5. 指标对比

当用户需要对比不同端点指标的关联情况的话,可以使用性能对比功能。选择待对比的端点和指标,SW将会列出相同时间段的指标记录。如下图中,两个端点虽然属于不同的应用,但是在响应时间的指标,表现出一定的关联性。实际上两个端点有依赖关系,一个响应时间变多,另一个也会变多。

image-20200602163921097
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342