DynaTrace是一款SaaS化的智能可观测性分析平台。其中涵盖如下场景的分析能力:
- 基础设施监控
- 应用与微服务监控
- 应用安全
- 数字化专家经验
- 商业分析
- 云自动化
通过DynaTrace的OneAgent等功能组建能全面了解服务所运行的环境。其中包括:Metric、Log、Trace,具有完整的分布式跟踪能力,可以在抓取到代码层面的运行时信息,自动构建出运行时的上下文信息,将实体关系和用户体验以及用户的行为数据较好的关联起来。在实现服务的可观测性这个场景中,DynaTrace提供了一系列的工具和能力:
- OneAgent:
- 最核心的能力在于,“Single Hands-Free” Agent,自动的进行全栈的监控数据采集,并且规范所有采集数据的规范格式,便于后期的可视化和分析;
- PurePath:
- 强大的可视化能力,从端到端跟踪和代码级的洞察;
- SmartScape:
- 交互式可视化每一层中所有应用程序组件之间的动态关系;
- Davis AI incl. AIOps:
- 单独抽象出来一个以人工智能为基础的模块,自动处理数十亿个依赖关系间的事件,给出准确的答案;
- HyperScale:
- 服务具有较好的弹性,支持更多的设备状态的采集和多云数据的接入;
下图是一张来自G2网站关于AIOps平台各位玩家的段位:DynaTrace、AppDynamics、Splunk Enterprise、PagerDuty、DataDog、LogicMonitor、Instana、Splunk Cloud、BigPanda、Micro Focus Operations Bridge等。
PS:其中G2网站(https://www.g2.com/)是一个海外专业的软件测评机构,这里面的反馈大多来自真实的企业用户而非国内的简单机评师。
DynaTrace部署
01
Dynatrace Managed
基本组件:
- 一个或者多个Dynatrace实例
- 一个或者多个Dynatrace监控环境(OneAgent)
- 一个集群控制台
安装组件:
- Dynatrace Server
- Cassandra
- Elasticsearch
- An embedded ActiveGate
- NGINX
任务控制
- 使用与计费信息
- 集群健康度 / 集群事件库
- 服务的启动与停止
- 增加或删除实例
- ActiveGate 注册
- 集群设置
- 软件更新
02
Dynatrace OneAgent
OneAgent 平台与能力矩阵
代码语言:javascript复制https://www.dynatrace.com/support/help/technology-support/oneagent-platform-and-capability-support-matrix/
OneAgent SDK
代码语言:javascript复制https://www.dynatrace.com/support/help/extend-dynatrace/oneagent-sdk/
https://www.dynatrace.com/news/blog/extend-ai-based-root-cause-analysis-with-oneagent-sdk/
03
Dynatrace ActiveGate
ActiveGate在Dynatrace OneAgent和Dynatrace群集之间充当代理,可以安装在Windows或Linux上。Dynatrace支持两种类型的ActiveGate,环境ActiveGate和集群ActiveGate。如果您使用dynatracesaas,则只需安装环境ActiveGate。Dynatrace管理的部署通常需要两种ActiveGate类型,尽管Dynatrace管理的最重要的类型是集群ActiveGate。
04
Network Zones
网络区域是表示网络结构的动态跟踪实体。它们帮助您高效地路由流量,避免跨数据中心和网络区域的不必要流量。
04
Integrations
Dynatrace提供与Dynatrace监控模块、第三方问题通知系统以及扩展Dynatrace平台功能的部署自动化和测试自动化框架的集成。
功能特征
这里罗列了DynaTrace的提供的基本功能,涵盖了:应用服务监控、基础设施服务监控、组件监控以及如何维护元数据和接受指标数据、并定义指标数据的能力。
Application Security | Real User Monitoring | Synthetic Monitoring |
---|---|---|
Data privacy and security | Transactions and services | Databases |
Diagnostics | Process groups | Hosts |
Log Monitoring | Networks | Dashboards and reports |
Davis Assistant | Problem detection and analysis | Smartscape |
Tags and Metadata | Management Zones | User Management and SSO |
Metrics | Service-Level objectives |
针对上述的功能特性,我们选取其中几个点着重讨论下:
01
Log Monitoring (日志监控)
使用Dynatrace日志监视,您可以直接访问系统所有任务关键型进程的日志内容。搜索您感兴趣的特定日志消息很容易。日志内容可以根据关键字或时间段进行过滤。您甚至可以同时分析多个日志文件,即使日志文件存储在多个主机上。最重要的是,Dynatrace人工智能会自动将相关日志消息与它在您的环境中检测到的任何问题关联起来。然后将与问题相关的相关日志消息分解到问题根本原因分析中。要启用Dynatrace日志监视,只需确保您运行的是最新版本的Dynatrace。所有来自重要进程的新日志内容都将被自动检测和监视。无需将日志内容复制或导出到外部存储以方便分析。
02
接入日志问题分析
当Dynatrace检测到某个进程是检测到的问题的根本原因时,相应的问题页面上将显示“分析进程日志”链接。使用日志查看器,您可以直接分析日志内容并查找有问题的日志消息,这些消息将帮助您了解在监视的进程中检测到的问题的根本原因。
03
浏览流程日志
日志查看器使您能够浏览流程日志,手动选择单个日志进行特殊分析。或者,可以使用关键字搜索和筛选在选定的进程日志内容中进行搜索。可以保存搜索查询以供以后重用。您甚至可以选择将日志结果以原始形式或聚合形式返回给您。
04
日志搜索
Dynatrace搜索查询语言可扩展且易于学习,使您能够过滤除感兴趣的日志行以外的所有日志行。
05
日志转指标
日志监视使您能够基于监视的日志创建度量。有了这样一个度量,您可以让Dynatrace连续扫描监视的日志,并在仪表板上显示该度量的图表,以便在自定义度量中发生的任何模式更改都清晰可见。
06
标记与元数据
Dynatrace OneAgent会自动发现环境中的组件,例如进程组、服务和实际用户应用程序。不仅可以自动发现这些实体,还可以准确地识别它们的底层技术(例如,apachehttpserver、ibmwebsphere等等)。作为自动检测的一部分,Dynatrace还可以发现网络拓扑。一旦流量被监控,Dynatrace还会检测负载平衡器和代理。此外,Dynatrace支持第三方集成,从而使用来自AWS、VMWare、Azure、OpenStack等的拓扑和监视信息来增强这些数据。
然而,管理如此庞大的信息量和组织如此庞大的监控环境是一个真正的挑战。为了有效地应对这一挑战,Dynatrace支持标记和元数据。标记和元数据使您能够以有意义的方式组织受监视的环境。Dynatrace中的标记基本上是标签或标记,而元数据是任何受监视实体固有的键值对。元数据主要用于定义实体的额外信息,而标记则用于组织实体。还可以基于元数据创建标记。一般来说,尽管标记和元数据密切相关,但它们是不同的概念,并且以不同的方式创建和使用。
元数据是在启动或发现受监视实体期间检测到的,并且在Dynatrace中是不可变的。在DynaTrace系统中针对不同的系统环境进行了不同的Meta和Tag的管理和映射,下面枚举一些可以基于自动发现得到的一些属性信息:
- 服务属性
Custom service class name | Database name | Database topology |
---|---|---|
Database vendor | Detected service name | Endpoint path |
Public domain name | Service name | Service port |
Service tags | Web application ID | Web context root |
Web server host | Web server name | Web service name |
Web service namespace |
- 流程属性
Apache Spark master IP address | Apache configuration path | Azure host name of process |
---|---|---|
Azure site name of process | Catalina base | Catalina home |
Cloud Foundry application | Cloud Foundry instance index | Cloud Foundry space |
Cloud Foundry space ID | ColdFusion JVM configuration file | ColdFusion service name |
Detected group name | Detected process name | Docker container name |
Docker image name | Dotnet command | Dynatrace custom cluster ID |
Dynatrace custom node ID | Elasticsearch cluster name | Elasticsearch node name |
EXE name | EXE path | GlassFish domain name |
GlassFish instance name | IIS application pool | IIS role name |
JBoss home | JBoss mode | JBoss server name |
Java JAR file | Java JAR path | Java main class |
Kubernetes base pod name | Kubernetes container name | Kubernetes full pod name |
Kubernetes namespace | Kubernetes pod uid | Listen port |
Node.js application name | Node.js script name | Process group name |
Process name | Ruby application root path | Ruby script path |
Varnish instance name | WebLogic home | WebLogic name |
WebSphere cell name | WebSphere cluster name | WebSphere node name |
WebSphere server name |
- 机器属性
AWS availability zone | Azure SKU | Azure compute mode |
---|---|---|
Azure web application host name | Azure web application site name | Cloud type |
Detected AWS Availability Zone | Detected host name | EC2 Instance ID |
Host IP address | Host group name | Host name |
Host tags | Hypervisor type | Local EC2 host name |
OS type | OS version | PaaS type |
Public EC2 host name |
Davis
Davis是Dynatrace中基于AI的根因推理引擎,它分析一切(包括复杂It环境中的所有关系和依赖关系)以提供答案,而不仅仅是数据。Davis告诉您何时出现问题、问题对业务的影响以及问题的根本原因,以便您可以快速解决问题,包括通过与CI/CD工具集成进行自动修复。
Davis-AI通过实时拓扑图来理解根因
一旦部署,OneAgent会自动映射您的整个数字生态系统,以创建一个垂直和水平的拓扑系统。它可以即时从广泛的来源实时捕获数据,并将数百万的服务、流程和,以及构成您独特环境的依赖关系。这使Davis能够同时了解每个数字实体之间的每一种关系。
Davis能立即发现并理解异常情况
Davis会自动建立并不断更新整个数字生态系统的性能基线,并随着情况的变化进行动态调整。因此,当出现问题时,Davis会立即发现问题并提供出错的背景信息。它会立即显示业务影响并相应地确定问题的优先级,并提供指导以帮助团队快速解决问题。
Davis全程跟踪从底层服务到应用程序
Davis遍历了多云、混合云和内部部署环境中每个实体的垂直拓扑图。它显示了从数据中心和主机到容器和服务,一直到云服务和移动应用程序的关系和依赖关系。
Davis实时分析分布式事务
虽然其他平台只存储和可视化您的事务,但Davis理解这些事务。PurePath技术独特地捕获和分析端到端的每个事务的多维分布式跟踪,包括来自浏览器、移动设备、,以及跨应用程序技术堆栈的每一层的web服务。
Davis试图从代码角度去理解整个系统
Davis的持续分析深入到了表面之下,以了解您的应用程序和服务,直至代码级别。因此,Davis知道问题影响的每个实体,并通过关键指标支持这些见解,就像用户受到影响和业务受到影响一样,这使开发人员能够解决问题,而无需重现错误。
Davis指出了错误的确切原因
Davis不仅能找到确切的根本原因,还能立即提供有价值的上下文。您将知道问题是由资源瓶颈还是部署更改造成的,甚至知道是谁在幕后操纵。您可以重播问题,以充分了解问题发生的原因以及如何解决问题。
Davis可以量化业务的影响
Davis能够访问比可观察性解决方案更精确的数据,并且能够理解服务器端问题对实际最终用户体验的影响,甚至是对单个用户操作的影响。Davis知道影响大量用户或远程服务的问题并对其进行优先排序,Davis知道什么时候用不相关的影响来抑制误报,因此,当每分钟374个用户受到严重影响时,Davis会发送一个警报,而不是大量的警报,或者当多个CPU达到100%但没有用户受到影响时,Davis会让你睡觉。
Davis服务可以自动地随着你业务规模而进行弹性的扩容
问题的检测和分析
Dynatrace使用一个复杂的AI因果引擎Davis,自动检测应用程序、服务和基础架构中的性能异常。Dynatrace检测到的问题用于报告和警告异常情况,例如性能下降、功能不正确或缺乏可用性(即问题表示基线系统性能异常)。问题已经定义了生命周期,并实时更新所有传入事件和发现。一旦检测到问题,它就会列在问题提要中。
01
事件和问题
问题可能是单个事件或多个事件的结果,在复杂环境中通常是这样。为了防止此类环境中相关事件出现大量看似无关的问题警报,Dynatrace AI将所有共享相同根本原因的事件关联到一个单一的可跟踪问题中。此方法防止事件和警报垃圾邮件。事件表示不同类型的单个事件,例如度量阈值违背、基线降级或时间点事件,例如进程崩溃。Dynatrace还检测和处理信息事件,例如新的软件部署、配置更改和其他事件类型。
02
影响和根因分析
对于每个检测到的问题,Dynatrace都会调查问题的影响和根本原因。借助可视解决路径(为影响多个基础结构组件的所有问题提供),您甚至可以重放导致任何给定问题并与之相关的检测到的事件序列。Dynatrace提供了两个层次的影响分析:直接影响分析(direct impact analysis),详细说明问题对用户体验的影响;业务影响分析(business impact analysis),重点确定问题对数字业务成功的影响(例如,如果您的网站无法再处理新订单)。
03
问题的提出与评估
Dynatrace持续监视应用程序、服务和基础设施的各个方面的性能,以自动学习环境中每个组件的所有基线度量和总体运行状况,包括应用程序和服务的响应时间。自动考虑地理位置、浏览器类型、操作系统、连接带宽和用户操作等变量。这种智能自动化基线允许Dynatrace在高度细粒度级别检测异常,并实时通知您检测到的问题。您可以通过调整问题检测的灵敏度或在必要时定义自己的静态阈值来自定义通过自动基线生成的阈值。
04
通知和报警
通过Dynatrace移动应用程序,您可以接收推送到首选移动设备的通知,并快速了解Dynatrace检测到的所有问题。您还可以根据检测到的问题的严重性、客户影响、关联的标记、持续时间设置细粒度警报筛选规则。最后,您可以定义不生成警报的维护窗口。
问题的定位
Dynatrace根据定义的阈值连续测量传入流量级别,以确定检测到的减速或错误率增加何时证明生成新问题事件是合理的。应用程序和服务的快速增长的响应时间退化是基于5分钟的滑动时间间隔来评估的。根据15分钟的时间间隔评估缓慢降解的响应时间降解。
01
阈值检测
自动基线:多维基线自动检测随时间变化的单个参考值。自动基线参考值用于处理应用程序或服务响应时间、错误率和负载中的动态更改。
内置静态阈值:Dynatrace对所有基础结构事件使用内置静态阈值(例如,检测高CPU、低磁盘空间或低内存)。
使用自动基线引发事件的方法与用于静态阈值的方法完全不同。静态阈值提供了一种简单而直接的方法来定义基线,它可以立即工作而不需要学习周期。由于以下缺点,这类告警会带来很多问题:
- 为每个服务方法或用户操作设置静态阈值需要太多的手动工作。
- 为动态服务设置静态阈值可能很有挑战性。
- 他们不适应不断变化的环境。
因此,Dynatrace应用人工智能开发了一种智能、自动化、多维的基线方法。与静态阈值相反,这种方法是现成的,不需要手动配置阈值,最重要的是,它自动适应流量模式的变化。
此外,正如您在上面的示例中所看到的,Dynatrace异常检测阈值设置允许您指定在Davis(Dynatrace AI因果引擎)发出与异常相关的问题警报之前,每分钟应观察多少操作。此设置允许您禁用低流量应用程序和服务的警报基线,而低流量应用程序的警报通常会导致不必要的警报。除了自动检测所有应用程序、服务和正在运行的进程之外,Dynatrace还监视您的开发和测试服务,甚至包括Jenkins之类的构建进程。在Davis无法为此类服务收集足够的统计相关数据的情况下,自动基线不是异常检测的最佳方法。对于开发团队更了解的情况,Dynatrace提供了固定的阈值。固定阈值允许您通过设置不超过的响应时间和错误率的硬限制来否决多维基线。您可以为全局级别的服务和应用程序或特定应用程序和服务实例指定固定阈值。
02
根因分析
一旦检测到问题,您可以在问题的概述页面上直接分析其后果。Dynatrace提供了直接影响分析和业务影响分析的功能。此外,在问题的概述页面上,可以分析问题的根本原因。为了确定问题的根本原因,Dynatrace不仅依赖于时间相关性,而且采用上下文感知的方法来检测跨时间、进程、主机、服务、应用程序以及垂直和水平拓扑监视视角的相互依赖的事件。以景涉及的问题的根本原因是基础结构层中的性能事件
Dynatrace检测到基础架构级性能事件。为跟踪目的创建了一个新问题,并通过Dynatrace移动应用程序发出通知。
- 几分钟后,基础设施问题导致应用程序的一个服务出现性能下降问题。
- 更多的服务级别性能降级问题开始出现。因此,一开始只是一个孤立的基础设施问题,现在已经发展成一系列服务级别问题,每个问题的根源都在基础设施层的原始事件中。
- 最终,服务级别问题开始影响通过桌面或移动浏览器与应用程序交互的客户的用户体验。在问题生命周期的这一点上,应用程序问题的一个根本原因在基础结构层,另一个根本原因在服务层。
由于Dynatrace了解环境中的所有依赖关系,因此它将客户遇到的性能下降问题与基础结构层中的原始性能问题关联起来,从而促进快速解决问题。
03
问题概览
每个问题概述页面由三个主要部分组成(参见下面的示例):
- 顶部部分包括受问题影响的应用程序、服务和/或基础结构组件的数量。
- 左侧的“影响分析”部分包含有关问题直接后果的详细信息。它还可以提供有关问题对业务影响的信息。
- 右侧的根本原因分析部分包含有关问题根本原因的详细信息。
04
上下文导航
一旦检测到问题,“问题概述”页面将在页面顶部提供受影响组件的快速摘要(请参见下面的示例)。
- 开始对检测到的问题进行详细的代码级分析,请单击受影响的组件(请参见下面示例中导致此问题的请求部分中的标注)。
- 当您完成所提供的分析时,您将保持在检测到的问题的上下文中。分析时间框架保持不变,这样您就可以了解在问题发生之前和发生期间在您的环境中发生的一切(请参见下面示例中右上角的分析时间框架)。通过这种方式,您可以分析度量值和在问题时间段内处于活动状态的已启用筛选器(见下文)。
- 问题标题总结了Davis(Dynatrace AI因果引擎)在所选组件上检测到的内容,页面的红色标记部分显示哪些度量和服务方法仍在正常操作模式之外。在下面的示例中,某些服务方法比其他服务方法恢复得更快,并以绿色标记。
因为检测到的问题的所有信息不能在一个页面上显示,Dynatrace通过提供这样的导航提示来指导您。例如,单击服务方法services/BookingService/storeBooking(见上文)上的High failure rate 100%提示,将显示问题时间段内该特定服务方法的所有失败请求的图表。
单击故障率图表以分析出现问题之前的所有错误。
总结
DynaTrace的AIOps能力总结
- DynaTrace是一款完整度非常高的SaaS服务,真正的做到,简单接入,开箱即用,自动的适配数据模型,基于适配的模型完成后续的分析和诊断功能。
- DynaTrace通过OneAgent方式解决了数据采集时数据感知的问题,采集出完整的Log、Metric、Trace数据,并且能适配对应的Schema,为后续的智能分析和诊断提供了完整的素材
- DynaTrace在进行问题检测时使用的较为通用的自动基线的异常检测算法,能大大提高静态阈值检测的准确率和召回率,适应范围更加广泛
- DynaTrace对系统中发现的事件进行了不同维度的抽象:Incident、Event、Problem,通过对系统中观测实体的抽象,针对不同的监控实体内置了不同的检测事件,通过两种跟踪手段(基于时间维度的事件关联和基于上下文的事件关联)进行准确的分析,可以准确的了解到系统中某个问题(Problem)影响了多少个客户的请求,影响了多少长时间等。
- 在进几个版本中提供了较为丰富的API接口,可以更好的服务自定义接入的业务的场景需求