Kibana Observability 功能中的 APM UI,在主选单中包含了四个选项:
这四个功能贯串了整体 APM 的使用情境,以下我们将会各别介绍这四个功能的主要说明,以及使用的时机。
Service,是我们在 APM Agent 安装时,指定的一个设定值,也是代表我们某个应用程序或某个服务的名称,而 Kibana APM UI 也将 Service 定义成为一个主要的资料检视的分类方式,让我们能以 Service 的角度来检视 Infrastructure 中各服务的状态。
如上图在 Services 的 Overview 画面之中,我们会有以下几个部份:
Production
环境、Staging
环境、或是我们自己定义的其他环境,进行籂选。tag
来筛选,可以专注在某种身份的会员、或是某种类型的产品…等。在这个画面预设的排序方式,是照『健康状态』,把最不健康的排最前面,让我们优先掌握有问题的服务,而『健康状态』的判定方式,是依照 Machine Learning 的 anomaly detection (异常侦测) 的功能,所以 ML 的这个功能要设定启用才会有作用。
当我们点选某一个 Services 後,会进入这个 Service 自己的 Overview (总览) 画面,当中包含这个 Server 与效能、执行错误直接相关的
注意:这边我们在查阅的
Metrics
预设是Average
,但有时我们要分析效能状况时,有时会要去掉极度的数据,这时记得可以用这个功能选择95th percentile
或是99th percentile
。
至於每个服务细部检视的画面,都能再进一步查询这个服务的 Transactions
、Dependencies
、Errors
、Metrics
、Service Map
、Logs
,这部份可以从上方的 GIF 图档的动画查看。
Traces,让我们能检视某一个业务处理从头到尾的过程,也就是对应到我们先前介绍到的 Transaction (交易),中间的处理过程可能横跨多个 Services,能让我们做分散式追纵 (Distributed Tracing),同时也会把相同的 Transaction 给 group 在一起,进行相同行为 Transaction 之间的校能比较与分析。
Traces 的总览,会是以整体筛选条件底下,所有符合的 Transaction 全部一起排列出来,在这个画面预设的排序方式,是依照 Impact (影响程度),判定方式是依照最常使用以及反应时间最慢来决定影响的程度。
在 Traces 的列表中,点选其中一笔 Trace 的项目之後,其实就会进入到 Service 细部检视当中的 Transactions (交易) 的画面。
在这个画面中,我们可以分析这个 API 在某段时间 Throughtput 较高时,与前一天、前一周、前一个月的同一段时间相比较是否一样,也能从 Trace 的 Timeline 当中,查询 Transaction 底下相关的 Spans,可以看到这个处理横跨哪些服务,以及每个服务里面执行的细节,这些细节的处理占用了多少时间,并且在想要进行进一步调查时,可以透过 Investigate 进入 Elastic Observability 整合好的 Metrics 或是 Logs 的内容进行查看。
这部份列出的,是『服务』或『应用程序』,所使用到的其他元件或是第三方服务,像是资料库、外部的 HTTP 服务…等,并且让我们从这些 dependencies 来分析对效能的影响。
在 Dependencies 的细部检视的部份,让我们除了能观察这个 dependency 的效能数据,也会让我们查看他的 Upstream (上游) 服候的效能数据,能协助我们判断前後的影响关系,并且再进一步连结到 Service 细部检视的页面,进行查询所影响的 Transaction 是哪些,甚至查询实际执行的指令为何。
这个 Service Map 的检视方式,是协助我们能以视觉化的方式,查看整体 Infrastructure 的服务与元件之前的相依关系,能协助我们追纵问题时,更精准的关注在需要注意的路径上。
可以透过 Service Map 以视觉化的图形,查看整体 Infrastructure。
在 Abnormal Detection 有开启的情况下,有问题的服务,会被标示成红色,可以进一步进入 Machine Learning 页面查看。
或是可以针对某个服务进入 Dependency 或是 Service 的细部检视的页面,进行进一步的分析。
以上是使用 Kibana Observability 中的 APM UI 所提供的功能,里面的资料,是以 前一篇文章 所介绍的 APM Integration Testing 所产生的示范资料,在了解 Elastic APM 可以做到这些功能之後,下一篇我们将介绍进行自行架设的方式。
查看最新 Elasticsearch 或是 Elastic Stack 教育训练资讯: https://training.onedoggo.com
欢迎追踪我的 FB 粉丝页: 乔叔 - Elastic Stack 技术交流
不论是技术分享的文章、公开线上分享、或是实体课程资讯,都会在粉丝页通知大家哦!
>>: Day19 - this&Object Prototypes Ch3 Objects - Iteration
NPM是Node Package Manager的缩写,中文直接翻的话就是Node包管理工具, 比较...
这篇程序码在 https://github.com/DanSnow/ironman-2020/tr...
Day14 在 Space Invaders 的游戏设计中, Enemy 的移动逻辑扮演了非常重要的...
开启新场景 有时会遇到要新增其他关卡或是有东西要测试时需要开另外一个新场景的情况就会需要开新场景,...
嗨呦大家好我是 Jasmine~脑袋总是胡思乱想停不下来的设计师一枚\(✪ω✪)/ 昏昏沈沈的礼拜一...