Dynatrace部分功能开源解决方案

Dynatrace是一个一体化平台能,提供有关应用性能、底层基础设施以及所有用户体验的数据,且无配置安装。在主机上安装OneAgent,Dynatrace 可以借助OneAgent掌握用户应用的状况。具备该能力的agent市面上暂时没有开源全栈的!!!

 

 

开源替代产品:

开源产品中netdata(https://github.com/netdata/netdata)具备一个agent监控的能力以及拥有自己的WebUI,在github上有49.1K的star,还是比较多的人选择这块开源产品做监控,但是netdata基本监控的都是性能数据,比如OS性能,Process流量以及性能数据,数据库中的Mysql基础性能数据

 

Dynatrace聚类sql

Dynatrace能将数据库sql抓取出来的,并做好了分类,这点确实非常厉害!!

市面上开源的能做到这点的工具以及解决方案如下

一、解析报文工具,将sql语句抓取出来

具备该能力的暂时只发现360的mysql-sniffer,地址为https://github.com/Qihoo360/mysql-sniffer,如果你的应用使用的数据是mysql,可以使用下该工具,但是这个工具依赖libpcap,如果应对高吞吐的应用,估计丢包的概率很大。

二、旁路模式抓取网络包并进行解析,推荐Suricata+ELK方案,github地址为https://github.com/OISF/suricata,对该工具进行二次开发研究数据库通信协议

三、开源的APM解决方案,在应用代码中植入相关代码以及服务agent,有部分局限性,例如Skywalking(https://github.com/apache/skywalking)或者java的elastic-apm-agent,对于抓取SQL server或者DB2中的sql对连接驱动是有要求的,官方原文:your JDBC driver is at least compiled for Java 1.4. Drivers compiled with a lower version are not supported. IBM DB2 db2jcc drivers are also not supported. Please update to db2jcc4

例如Elastic-APM-Agent,支持java/.net/python/nodejs/go/ruby/php等,架构图如下

下图为Kibana中APM的效果,这种展示局限在无法像dynatrace那样从用户的前端一个按钮一直跟踪到最后返回,只能展示单个API调用的详细情况

Service拓扑

服务拓扑图的生成,如果是有网络的flow数据,对于该图的生产就不是问题

开源抓取网络flow的解决方案,ntopng社区版(https://github.com/ntop/ntopng)或者suricata+ELK

事件跟踪

用户session跟踪

这个追踪应该是实际业务人员最关心的,通过监控手段将用户的行为轨迹记录下来,业务可以通过这些数据挖掘出更有价值的东西,比如线上商品交易平台,用户驻足的哪个商品最收欢迎之类的。这块的监控暂时也还没有研究明白

 

应用服务数据流

暂时还没研究清楚该图的生成

进程级别的网络监控

开源的进程级别监控有netdata能够实现这个效果

 

最后推荐一个网站给大家实现自己的APM监控,地址为https://openapm.io/landscape

总结:如果有钱直接上Dynatrace,如果差钱可以通过开源手段来实现自己的需求

posted @ 2020-10-28 11:18  hi龙卷风  阅读(1374)  评论(0编辑  收藏  举报