You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ta...@apache.org on 2020/08/21 06:32:20 UTC

[skywalking] 03/04: finish

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

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

commit 752da5612329ec5fe2bd21d4a590a02b47a7d8d4
Author: JaredTan95 <ji...@daocloud.io>
AuthorDate: Fri Aug 21 14:26:58 2020 +0800

    finish
---
 docs/en/setup/backend/backend-alarm.md               | 18 ++++++++++++++++++
 .../core/alarm/provider/AlarmRulesWatcher.java       |  2 +-
 .../core/alarm/provider/slack/SlackhookCallback.java | 20 +++++++-------------
 .../src/main/resources/alarm-settings.yml            |  2 +-
 4 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/docs/en/setup/backend/backend-alarm.md b/docs/en/setup/backend/backend-alarm.md
index 37317be..90189be 100644
--- a/docs/en/setup/backend/backend-alarm.md
+++ b/docs/en/setup/backend/backend-alarm.md
@@ -162,6 +162,24 @@ message AlarmMessage {
 }
 ```
 
+## Slack Chat Hook
+To do this you need to follow the [Getting Started with Incoming Webhooks guide](https://api.slack.com/messaging/webhooks) and create new Webhooks.
+
+The alarm message will send through HTTP post by `application/json` content type if you configured Slack Incoming Webhooks as following:
+```yml
+slackHooks:
+  textTemplate: |-
+    {
+      "type": "section",
+      "text": {
+        "type": "mrkdwn",
+        "text": ":alarm_clock: *Apache Skywalking Alarm* \n **%s**."
+      }
+    }
+  webhooks:
+    - https://hooks.slack.com/services/x/y/z
+```
+
 ## Update the settings dynamically
 Since 6.5.0, the alarm settings can be updated dynamically at runtime by [Dynamic Configuration](dynamic-config.md),
 which will override the settings in `alarm-settings.yml`.
diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmRulesWatcher.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmRulesWatcher.java
index c2cad6c..51a5353 100644
--- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmRulesWatcher.java
+++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/AlarmRulesWatcher.java
@@ -111,7 +111,7 @@ public class AlarmRulesWatcher extends ConfigChangeWatcher {
         return this.rules.getGrpchookSetting();
     }
 
-    public SlackSettings getSlackSettings(){
+    public SlackSettings getSlackSettings() {
         return this.rules.getSlacks();
     }
 }
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 f21ce5a..bd9beb4 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
@@ -24,9 +24,6 @@ import com.google.gson.JsonObject;
 import io.netty.handler.codec.http.HttpHeaderValues;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import java.time.Instant;
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
 import java.util.List;
 import org.apache.http.HttpHeaders;
 import org.apache.http.HttpStatus;
@@ -68,7 +65,7 @@ public class SlackhookCallback implements AlarmCallback {
     }
 
     @Override
-    public void doAlarm(List<AlarmMessage> alarmMessage) {
+    public void doAlarm(List<AlarmMessage> alarmMessages) {
         if (webhooks.isEmpty()) {
             return;
         }
@@ -87,16 +84,13 @@ public class SlackhookCallback implements AlarmCallback {
                     JsonObject jsonObject = new JsonObject();
                     JsonArray jsonElements = new JsonArray();
 
-                    alarmMessage.forEach(item -> jsonElements.add(
-                        GSON.fromJson(
+                    alarmMessages.forEach(item -> {
+                        jsonElements.add(GSON.fromJson(
                             String.format(
-                                alarmRulesWatcher.getSlackSettings().getTextTemplate(),
-                                OffsetDateTime.ofInstant(
-                                    Instant.ofEpochMilli(item.getStartTime()), ZoneId.systemDefault()
-                                ), item.getScope(), item.getName(), item.getAlarmMessage(), item.getId0()
-                            ),
-                            JsonObject.class
-                        )));
+                                this.alarmRulesWatcher.getSlackSettings().getTextTemplate(), item.getAlarmMessage()
+                            ), JsonObject.class));
+                    });
+
                     jsonObject.add("blocks", jsonElements);
 
                     entity = new StringEntity(GSON.toJson(jsonObject), ContentType.APPLICATION_JSON);
diff --git a/oap-server/server-bootstrap/src/main/resources/alarm-settings.yml b/oap-server/server-bootstrap/src/main/resources/alarm-settings.yml
index 237a761..b17c380 100755
--- a/oap-server/server-bootstrap/src/main/resources/alarm-settings.yml
+++ b/oap-server/server-bootstrap/src/main/resources/alarm-settings.yml
@@ -53,7 +53,7 @@ slackHooks:
       "type": "section",
       "text": {
         "type": "mrkdwn",
-        "text": ":alarm_clock: *Apache Skywalking Alarm* ,%s \n [%s], %s *%s* , %s."
+        "text": ":alarm_clock: *Apache Skywalking Alarm* \n **%s**."
       }
     }
   webhooks: