监控系统如何做埋点,监控数据库和HTTP请求
【大咖·来了 第7期】10月24日晚8点寓目《智能导购对话呆板人实践》
JDBC做过java开拓的都知道JDBC是干什么的,RestApi着实就是http的挪用,http的挪用就是挪用第三方的处事的时辰,第三方的处事并不是在本身的体系范畴内,假如呈现不不变挂掉,对自身来说是不行控了,以是第三方处事而言对我们而言长短常的明感的。JDBC和RestApi的监控对体系来讲意义很大,数据库得多重要,在体系的内部举办监控更能精采的回响sql的执行机能。 (一)JDBC挪用拦截
哪些监控怼开拓运维来说最有效的。
字段范例描写sqltextsql语句paramsjson参数resultSizeint功效巨细urlvarchar数据库毗连路径userNamevarchar数据库用户名errortext非常仓库useTimeint用时
这些user,框架,毗连池,驱动都依靠jdbc,jdbc是一个什么对象?jdbc是一种类型,一堆接口构成的类型j2se,由驱动来实现的。servlet也是一种接口类型,是j2ee的类型,由tomcat,jetty等容器实现的。任任何一层都可以做为插桩的切入点,可是选用User 层、框架层、毗连池&数据源层、驱动层着实现是多样的,无法做到普适性。以是在此选用JDBC 作为插桩切入 点。
从上图可以说明出JDBC执行进程 1.从驱动获取毗连(Connection) 2.基于毗连构建预处理赏罚工具(prepareStatement) 3.执行SQL 4.读取功效集(ResultSet) 5.封锁开释毗连。 个中涉及工具构建逻辑如下: Driver==》Connection==》prepareStatement==》ResultSet (二)Http挪用拦截
许多时辰我们会挪用第三方API。好比:动静推送、短信发送、第三方付出接口等,由于处事是第三方提供,假如处事呈现机能或可用性题目对付我方而言不行控,以是这类接口的不变性是我们必要重点存眷的工具。 凡是这类接口会基于Http协议实现,所对Htpp协议监控,即实现了对第三方接口的监控。
1.user层:无法判定User详细执行要领,基于设置又做不到普适性。 2.Http协议层:能找到详细要领,也能做到普适性。必要对Http协议举办全面理会,并且Http协议为文本协议,理会难度更大,实现本钱居高。 3.专有SDK、与自界说封装的Http器材包,跟详细营业偶条约样无法做到普顺应。 4.java net URL 与 HttpClient 都是Http client 基于二者实现可以在必然水平上告竣我们的方针。
URL常用写法:
URL 装载执行进程:
个中涉及工具构建逻辑如下: URL==》URLStreamHandler==》URLConnection==》outPutStream、InputStream。 假如上述进程加一层静态署理即可监控这些工具全部的执行进程从而获得所需监控数据: URL==》Proxy(URLStreamHandler)==》Proxy(URLConnection)==》Proxy(outPutStream)、Proxy(InputStream)。
怎么样才气加上这层署理呢?其要害要领在于 通过静态署理的方法。 java.net.URL#setURLStreamHandlerFactory。该要领应承用户自界说URL协议实现.
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |