应用或服务级监控中有一个非常重要的概念–拓扑,拓扑反映了应用内多个服务之间的调用关系,这种拓扑与传统的网络拓扑存在明显区别,什么样的应用拓扑才是运维监控领域最有价值的拓扑呢?
那么我们如何来设计一个完善的应用拓扑呢?在开始之前我们先分析几种各具特色的应用拓扑。
可以发现,pinpoint应用拓扑与网络拓扑类似,关注的仍旧只是点与点之间的关系,没有体现事务的端到端处理过程,举个例子,从这个拓扑图中我们无法了解由FRONT-WEB经BACKEND-API调用Mysql的情况,我们只知道Mysql被BACKEND-API调用了79次,而不知道这79次的业务来源是FRONT-WEB还是BACKEND-WEB。如果我们需要这种粒度的分析,pinpoint应用拓扑就不能帮助到我们了。但同时我们需要注意到,这种拓扑逻辑简单,用户学习成本非常低,符合用户的一般认知。
与pinpoint应用拓扑相比,dynatrace应用拓扑从外观上有一个很明显的区别,它不再像是一个“拓扑图”,而像是一个“流程图”,事实上这正是因为dynatrace应用拓扑以端到端体现业务执行过程为核心而做的颠覆性设计,从名称上它也不在将至称为“map”或“topo”,而是“serviceFlow”。dynatrace应用拓扑有如下几个重要特点:
pinpoint应用拓扑和dynatrace应用拓扑代表了两种典型的拓扑逻辑,各有优劣:
综上,可以发现dynatrace这种类型的应用拓扑更加贴合应用或服务级监控,但其复杂度的提升导致其不适合简单的作为总览界面,如果采用该方式,仍需一个总览界面来全局的展示各个应用服务的整体状态。同时需要注意的是,dynatrace的这种应用拓扑大大增加了平台数据处理的复杂度,尤其是在数据量很大的情况下。
领取专属 10元无门槛券
私享最新 技术干货