jpOwl客户端是java语言编写而成,要求做到API简单、高可靠性能、无论在任何场景下客户端都不能影响各业务服务的性能。旨在为各业务线提供丰富的埋点功能与数据采集。
在收集数据方面使用ThreadLocal,为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。
如图,执行业务逻辑的时候,就会把此次请求对应的监控存放于ThreadContext中,ThreadContext其实是一个监控树的结构。最后业务线程执行结束时,将监控对象异步存入一个内存队列中,jpOwl有个消费线程将队列内的数据异步发送到第三方存储引擎。
价值
优势
jpOwl主要支持以下四种监控模型:
jpOwl监控系统将每次URL、Service的请求内部执行情况都封装为一个完整的消息树、消息树可能包括Transaction
、Event
、Heartbeat
、Metric
等信息。 完整的消息树
可视化消息树
分布式消息树【一台机器调用另外一台机器】
序列化和通信是整个客户端包括服务端性能里面很关键的一个环节
项目地址:github.com/jiangeeq/jp… 欢迎Star