Skip to content

Webhook 告警中心接入

目前项目支持的告警条件是队列容量到达阈值 0.8 告警,平台为钉钉和企业微信,后续会支持更多...

maven 依赖

        <dependency>
            <groupId>io.github.cnzhangxy51</groupId>
            <artifactId>dynamic-thread-pool-core</artifactId>
            <version>1.0.0</version>
        </dependency>

钉钉

配置文件 yml 格式

yml
dynamic:
  thread:
    pool:
      config:
        notifier:
          # 状态;true = 开启、false 关闭
          enabled: true
          # 告警平台相关
          channel:
            platform: dingding
            CUSTOM_ROBOT_TOKEN: 
            USER_ID:
            SECRET:
            cron: "*/30 * * * * ?"
            # 告警信息
            messages:
              user: # 告警联系人
              extend: # 告警拓展信息

⚠️注:CUSTOM_ROBOT_TOKEN,USER_ID,SECRET 请填写自己的,申请方式查看钉钉开发文档

企业微信

配置文件 yml 格式

yml
dynamic:
  thread:
    pool:
      config:
        notifier:
          # 状态;true = 开启、false 关闭
          enabled: true
          # 告警平台相关
          channel:
            platform: wechat
            key:
            cron: "*/30 * * * * ?"

⚠️注:key 请填写自己的,申请方式查看企业微信开发文档

自定义 Webhook

  1. 修改配置文件
yml
dynamic:
  thread:
    pool:
      config:
        notifier:
          # 状态;true = 开启、false 关闭
          enabled: true
          # 告警平台相关
          channel:
            platform: 
            url: 
            cron: "*/30 * * * * ?"
            messages:
              user:
              extend: none

⚠️注:将 platform、url 、user改成自己的,其余需要传入的信息放在messages.extend中,获取方式查看告警信息

  1. 继承 AbstractWebhookNotifier 抽象类,调用 AbstractWebhookNotifier 中提供的方法

    java
    // 获取告警信息
    public String getNotifyMessage(Map.Entry<ThreadPoolConfigEntity, Double> entry)
    // 扩展告警信息
    public String extendNotifyMessage(String before, Map<String, String> messages)
    // 查看队列容量是否超过阈值
    public Map<ThreadPoolConfigEntity, Double> checkCondition()

SPI 配置

resources/META-INF/services 下配置 java spi 实现

文件名:cn.xyfv.middleware.dynamic.thread.pool.sdk.notifier.INotifier

文件值:(三选一)

cn.xyfv.middleware.dynamic.thread.pool.sdk.notifier.webhook.impl.WechatNotifier(企业微信)

cn.xyfv.middleware.dynamic.thread.pool.sdk.notifier.webhook.impl.DingdingNotifier(钉钉)

自定义告警中心全类名

自定义告警中心接入

目前项目支持的告警条件是队列容量到达阈值 0.8 告警,后续会支持更多...

maven 依赖

        <dependency>
            <groupId>io.github.cnzhangxy51</groupId>
            <artifactId>dynamic-thread-pool-core</artifactId>
            <version>1.0.0</version>
        </dependency>

自定义 Webhook

  1. 修改配置文件
yml
dynamic:
  thread:
    pool:
      config:
        notifier:
          # 状态;true = 开启、false 关闭
          enabled: true
          # 告警平台相关
          channel:
            platform: 
            url: 
            cron: "*/30 * * * * ?"
            messages:
              user:
              extend: none

⚠️注:将 platform、url 、user改成自己的,其余需要传入的信息放在messages.extend中,获取方式查看告警信息

  1. 继承 AbstractNotifier 抽象类,调用 AbstractWebhookNotifier 中提供的方法

    java
    // 查看队列容量是否超过阈值
    public Map<ThreadPoolConfigEntity, Double> checkCondition()
  2. SPI 配置

    resources/META-INF/services 下配置 java spi 实现

    文件名:cn.xyfv.middleware.dynamic.thread.pool.sdk.notifier.INotifier

    文件值:自定义告警中心全类名