告警信息
当前的告警信息模版如下,其中接收人,报警间隔,扩展信息由配置文件指定
java
public static final String ALARM_TEMPLATE =
"服务名称:%s \n" +
"线程池名称:%s \n" +
"报警项:%s \n" +
"报警阈值:%s \n" +
"当前值:%s \n" +
"核心线程数:%s \n" +
"最大线程数:%s \n" +
"活跃线程数:%s \n" +
"队列类型:%s \n" +
"队列任务数量:%s \n" +
"队列剩余容量:%s \n" +
"报警时间:%s \n" +
"接收人:@%s \n" +
"报警间隔:%s \n" +
"扩展信息:%s \n";
}
告警信息拓展
支持两种方式
方式一:在配置文件的 messages.extend 项传入扩展信息,通过配置类 DynamicThreadPoolAutoProperties 拿到,举例:
yml
# 配置文件
dynamic:
thread:
pool:
config:
notifier:
# 状态;true = 开启、false 关闭
enabled: true
# 告警平台相关
channel:
...
...
...
cron: "*/30 * * * * ?" # 告警间隔
# 告警信息
messages:
user: # 告警联系人
extend: # 告警拓展信息
java
public class extendWebhookNotifierMessages {
@Resource
public DynamicThreadPoolAutoProperties dynamicThreadPoolAutoProperties;
public String getExtendMessages(DynamicThreadPoolAutoProperties dynamicThreadPoolAutoProperties){
String extendMessages = dynamicThreadPoolAutoProperties.getConfig().getNotifier().getChannel().getMessages().getExtend());
return extendMessages;
}
}
方式二:通过继承 AbstractWebhookNotifier,AbstractWebhookNotifier 提供 extendNotifyMessage 方法用于动态扩展信息,直接调用即可
java
// before 为扩展前的信息,messages 为需要动态添加的信息,以 key-value 的形式添加进 befor
public String extendNotifyMessage(String before, Map<String, String> messages)