eBook

如何依托可观测能力三大支柱洞察一切

下载电子书 免费试用

概述


对软件而言,可观测能力是指对服务所产生的数据进行远程监测。

可观测能力划分为三个主要维度——指标、日志及分布式跟踪——即所谓的“可观测能力三大支柱”。得益于 OpenTelemetry 之类的项目推动了数据采集的标准化,再加上 W3C 跟踪背景信息,自带远程监测即将成为云原生软件不可或缺的特性。

下面介绍了 Dynatrace 如何运用可观测能力三大支柱和背景信息来实现自动化的问题检测和根源分析。

4 Pillars Observability

可观测能力的三大支柱——可自动地采集,无需更改代码

有了 Dynatrace,您只需安装一种代理就可以在每台被监测的主机上采集所有相关的高保真数据。Dynatrace 的 OneAgent 能够发现您在主机上运行的所有进程,其中包括容器内运行的动态微服务。OneAgent 还能基于它所发现的一切自动激活专门针对您技术栈的插装。新组件的插装在运行过程中自动完成,并且不需要更改代码。

指标


作为全栈式监测平台,Dynatrace 能对您环境中每一台由 OneAgent 监测的主机采集海量的指标。每个计算节点采集的指标数量一般约为 500 个,具体数量取决于您在主机上运行的技术种类。

Google Kubernetes Engine

除源自您主机的所有指标外,Dynatrace 还能针对服务和被监测应用的真实用户采集所有的重要关键性能指标,以及来自AWS、Azure、Kubernetes及 Pivotal 平台的云平台指标。总之,它可以绘制、分析您 Dynatrace 环境中数以千计的指标类型并据此发出警报。

分布式跟踪


EasyTravel Serviceflow

在微服务环境中,您会有数十个乃至数百个服务正在调用其他的服务。分布式跟踪能够弄清所有这些不同的服务如何相互衔接、您的请求如何经由它们。Dynatrace 可通过分布式跟踪自动生成服务流。

EasyTravel Frontend

分布式跟踪从一开始就是 Dynatrace 的核心组件,您不必更改任何代码。我们的分布式跟踪技术 Dynatrace PurePath 更是技高一筹,既能采集跟踪信息,又能采集代码级数据。分布式跟踪扩大到代码级执行树,其中包括 CPU 时间、挂起时间及网络 I/O 时间等有用信息。

Dynatrace Purepath

分布式跟踪有助于迅速定位导致问题的服务。但分布式跟踪在深入到代码以获取更多细节方面却无能为力。为此,您需要代码级可视化和 CPU 剖析功能。此外,OneAgent 还能采集有关背景和服务活动的信息,可用于 CPU 分析和方法热点分析。这些都由 OneAgent 自动插装完成,不需要更改代码。

Waterfall analysis

随着分布式跟踪日益普及,行业和社区有必要对它的某些方面进行标准化。为此我们也在 W3C 分布式跟踪工作组中主导着此项工作。您可以查看博文“采用 W3C 跟踪背景信息进行分布式跟踪以改进端到端可视化”来了解有关 W3C 跟踪背景信息的更多内容。

日志 (有些文章认为直方图是第三支柱,日志是第四支柱)


Processes Apache Tomcat

OneAgent 可自动发现日志文件并将它们纳入相应的主机或进程的背景信息之中,无需手工配置。所有被发现的日志文件在相应的进程组/进程或主机概览页面中列出。有关详细信息请见日志发现及支持的日志格式。

Processes Search

您可以跨多个被监测的日志查找文本模式,也可以基于这些文本模式出现的位置查找警报。

避免出现数据孤岛:背景信息是关键


采集可观测性数据固然正确,如果这种操作能像 OneAgent 那样自动进行,不需要更改代码或者繁琐的配置,那就会更加完美。但在绝大多数情况下,指标、跟踪信息及日志都按照数据孤岛的方式进行处理,它们之间没有关联,漫无目的地汇总在一起。

采集这些指标、日志及跟踪信息并提供报告的出发点是什么?如果不能获取这些可观测能力支柱之间的重要关系,就只能分别对指标、日志或跟踪信息进行分析,这对于瞬息万变、错综复杂环境中的问题根源分析而言是毫无意义的。

在信息孤岛中,您可能会收到服务 A 故障率增加的警报以及因进程 B 的 CPU 使用率上升而引发的警报。但您并不清楚这两个警报是否有关、会对您的用户造成怎样的影响。要想做更深入的分析,您就得在记录该问题的海量信息中查找为数不多的线索。这种大海捞针般的操作您只能靠运气了!

Metric Track Log

这里有什么秘诀?

实时拓扑发现和依赖关系映射能为您提供精准的解答。

Dynatrace 与其他的解决方案截然不同。Dynatrace 可通过 Smartscape 持续、自动地将数据映射到实时的依赖关系图中,显示所有实体的相互关系和依赖性,其中既有纵向的上下层级之间,也有横向的服务、进程及主机之间。所有采集到的跟踪信息、指标及日志文件均自动映射到与它们相关的被监测实体。

Three Pillars Observability

Metric Track Log

在右侧的示例中,Dynatrace 的人工智能技术自动跟踪并评估交易中的每个相关后台服务的健康状况,最终发现问题的根源在于 Golang 服务。

因此,Dynatrace 人工智能引擎在问题详情页的问题根源部分给出了 Golang 服务的整个纵向技术栈(见下图),并突出显示了所有的相关数据。只需点击一次,您就可以深入了解受影响的指标、跟踪信息及日志文件,可供您分析并修复问题。

各种未知情况可能会让您的业务毁于一旦。它们是尚未被发现、了解并监测的意想不到的问题。Dynatrace 可以自动监测您环境中的未知情况。我们的平台能够自动插装、采集高保真数据,提供实时的全栈依赖关系图,给出即时、精准的人工智能辅助解答,而不仅仅是相关性分析。

最终,您可以通过 Dynatrace 洞察一切!