Dynatrace系列之- 如何发现和分析问题
Dynatrace用Problem(问题)表示异常情况,即偏离了正常行为或状态。例如某个服务速度变慢或某个用户登录应用速度变慢。每当检测到问题时,Dynatrace都会引发一个特定的problem event(问题事件)来表示此类异常。
请注意,您环境中新检测到的异常事件并不一定会立即引发一个新的问题(Problem)。Dynatrace抛出的问题(Problem)通常带有根本原因分析。为了确定问题的根本原因,Dynatrace采用了一种上下文感知的方法来检测一系列相互依赖的事件。Dynatrace会去分析相应时间段内涉及到的所有主机,所有进程,所有服务,所有应用程序以及他们之间纵向横向的依赖关系。只有通过这种上下文感知的方法,才最可能查明问题发生的真正根本原因。
问题检测
为了确定在什么时间点产生新problem event(问题事件)更合理,Dynatrace 会根据定义的阈值连续不停地评估传入的数据。通过这种方法来保证生成准确的响应时间退化和错误率上升的新problem event(问题事件)。对于应用和服务来说,急速的响应时间退化是根据5分钟时间段来评估的,慢速的响应时间退化是根据15分钟时间段来评估。
理解阈值
Dynatrace使用两种类型的阈值:
自动基线:
多维度基线自动检测随时间变化的各个参考值。自动基线参考值用于应对应用程序或服务“响应时间”,“错误率”和“交易量”中的动态变化。
内置静态阈值:
Dynatrace对所有基础架构相关的事件使用内置静态阈值(例如,检测CPU占用过多,磁盘空间不足或内存不足)。【注:此处最新版本中将会有改变,基础架构相关的事件将可以采用自动基线机制】
基于自动基线触发事件的机制与基于静态阈值完全不同。静态阈值提供了一种简单明了的方法,不需要学习时间就可以立即工作。但是,由于以下缺点,这种方法是不明智的:
- 缺点1:为每种服务或用户操作设置静态阈值需要大量的人工。
- 缺点2:为动态服务设置静态阈值可能具有挑战性。
- 缺点3:无法适应不断变化的环境。
因此,Dynatrace使用AI来开发一种智能的,自动化的多维基线方法。与静态阈值相反,此方法无需使用手动配置阈值即可立即使用,最重要的是,可自动适应流量模式的变化。
请注意,Dynatrace允许您通过调整静态阈值或偏离自动基线值来调整问题检测的敏感性。
问题分析
检测到问题后,您可以在问题的概述页面上直接分析其后果。Dynatrace提供了直接影响分析和业务影响分析的功能。另外,在问题的概述页面上,您可以分析问题的根本原因。
根本原因分析
为了确定问题的根本原因,Dynatrace不仅依赖于时间相关性,还遵循上下文感知的方法来检测跨时间,进程,主机,服务,应用程序以及在垂直和水平拓扑监控视角中相互依赖的事件。
下面是一个问题(Problem)的示意图,该问题的根本原因是基础结构层中的性能事件。
-
Dynatrace检测到基础结构级别的性能事件。将创建一个新问题以进行跟踪,并通过Dynatrace移动应用程序发送通知。
-
几分钟后,基础结构问题导致应用程序服务之一出现性能下降问题。
-
其他服务级别的性能下降问题开始出现。因此,最初从一个孤立的仅基础架构的问题开始,已经发展成为一系列服务级别的问题,每个问题的根本原因都在于基础结构层的原始事件。
-
最终,服务级别的问题开始影响通过桌面或移动浏览器与您的应用程序进行交互的客户的用户体验。在问题生命周期的这一个时间点上,您遇到了一个应用程序问题,其中一个根本原因在基础架构层,而另一个根本原因在服务层。
因为Dynatrace可以了解您环境中的所有依赖关系,所以可以将客户遇到的性能下降问题与基础结构层中的原始性能问题相关联,从而有助于快速解决问题。
问题告警
在检测到异常后,Dynatrace可以生成告警,以通知负责人员出现的问题。Dynatrace允许您根据严重性,客户影响,关联的标签或检测到的问题的持续时间来设置细粒度的警报过滤规则。这些规则实际上使您可以定义警报配置文件。通过警报配置文件,您还可以与第三方消息系统(如Slack,HipChat和PagerDuty)建立过滤后的问题通知集成。