Skip to content

告警信息

当前的告警信息模版如下,其中接收人,报警间隔,扩展信息由配置文件指定

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)