This is an automated email from the ASF dual-hosted git repository.

wankai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 33316cf57b Fix Slack hook do not post msg if the template is blank. 
(#13583)
33316cf57b is described below

commit 33316cf57b0b0cc7fe0c9a059ce813dc812fb531
Author: Wan Kai <[email protected]>
AuthorDate: Wed Nov 19 11:54:42 2025 +0800

    Fix Slack hook do not post msg if the template is blank. (#13583)
---
 .../alarm/provider/dingtalk/DingtalkHookCallback.java   | 11 ++++++-----
 .../alarm/provider/discord/DiscordHookCallback.java     | 11 ++++++-----
 .../core/alarm/provider/feishu/FeishuHookCallback.java  | 17 +++++++++--------
 .../alarm/provider/pagerduty/PagerDutyHookCallback.java | 15 ++++++++-------
 .../core/alarm/provider/slack/SlackhookCallback.java    | 10 +++++-----
 .../core/alarm/provider/wechat/WechatHookCallback.java  | 17 +++++++++--------
 .../core/alarm/provider/welink/WeLinkHookCallback.java  | 11 ++++++-----
 7 files changed, 49 insertions(+), 43 deletions(-)

diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/dingtalk/DingtalkHookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/dingtalk/DingtalkHookCallback.java
index de179a7ca1..62957b347a 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/dingtalk/DingtalkHookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/dingtalk/DingtalkHookCallback.java
@@ -60,14 +60,15 @@ public class DingtalkHookCallback extends HttpAlarmCallback 
{
                     messages)) {
                 continue;
             }
+            String template = getTemplate(setting, isRecovery);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var webHookUrl : setting.getWebhooks()) {
                 final var url = getUrl(webHookUrl);
                 for (final var alarmMessage : messages) {
-                    String template = getTemplate(setting, isRecovery);
-                    if (StringUtil.isNotBlank(template)) {
-                        final var requestBody = String.format(template, 
alarmMessage.getAlarmMessage());
-                        post(URI.create(url), requestBody, Map.of());
-                    }
+                    final var requestBody = String.format(template, 
alarmMessage.getAlarmMessage());
+                    post(URI.create(url), requestBody, Map.of());
                 }
             }
         }
diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/discord/DiscordHookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/discord/DiscordHookCallback.java
index e18f9b84f6..e66c1f55e4 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/discord/DiscordHookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/discord/DiscordHookCallback.java
@@ -56,13 +56,14 @@ public class DiscordHookCallback extends HttpAlarmCallback {
                     messages)) {
                 continue;
             }
+            String template = getTemplate(setting, isRecovery);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var webHookUrl : setting.getWebhooks()) {
                 for (final var alarmMessage : messages) {
-                    String template = getTemplate(setting, isRecovery);
-                    if (StringUtil.isNotBlank(template)) {
-                        final var content = String.format(template, 
alarmMessage.getAlarmMessage());
-                        sendAlarmMessage(webHookUrl, content);
-                    }
+                    final var content = String.format(template, 
alarmMessage.getAlarmMessage());
+                    sendAlarmMessage(webHookUrl, content);
                 }
             }
         }
diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/feishu/FeishuHookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/feishu/FeishuHookCallback.java
index 8ede5dca48..3973eb7eb5 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/feishu/FeishuHookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/feishu/FeishuHookCallback.java
@@ -62,16 +62,17 @@ public class FeishuHookCallback extends HttpAlarmCallback {
                     messages)) {
                 continue;
             }
