中间件增强框架之InterceptFramework

发布时间:2020-07-07 01:48:54 作者:宜信技术
来源:网络 阅读:4333

一、前言

在智能运维中,应用服务所使用的组件及JAR包等相关信息非常重要,这些信息能够清晰地描绘一个应用服务的骨架,我们称这些信息为应用画像。在UAVStack中,中间件增强框架(MOF)下的InterceptFramework可以在应用启动过程中获取画像信息。本文主要介绍InterceptFramework的架构原理和在此基础上实现的应用画像数据采集与存储。

二、整体架构

中间件增强框架之InterceptFramework

2.1 关键技术

2.2 关键类及功能

2.3 拦截之前的准备

2.4 具体的拦截逻辑

在应用启动过程中的特定生命周期,之前植入的代码拦截逻辑开始执行InterceptSupport的doIntercept方法,遍历已注册的Listener监听器。每个监听器都继承自InterceptEventListener类。不同的子Listener对相应类型的画像采集处理:AppProfilingListener负责监听所有服务画像事件,AppFrkHookFactoryListener负责监听客户端画像事件。

三、架构说明

四、关键类说明

五、画像数据

画像数据即静态数据,是在进程启动时即可得到的数据,包括操作系统相关的信息、程序相关的信息、程序启动后相关的初始化信息。

中间件增强框架之InterceptFramework

画像数据主要包括服务画像、溯源感知画像和客户端画像三部分,如上图所示。以下分别从这三个方面介绍画像采集:

5.1 服务画像采集

中间件增强框架之InterceptFramework

服务画像描述了服务本体的信息,包括应用唯一标识(AppID)、服务名(Service ID)、服务实例的URI、服务接口的URI、服务接口的元数据(类、方法、入参出参、注解、部署描述符)。

以Tomcat为例,应用的启动过程需要经过StandardContext的start方法。我们可以在此方法的最后植入代码逻辑进行拦截,通过拦截可以获取到以下信息:

服务画像除了获取以上信息外,还获取应用的日志路径和所用JAR包等信息。

5.2 溯源画像采集

中间件增强框架之InterceptFramework

溯源画像采集主要借助HTTP协议Header中的字段进行溯源,通过中间件劫持技术拦截Tomcat中StandardEngineValve的Invoke方法,获取溯源数据。

收集的数据有以下几种:

5.3 客户端画像采集

中间件增强框架之InterceptFramework

客户端画像通过对一系列常用中间件客户端进行劫持实现,目前已支持同步/异步http、数据库jdbc、redis(jedis,aredis,lettuce)、mongodb、rocketmq/rabbitmq/Kafka、ESClient等。

劫持通过javaassist字节码改写、动态代理等AOP技术,在客户端调用代码中嵌入特定处理逻辑,获取调用相关的信息,如调用地址、调用协议、调用结果等。

画像数据基于调用地址、访问协议、调用结果的特征提取来确定目标服务。

1)调用地址:以类URI格式表示

2)访问协议:某种访问动作。例如HTTP的POST、SQL插入、发送/订阅消息、Redis的hgethashall、Mongo的Collection操作等。

3)访问结果特征:服务的基础栈类型、是否集群,例如Nginx、Tomcat、Apache等。

与服务画像不同的是,客户端画像发生在具体客户端调用过程中,并非在应用的启动环节。

六、画像存储结构

画像存储按以下结构分层存储:

中间件增强框架之InterceptFramework

DataObserver提供了JMX和HTTP两种模式来暴露接口画像数据,这一点与实时数据类似,在我们MOF系列的兄弟篇《中间件增加框架之CaptureFramework》中已经详细介绍过,在此处不再赘述。

开源地址:开源地址:https://github.com/uavorg

作者:李兴胜

来源:宜信技术学院

推荐阅读:
  1. 消息中间件之ActiveMQ
  2. 深度学习入门之Pytorch 数据增强的实现

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

画像数据 fram ce

上一篇:关于js页面时间判断,和一些杂项

下一篇:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》