dromara / dynamic-tp

🔥🔥🔥轻量级动态线程池,内置监控告警功能,集成三方中间件线程池管理,基于主流配置中心(已支持Nacos、Apollo,Zookeeper、Consul、Etcd,可通过SPI自定义实现)。Lightweight dynamic threadpool, with monitoring and alarming functions, base on popular config centers (already support Nacos、Apollo、Zookeeper、Consul, can be customized through SPI).
https://dynamictp.cn
Apache License 2.0
3.77k stars 763 forks source link

飞书告警报错 #410

Closed guozi closed 7 months ago

guozi commented 7 months ago

首先感谢您使用 DynamicTp,如果使用过程中有任何问题,请按照下述模板反馈问题,建议使用 Markdown 语法

版本信息

问题描述

文字描述、截图、粘代码方式

- 代码使用步骤:
- 报错信息:

2024-02-28 11:31:01.618 INFO 31184 --- [ dtp-alarm-1] o.d.d.c.n.base.AbstractHttpNotifier : DynamicTp notify, lark send success, response: {"code":9499,"msg":"Bad Request","data":{}}, request: {"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","msg_type":"interactive","card":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","config":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","wide_screen_mode":true},"header":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","template":"red","title":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"plain_text","content":"【报警】 动态线程池告警"}},"elements":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"服务名称:\napplication"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"实例信息:\n10.2.129.157:0"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"环境:\ndefault"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"线程池名称:\ndtpExecutor1 (测试线程池)"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"🔴 报警项:\nrun_timeout (200ms)"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"🔴 报警阈值 / 当前值:\n10 / 10"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"hr"},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 核心线程数:\n6"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 最大线程数:\n8"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 当前线程数:\n6"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 活跃线程数:\n4"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"历史最大线程数:\n6"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"任务总数:\n10"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"执行完成任务数:\n6"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"等待执行任务数:\n0"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"hr"},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 队列类型:\nVariableLinkedBlockingQueue"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 队列容量:\n2000"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 队列任务数量:\n0"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 队列剩余容量:\n2000"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 拒绝策略:\nCallerRunsPolicy"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 总拒绝任务数量:\n0"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"🔴 总执行超时任务数量:\n10"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":" 总等待超时任务数量:\n4"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"hr"},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"上次报警时间:\n ---"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"报警时间:\n 2024-02-28 11:31:01.333"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"接收人:\n test1"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"trace 信息:\n ---"}}]},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"div","fields":[{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"报警间隔:\n 120s"}},{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","is_short":true,"text":{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=","tag":"lark_md","content":"扩展信息:\n SystemMetric{"timestamp": "1709091061","sign": "Fc8JDlITvvONpRCxmyZ1bSt8Gf3iHWa+g39QfIksvYo=",sAvgLoad=15.95, sCpuUsage=0.00, pCpuUsage=-1.00, cpuCores=10, oldMemUsage=-1.00}"}}]}]}}


- 猜测可能原因:
- LarkNotifier#buildMsgBody方法里面的`content.replace`应该是`content.replaceFirst`
KamToHung commented 7 months ago

确实有问题,之前测试未覆盖secret不为空场景。是否可以提个pr?

guozi commented 7 months ago

好的