+            String template = getTemplate(setting, isRecovery);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var webHookUrl : setting.getWebhooks()) {
                 for (final var alarmMessage : messages) {
-                    String template = getTemplate(setting, isRecovery);
-                    if (StringUtil.isNotBlank(template)) {
-                        final var requestBody = getRequestBody(webHookUrl, 
alarmMessage, template);
-                        try {
-                            post(URI.create(webHookUrl.getUrl()), requestBody, 
Map.of());
-                        } catch (Exception e) {
-                            log.error("Failed to send alarm message to Feishu: 
{}", webHookUrl.getUrl(), e);
-                        }
+                    final var requestBody = getRequestBody(webHookUrl, 
alarmMessage, template);
+                    try {
+                        post(URI.create(webHookUrl.getUrl()), requestBody, 
Map.of());
+                    } catch (Exception e) {
+                        log.error("Failed to send alarm message to Feishu: 
{}", webHookUrl.getUrl(), e);
                     }
                 }
             }
diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/pagerduty/PagerDutyHookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/pagerduty/PagerDutyHookCallback.java
index 0f9d916962..58e331833a 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/pagerduty/PagerDutyHookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/pagerduty/PagerDutyHookCallback.java
@@ -59,16 +59,17 @@ public class PagerDutyHookCallback extends 
HttpAlarmCallback {
                     messages)) {
                 continue;
             }
+            String template = getTemplate(isRecovery, setting);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var integrationKey : setting.getIntegrationKeys()) {
                 for (final var alarmMessage : messages) {
                     try {
-                        String template = getTemplate(isRecovery, setting);
-                        if (StringUtil.isNotBlank(template)) {
-                            post(
-                                    URI.create(PAGER_DUTY_EVENTS_API_V2_URL),
-                                    getMessageBody(alarmMessage, 
integrationKey, template), Map.of()
-                            );
-                        }
+                        post(
+                            URI.create(PAGER_DUTY_EVENTS_API_V2_URL),
+                            getMessageBody(alarmMessage, integrationKey, 
template), Map.of()
+                        );
                     } catch (Exception e) {
                         log.error("Failed to send alarm message to PagerDuty: 
{}", integrationKey, e);
                     }
diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/slack/SlackhookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/slack/SlackhookCallback.java
index c8dc031747..27dab018a2 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/slack/SlackhookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/slack/SlackhookCallback.java
@@ -60,15 +60,15 @@ public class SlackhookCallback extends HttpAlarmCallback {
                     messages)) {
                 continue;
             }
-
+            String template = getTemplate(setting, isRecovery);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var url : setting.getWebhooks()) {
                 final var jsonObject = new JsonObject();
                 final var jsonElements = new JsonArray();
                 for (AlarmMessage item : messages) {
-                    String template = getTemplate(setting, isRecovery);
-                    if (StringUtil.isNotBlank(template)) {
-                        jsonElements.add(GSON.fromJson(String.format(template, 
item.getAlarmMessage()), JsonObject.class));
-                    }
+                    jsonElements.add(GSON.fromJson(String.format(template, 
item.getAlarmMessage()), JsonObject.class));
                 }
                 jsonObject.add("blocks", jsonElements);
                 final var body = GSON.toJson(jsonObject);
diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/wechat/WechatHookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/wechat/WechatHookCallback.java
index 618c2192ab..af4a6391cb 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/wechat/WechatHookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/wechat/WechatHookCallback.java
@@ -54,16 +54,17 @@ public class WechatHookCallback extends HttpAlarmCallback {
             if (setting == null || 
CollectionUtils.isEmpty(setting.getWebhooks()) || 
CollectionUtils.isEmpty(messages)) {
                 continue;
             }
+            String template = getTemplate(setting, isRecovery);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var url : setting.getWebhooks()) {
                 for (final var alarmMessage : messages) {
-                    String template = getTemplate(setting, isRecovery);
-                    if (StringUtil.isNotBlank(template)) {
-                        final var requestBody = String.format(template, 
alarmMessage.getAlarmMessage());
-                        try {
-                            post(URI.create(url), requestBody, Map.of());
-                        } catch (Exception e) {
-                            log.error("Failed to send alarm message to Wechat 
webhook: {}", url, e);
-                        }
+                    final var requestBody = String.format(template, 
alarmMessage.getAlarmMessage());
+                    try {
+                        post(URI.create(url), requestBody, Map.of());
+                    } catch (Exception e) {
+                        log.error("Failed to send alarm message to Wechat 
webhook: {}", url, e);
                     }
                 }
             }
diff --git 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/welink/WeLinkHookCallback.java
 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/welink/WeLinkHookCallback.java
index ef02377877..8a71eccdbf 100644
--- 
a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/welink/WeLinkHookCallback.java
+++ 
b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/welink/WeLinkHookCallback.java
@@ -69,14 +69,15 @@ public class WeLinkHookCallback extends HttpAlarmCallback {
                     messages)) {
                 continue;
             }
+            String template = getTemplate(setting, isRecovery);
+            if (StringUtil.isBlank(template)) {
+                continue;
+            }
             for (final var webHookUrl : setting.getWebhooks()) {
                 final var accessToken = getAccessToken(webHookUrl);
                 for (final var alarmMessage : messages) {
-                    String template = getTemplate(setting, isRecovery);
-                    if (StringUtil.isNotBlank(template)) {
-                        final var content = String.format(template, 
alarmMessage.getAlarmMessage());
-                        sendAlarmMessage(webHookUrl, accessToken, content);
-                    }
+                    final var content = String.format(template, 
alarmMessage.getAlarmMessage());
+                    sendAlarmMessage(webHookUrl, accessToken, content);
                 }
             }
         }

Reply via email to