当前位置: 首页 > news >正文

实用,DynamicTP进阶之数据采集与告警

01 引言

上一节介绍了dynamictp的基本入门,入门之后的可能 还会有困惑。到底怎么使用呢?

这一节,我们将介绍一下dynamictp的如何采集以及通知。

02 数据采集

目前框架提供了五种监控数据采集方式,通过 collectorTypes 属性配置监控指标采集类型,默认 Micrometer。

  • Logging:线程池指标数据会以 Json 格式输出到指定的日志文件里
  • Internal_logging:线程池指标数据会以 Json 格式输出到项目日志文件里
  • Micrometer:采用监控门面,通过引入相关 Micrometer 依赖采集到相应的存储平台里(如 Prometheus,InfluxDb…)
  • Endpoint:暴露 Endpoint 端点,可以通过 http 方式实时获取指标数据
  • JMX:通过 JMX 方式采集指标数据,来监视线程池的性能指标

官方提供了两个直接可以对接的监控:

  • grafana监控
  • HertzBeat监控

另外框架还提供了自定义采集器。我们将以自定义采集器为例。

2.1 自定义采集

自定义采集需要继承org.dromara.dynamictp.core.monitor.collector.AbstractCollector抽象类,并实现 type() 和 collect() 方法即可。

@Slf4jpublicclassCollectCollectorextendsAbstractCollector{@Overridepublicvoidcollect(ThreadPoolStatspoolStats){System.out.println("-------------------------------------------------");log.info("Collecting thread pool stats: {}",poolStats.toString());}@OverridepublicStringtype(){return"test";}}

其中type()就是自定义的采集类型。

2.2 SPI配置

自定义采集采用的是SPI配置,需要在resources/META-INF/services 下配置:

  • 文件名:固定类型

    org.dromara.dynamictp.core.monitor.collector.MetricsCollector

  • 文件值:定义的采集器

    com.simonking.ws.boot.dynamictp.controller.CollectCollector

2.3 配置文件配置

需要配置采集的类型:test

dynamictp:enabled:trueenabledCollect:truecollectorTypes:testmonitorInterval:5

2.4 测试

我们可以看到每隔5s采集一次。

03 报警通知

报警通知是业务最常用的手段,框架支持的类型包括:

  • change:线程池核心参数变更通知
  • liveness:线程池活性通知
  • capacity:队列容量使用率通知
  • reject:触发任务拒绝告警
  • run_timeout:任务执行超时告警
  • queue_timeout:任务排队超时告警

我们来模拟一下任务执行超时告警(run_timeout),然后通过邮件通知。

3.1 依赖引入

<dependency><groupId>org.dromara.dynamictp</groupId><artifactId>dynamic-tp-spring-boot-starter-extension-notify-email</artifactId><version>1.2.2-x</version></dependency>

3.2 配置

spring:application:name:boot-dynamictp# email notify configurationmail:host:smtp.163.comport:465username:wsapplyjob@163.compassword:******default-encoding:UTF-8properties:mail:smtp:socketFactoryClass:javax.net.ssl.SSLSocketFactoryssl:enable:true# 暴露 actuator 端点,用于查看线程池监控management:endpoints:web:exposure:include:"*"# DynamicTp 无配置中心模式(本地配置文件,无动态调参,支持监控告警)dynamictp:enabled:trueenabledCollect:truecollectorTypes:testmonitorInterval:5# 线程池配置executors:-threadPoolName:dtpExecutor1threadPoolAliasName:测试线程池executorType:commoncorePoolSize:1maximumPoolSize:2queueCapacity:200queueType:VariableLinkedBlockingQueuerejectedHandlerType:CallerRunsPolicykeepAliveTime:60threadNamePrefix:dtp-test# 设置超时的阈值runTimeout:1000notifyItems:-type:run_timeoutcount:1period:5silencePeriod:0platforms:# 通知平台-platform:emailplatformId:1receivers:sh9527@qq.com

这主要的配置如图:

3.3 测试demo

3.4 启动测试

我们可以看到已经触发了超时的阈值。我们看看有没有收到邮件。

04 小结

日志的采集和通知介绍完了,但是细想一下似乎还有问题。生产环境基本都是多节点部署,采集和通知可能出现重复的问题,这种又该如何解决呢?可能一个配置就可以搞定,有兴趣的可以了解一下。

http://www.rkmt.cn/news/1499172.html

相关文章:

  • AI生成FPGA代码为何难实现真并行
  • 2026东莞环保公司优质厂家推荐|东莞环保公司排行榜5强
  • 如何用大角几何 MCP 保存和复用几何项目?
  • 2026 哈尔滨黄金首饰回收排行:奢二网资质齐全本地商家实力第一 - 讯息早知道
  • 2026年护颈枕头实力甄选:九大品牌贴心推荐 - 每日行业榜
  • iOS 27 开发者测试版安装与降级完整教程
  • 盘点3类市面上进口清关企业口碑 选错踩坑真的太糟心
  • 「权威评测」2026年国内五大中频炉厂家实力推荐,谁才是靠谱之选? - 品研笔录
  • 2026 上海周边云仓 TOP10 深度测评:海盛云仓领跑,全链路数字化仓配服务商推荐 - 玖叁鹿
  • 《你好!数学·最亲切的数学概念启蒙图画书》PDF+音频
  • OBS-VST插件终极指南:3步解决直播音质问题的完整教程
  • 3大创新技术突破:Dislocker如何实现BitLocker加密卷的跨平台无缝访问
  • AI 全流程赋能:拓维海云天领跑智能数字化考评新生态,构建在线考试系统新标杆 - 玖叁鹿
  • 大数据处理全家桶:Hadoop 是什么?Spark、Flink 们都是啥关系?
  • 星露谷物语模组开发新纪元:SMAPI如何彻底改变游戏扩展体验
  • 深耕厨造三十载 以硬核实力定义水槽行业标准 - 玖叁鹿
  • ISO系列认证体系详解:企业合规运营的基石
  • 068、RGB 域降噪:RGB 空间的频域降噪、NLM 与小波降噪的工程实现
  • 匠心守护厨房净洗 国民水槽品牌的品质担当 - 玖叁鹿
  • KeymouseGo:3分钟告别重复劳动,让电脑替你完成枯燥工作
  • 跨境独立站怎么搭建 跨境独立站建站公司哪家好 - 麦麦唛
  • 售后赋能品质生活:打造厨房水槽全链路保障体系 - 玖叁鹿
  • 2026韶关防水补漏哪家靠谱?正规公司排名及避坑价格指南 - 苏易修缮
  • 2026 年国内优质建筑木方厂家综合实力排行:工程采购优选榜单 - 起跑123
  • 面向产业带与中小企业数字化转型的电商运营人才培养模式
  • 2026年上海海绵城市方案:生态透水、智慧排蓄与绿色基础设施深度解析 - 品牌发掘
  • 2026指南:上海雨水回收与雨水花园系统专业评估报告 - 品牌发掘
  • 2026年上海宝山区刑事辩护律师:本地专业刑辩服务选择参考指南 - 法律资讯
  • 飞思卡尔MC68HC908AT32:8位MCU架构解析与嵌入式开发实战
  • 软件工程结课设计求助