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: