可观测领域的王者Dynatrace的故障定位体验

简介: 本文对比了可观测性领域两大工具Databuff与Dynatrace的故障定位能力。基于17服务的微服务环境测试显示,Databuff在10个案例中准确率达90%,定位更精准、信息更全面;Dynatrace准确率60%,部分场景存在误判或信息缺失,整体表现逊色。

原文地址:https://databuff.com/resourceDetail/blog101

在可观测性领域,Dynatrace可以说是公认的老牌王者,而Databuff是这一领域的后起新秀,二者都具备较强的故障定位能力。

今天我们将进行一场测试,验证二者在故障定位能力上的差异。到底谁更胜一筹?请看下文。

1 测试环境介绍

测试系统EasyShopping,是一个包含17个业务服务的复杂微服务系统,部署在k8s平台上。

在这套系统中分别安装如下2个探针:

• DataBuff的One-Agent

• Dynatrace的One-Agent

服务拓扑

One-Agent安装完毕后,DataBuff的空间地图效果如下所示(体验地址 https://sandbox.databuff.com):

image.png

Dynatrace的空间地图效果如下所示

image.png

从展示效果上看,DataBuff相对更有条理一些。

2 故障定位体验

接下来我们将针对不同场景进行故障注入,分别测试二者的故障定位效果。

内容太长,先看结论!

  • DataBuff定位效果

    • 定位准确:9个案例

    • 定位错误:1个案例

  • Dynatrace定位效果

    • 定位准确:6个案例(每个案例或多或少不够精准)

    • 定位错误:4个案例

测试结果表

image.png

2.1 案例1-DB客户端-SQL-所有实例-耗时故障

对service-g::k8s的所有实例注入某个SQL耗时突增的故障

DataBuff的定位如下所示:

image.png

10点06定位到故障,故障详情如下所示

image.png

定位给出如下4点信息:

  • 故障服务:service-g::k8s

  • 所有实例都有问题(没有给出实例就代表并不是单个实例的问题)

  • 仅仅某个SQL有问题:给出问题SQL为select * from tableA

  • 耗时突增的故障

Dynatrace的定位如下所示:

image.png

10:08定位到故障,比DataBuff晚了2min,产生了2个Problems(这里不太合理,其实应该是同一个故障),其中dcgl的故障详情如下所示
image.png

定位给出如下信息:

  • 所有实例都有问题(没有给出实例就代表并不是单个实例的问题)

  • 仅仅某个SQL有问题:给出问题SQL为select * from tableA

  • 耗时突增的故障

基本也算是定位到了,但是缺少故障树

2.2 案例2-DB客户端-SQL-单实例-错误故障

对service-g::k8s的单实例注入某个SQL错误的故障

DataBuff的定位如下所示:
image.png

10:35定位到故障,故障详情如下所示:
image.png

定位给出如下4点信息:

  • 故障服务:service-g::k8s

  • 单个实例有问题:实例10.42.1.22有问题

  • 仅仅某个SQL有问题:给出问题SQL为select * from tableA

  • 失败突增的故障

Dynatrace的定位如下所示:
image.png

最初是多个Problem,之后自动合并成了1个Problem,Problem详情如下所示

image.png
image.png

image.png

image.png
image.png

基本也定位到了是数据库dcgl错误率突增的故障,给出如下信息

  • dcgl的失败突增的故障

  • 定位到具体的SQL

但是没有定位到实例

2.3 案例3-DB客户端-Connection-所有实例-耗时故障

对service-g::k8s的所有实例注入DB连接池获取连接的耗时故障

DataBuff的定位如下所示:

image.png

image.png

定位给出如下3信息:

  • 故障服务:service-g::k8s

  • 所有实例都有问题(没有给出实例就代表并不是单个实例的问题)

  • 耗时突增的故障

Dynatrace没有定位到任何信息

image.png

2.4 案例4-接口级-Redis-客户端-command-所有实例-耗时故障

对service-g::k8s的所有实例的callRedis接口

注入Redis某个命令的访问耗时突增的故障

DataBuff的定位如下所示:

image.png

image.png

定位给出如下5信息:

  • 故障服务:service-g::k8s

  • callRedis接口有问题

  • 所有实例都有问题(没有给出实例就代表并不是单个实例的问题)

  • EXISTS命令有问题

  • 耗时突增的故障

Dynatrace的定位如下所示:

image.png

给出2个Problem(其实是1个故障)
image.png

image.png

并未定位到redis的某个命令故障,给出了service-g的callRedis接口有问题

2.5 案例5-Http-服务端-URL-状态码-单实例-错误故障

对service-j::k8s的某个实例的某个接口注入状态码508的错误故障

DataBuff的定位效果如下所示:
image.png
image.png

定位给出如下2个信息:

  • 故障服务:service-j::k8s

但是并未定位到错误率突增、状态码508、某个URL接口

Dynatrace的定位效果如下所示:
image.png
image.png
image.png
image.png

Dynatrace给出如下3个信息:

  • 故障服务:service-j::k8s

  • 某个URL错误

  • 错误率突增

在这个案例中,DataBuff在耗时和错误同时出现时还是有些分析不佳的地方

2.6 案例6-Http-服务端-URL-数据包大小-所有实例-耗时故障

对service-j::k8s的所有实例的某个URL注入数据包大小突增进而导致传输延迟的耗时故障

DataBuff的定位效果如下所示:
image.png

image.png

给出如下4个信息:

  • 故障服务:service-j::k8s

  • 某个URL错误 POST /postMethodB9

  • 数据包大小突增

  • 平均响应时间突增

Dynatrace的定位效果如下所示:
image.png

和上一个故障合并在一起了(理论上是不同的故障,Dynatrace还是不能正确区分)

image.png

2.7 案例7-Http-客户端-URL-所有实例-耗时故障

对service-j::k8s的所有实例的访问服务端servce-k::k8s的某个URL注入耗时突增的故障

DataBuff的定位效果如下所示:
image.png

image.png

给出如下3个信息:

  • 故障服务:service-j::k8s

  • 访问下游service-k::k8s的某个URL POST /postMethodB9的问题

  • 耗时突增

Dynatrace的定位效果如下所示:
image.png

image.png

给出如下3个信息:

  • 故障服务:service-j::k8s

  • 自身接口/postMethodB9的问题,但是并没有给出作为客户端去访问service-k的某个URL导致

  • 耗时突增

2.8 案例8-Http-客户端-URL相互影响-所有实例-耗时故障

对service-j::k8s的所有实例的访问服务端servce-k::k8s的某个URL注入耗时突增的故障

DataBuff的定位效果如下所示:

image.png
image.png

给出如下3个信息:

  • 故障服务:service-p::k8s

  • 访问下游service-g::k8s的多个URL都耗时突增

  • 其中根因URL是POST /postMethodB5(它耗时过长,占用Http连接池,导致其他URL接口被迫等待)

Dynatrace的定位效果如下所示:
image.png

image.png

定位基本不对

2.9 案例9-Kafka-Producer端-Partition-所有实例-耗时故障

对service-f::k8s的所有实例注入某个Partition的耗时故障

DataBuff的定位效果如下所示:

image.png

image.png

给出如下3个信息:

  • 故障服务:service-f::k8s

  • 某个topic的某个partition出现了问题

  • 耗时突增的故障

Dynatrace的定位效果如下所示:

image.png

没有定位到任何信息,实际服务有问题

image.png

2.10 案例10-ES-客户端-Index-Method-所有实例-耗时故障

对service-g::k8s的所有实例注入某个index某种method的耗时故障

DataBuff的定位效果如下所示:
image.png
image.png

给出如下3个信息:

  • 故障服务:service-g::k8s

  • 针对远程es服务的my_index_2索引的HEAD方法调用出现问题

  • 耗时突增的故障

Dynatrace的定位效果如下所示:

image.png

结果并不正确。

相关文章
|
2月前
|
机器学习/深度学习 人工智能 前端开发
解决推理能力瓶颈,用因果推理提升LLM智能决策
从ChatGPT到AI智能体,标志着AI从对话走向自主执行复杂任务的能力跃迁。AI智能体可完成销售、旅行规划、外卖点餐等多场景任务,但其发展受限于大语言模型(LLM)的推理能力。LLM依赖统计相关性,缺乏对因果关系的理解,导致在非确定性任务中表现不佳。结合因果推理与内省机制,有望突破当前AI智能体的推理瓶颈,提升其决策准确性与自主性。
266 6
解决推理能力瓶颈,用因果推理提升LLM智能决策
|
存储 Go C语言
如何用Go开发eBPF程序
【2月更文挑战第7天】
|
2月前
|
敏捷开发 人工智能 自动驾驶
AI大模型入门第四篇:借助RAG实现精准用例自动生成!
测试开发是否总被用例维护、漏测风险和文档滞后困扰?RAG技术让AI实时解读最新需求,自动生成精准测试用例,动态对齐线上数据,节省70%维护成本,助你告别手工“填坑”,高效应对需求变化。
|
JavaScript
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI,操作上更加亲民和接地气。
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
|
1月前
|
人工智能 监控 算法
《动漫游戏角色动作优化:手绘帧与物理模拟的协同突破实践》
本文围绕2D横版动漫格斗游戏开发,聚焦角色动作“手绘帧与物理模拟融合”的核心技术实践。针对动作僵硬、同步精度低、形变夸张难落地、性能瓶颈、风格与物理冲突、场景交互脱节六大问题,分别提出骨骼控制器联动、关键帧锚定、手绘形变模板适配、分层物理计算、动漫风格物理参数库、动作与场景物体绑定六大解决方案。通过差异化参数设置、动态层级切换等细节优化,既保留动漫审美张力,又解决技术痛点,还延伸应用至攀爬、游泳场景,为动漫游戏动作开发提供实用技术参考,兼顾效果、性能与用户体验。
641 3
|
16天前
|
存储 算法 Java
深入理解JVM:内存管理与垃圾回收机制探索
JVM是Java程序的运行核心,实现跨平台、自动内存管理与高效执行。其架构包括类加载、运行时数据区、执行引擎等模块。内存模型历经演变,JDK 8起以元空间替代永久代,优化GC性能。JVM通过分代回收机制,结合标记清除、复制、整理等算法,管理对象生命周期,提升系统稳定性与性能。
|
4月前
|
人工智能 数据可视化 安全
【保姆级教程】Dify+DeepSeek+MCP三件套:零门槛打造AI应用流水线,手把手实战教学!
本教程手把手教你用Dify+DeepSeek+MCP三件套零门槛搭建AI应用流水线:Dify提供可视化工作流编排,DeepSeek贡献128K长文本国产最强模型,MCP实现弹性部署。这套组合兼具低代码开发、高性能推理和灵活运维三大优势,助你快速落地企业级AI解决方案。
|
22天前
|
运维 算法 数据挖掘
【故障定位系列】基于DeepSeek的故障定位大揭秘
传统故障定位依赖专家经验与固定算法,难以应对复杂场景。引入DeepSeek大模型后,可凭借其强大推理与自适应能力,实现智能故障定位。通过“大模型+Agent”协同架构,大模型负责决策,Agent执行数据分析,既降低Token消耗,又保留智能化分析优势。未来,随着大模型理解与推理能力提升,故障定位将更高效、精准。
|
1月前
|
数据采集 关系型数据库 MySQL
如何从零开发一款 OneAgent
Databuff自研轻量级OneAgent,专为智能可观测时代打造。具备低资源占用、自动服务发现、SQL查询支持与采集即治理等特性,兼容多语言插件扩展,助力AI-Agent集成与全栈监控统一管理。
|
3月前
|
人工智能 自然语言处理 Java
从青铜到王者,DeepSeek+Spring AI 搭建 RAG 知识库
本文介绍了基于RAG(检索增强生成)技术构建知识库的原理与实现方法。RAG通过结合检索与生成模型,提升大语言模型在问答任务中的准确性与相关性,有效缓解“幻觉”问题。文章还详细讲解了如何利用DeepSeek与SpringAI搭建高效RAG系统,并提供了完整的Java代码示例,帮助开发者快速实现文档处理、向量存储与智能问答功能。适用于智能客服、内容生成、辅助决策等多个场景。
914 2