DynamicTp 是Jvm语言的基于配置中心的轻量级动态线程池,内置监控告警功能,可通过SPI自定义扩展实现。
HertzBeat 是一款开源,易用友好的实时监控系统,无需Agent,拥有强大自定义监控能力。
DynamicTp
指标接口 /actuator/dynamic-tp
,它将提供 metrics 接口数据。DynamicTp
指标接口management:
endpoints:
web:
exposure:
include: '*'
ip:port/actuator/dynamic-tp
是否有响应json数据如下:[
{
"poolName": "commonExecutor",
"corePoolSize": 1,
"maximumPoolSize": 1,
"queueType": "LinkedBlockingQueue",
"queueCapacity": 2147483647,
"queueSize": 0,
"fair": false,
"queueRemainingCapacity": 2147483647,
"activeCount": 0,
"taskCount": 0,
"completedTaskCount": 0,
"largestPoolSize": 0,
"poolSize": 0,
"waitTaskCount": 0,
"rejectCount": 0,
"rejectHandlerName": null,
"dynamic": false,
"runTimeoutCount": 0,
"queueTimeoutCount": 0
},
{
"maxMemory": "4 GB",
"totalMemory": "444 MB",
"freeMemory": "250.34 MB",
"usableMemory": "3.81 GB"
}
]
路径:菜单 -> 中间件监控 -> DynamicTp监控 -> 新增DynamicTp监控
在监控页面填写 DynamicTp 服务IP,监控端口(默认8080),最后点击确定添加即可。
其他参数如采集间隔,超时时间等可以参考帮助文档 https://hertzbeat.com/docs/help/dynamic_tp/
DONE!完成啦!通过上面几步,总结起来其实也就只用两步
metrics
端点/actuator/dynamic-tp
通过上面的两步我们就完成了对 DynamicTp 的监控,我们可以在 HertzBeat 随时查看监控详情指标信息来观测其服务状态。 当然只是看肯定是不完美的,监控往往伴随着告警阈值,当 DynamicTp 的线程池指标超出我们的期望值或异常时,能及时的通知到我们对应的负责人,负责人收到通知处理问题,这样才是一个完整的监控告警流程。
接下来我们就来一步一步演示如何配置 HertzBeat 系统里的阈值告警通知,让 DynamicTp线程池 的指标异常时,及时通知给我们
路径:菜单 -> 告警阈值 -> 新增阈值
运行超时线程数量
thread_pool_running
-> run_timeout_count
这个指标进行阈值设置, 当线程运行超时数量大于1时发出告警。thread_pool_running
的 run_timeout_count>1
时发出告警,告警级别为严重告警,三次即触发,具体如下图。配置接收人,让告警消息知道要发给谁,用什么方式发。
路径:菜单 -> 告警通知 -> 告警接收人 -> 新增接收人
消息通知方式支持 邮件,钉钉,企业微信,飞书,WebHook,短信等,我们这里以常用的钉钉为例。
HertzBeat
,获取对应access_token
值。【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】
配置告警通知策略,让告警消息与接收人绑定,这样就能决定哪些告警发给哪个人。
[HertzBeat告警通知]
告警目标对象 : dynamic_tp.thread_pool_running.run_timeout_count
所属监控ID : 205540620349493
所属监控名称 : DynamicTp_localhost
告警级别 : 严重告警
告警触发时间 : 2023-02-02 22:17:06
内容详情 : DynamicTp has run timeout thread, count is 2
这篇实践文章带我们体验了如何使用 HertzBeat 监控 DynamicTp线程池 指标数据,可以发现集
监控-告警-通知
的 HertzBeat 在操作与使用方面更加的便捷,只需页面上简单点一点就能把 DynamicTp线程池 纳入监控并告警通知,再也不需要部署多个组件写YML配置文件那些繁琐操作了。
DynamicTp Github: https://github.com/dromara/dynamic-tp
HertzBeat Github: https://github.com/dromara/hertzbeat
欢迎了解使用Star支持哦!
只需要一条docker命令即可安装体验heartbeat :
docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat
|