前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包

jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包

作者头像
蒋老湿
修改2019-12-09 14:38:48
6460
修改2019-12-09 14:38:48
举报
文章被收录于专栏:技术栈技术栈

设计架构

jpOwl客户端是java语言编写而成,要求做到API简单、高可靠性能、无论在任何场景下客户端都不能影响各业务服务的性能。旨在为各业务线提供丰富的埋点功能与数据采集。

在收集数据方面使用ThreadLocal,为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。

如图,执行业务逻辑的时候,就会把此次请求对应的监控存放于ThreadContext中,ThreadContext其实是一个监控树的结构。最后业务线程执行结束时,将监控对象异步存入一个内存队列中,jpOwl有个消费线程将队列内的数据异步发送到第三方存储引擎。

价值与优势

价值

  • 减少故障发现时间
  • 降低故障定位成本
  • 辅助应用程序优化
  • 监控数据是全量统计,jpOwl支持预计算数据
  • 链路数据是采样计算

优势

  • 实时处理:信息的价值会随时间锐减,所以收集信息需要迅速
  • 全量数据:全量采集指标数据,便于深度分析故障案例
  • 故障容忍:故障不影响业务正常运转、对业务透明
  • 高吞吐:海量监控数据的收集,需要高吞吐能力做保证

业务模型监控

jpOwl主要支持以下四种监控模型:

  • Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数。
  • Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小。
  • Heartbeat 表示程序内定期产生的统计信息, 如CPU利用率, 内存利用率, 连接池状态, 系统负载等。
  • Metric 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和,业务指标最低统计粒度为1分钟。

消息树

jpOwl监控系统将每次URL、Service的请求内部执行情况都封装为一个完整的消息树、消息树可能包括TransactionEventHeartbeatMetric等信息。 完整的消息树

可视化消息树

分布式消息树【一台机器调用另外一台机器】

API功能设计

  • 可记录一段代码的URL执行耗时,也可以是SQL的执行耗时
  • 可记录一段代码的抛出异常记录次数,或者一段逻辑的执行次数
  • 定期执行上报一些核心指标,jvm内存、gc等指标
  • 业务指标监控,比如监控订单数、交易额、支付成功率等
  • 声明式或者编程式的监控注入
  • 可随意指定第三方数据存储引擎
  • 支持日志级别的自动升降级
  • 可动态指定监控日志前缀,用于分类

性能设计

序列化和通信是整个客户端包括服务端性能里面很关键的一个环节

  • 异步序列化,jpOwl序列化协议protobuf序列化协议
  • 异步通信,jpOwl通信是基于Netty来实现的NIO的数据传输
  • 异步化IO的操作
  • 异步化传输
  • 异步数据采集,基于NIO管道记录日志
  • 基于内存级别的数据缓冲

项目地址:github.com/jiangeeq/jp… 欢迎Star

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设计架构
  • 价值与优势
  • 业务模型监控
    • 消息树
    • API功能设计
    • 性能设计
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档