flashduty-knowledge-base 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/en.d.ts +4 -0
- package/dist/esm/en.js +1168 -332
- package/dist/esm/zh.js +626 -163
- package/dist/iife/en.js +1146 -310
- package/dist/iife/zh.js +609 -146
- package/dist/zh.d.ts +4 -0
- package/package.json +11 -4
package/dist/esm/en.js
CHANGED
|
@@ -8,7 +8,7 @@ url: "https://docs.flashcat.cloud/en/flashduty/custom-alert-integration-guide"
|
|
|
8
8
|
Push alert events from your own system to Flashduty through standard protocols to achieve automated alert noise reduction.
|
|
9
9
|
|
|
10
10
|
:::tips
|
|
11
|
-
Flashduty has already adapted webhook protocols for most common alert systems. For these systems, you should first use the corresponding integration for simplicity. This integration provides a standard HTTP interface that requires your development for adaptation. The advantage is that you can push any alert events you want to handle through
|
|
11
|
+
Flashduty has already adapted webhook protocols for most common alert systems. For these systems, you should first use the corresponding integration for simplicity. This integration provides a standard HTTP interface that requires your development for adaptation. The advantage is that you can push any alert events you want to handle through On-call.
|
|
12
12
|
:::
|
|
13
13
|
|
|
14
14
|
## Steps
|
|
@@ -42,9 +42,9 @@ When you need to route alert events to different collaboration spaces based on t
|
|
|
42
42
|
1. Enter the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
43
43
|
2. Select **Standard Alert Event** integration:
|
|
44
44
|
- **Integration Name**: Define a name for the current integration
|
|
45
|
-
3.
|
|
46
|
-
4. Click **
|
|
47
|
-
5.
|
|
45
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
46
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
47
|
+
5. Done
|
|
48
48
|
|
|
49
49
|
</details>
|
|
50
50
|
|
|
@@ -213,7 +213,7 @@ Failed Response:
|
|
|
213
213
|
</details> `,t=`---
|
|
214
214
|
title: "Email Integration"
|
|
215
215
|
description: "Generate a unique email address in Flashduty to synchronize alert triggers and recoveries through email"
|
|
216
|
-
date: "
|
|
216
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
217
217
|
url: "https://docs.flashcat.cloud/en/flashduty/email-integration-guide"
|
|
218
218
|
---
|
|
219
219
|
|
|
@@ -255,8 +255,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
255
255
|
- **Email Address**: Set an easy-to-remember prefix for the email, which must be unique within your account
|
|
256
256
|
- **Push Mode**: Choose when the email should trigger or recover alerts
|
|
257
257
|
3. Copy the **Email Address** from the current page for later use
|
|
258
|
-
4.
|
|
259
|
-
5.
|
|
258
|
+
4. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
259
|
+
5. Done
|
|
260
260
|
|
|
261
261
|
</details>
|
|
262
262
|
</div>
|
|
@@ -312,14 +312,18 @@ attachment_stripped = true
|
|
|
312
312
|
Currently, all alerts pushed to Flashduty through email integration are set to Warning severity.
|
|
313
313
|
|
|
314
314
|
`,a=`---
|
|
315
|
-
title: "Nightingale/
|
|
315
|
+
title: "Nightingale/Flashcat Integration"
|
|
316
316
|
description: "Push alert events from Nightingale (n9e) or Flashcat to Flashduty via webhook. When an alert is triggered, send a trigger event to Flashduty; when an alert recovers, send a recovery event to Flashduty"
|
|
317
|
-
date: "
|
|
317
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
318
318
|
url: "https://docs.flashcat.cloud/en/flashduty/nightingale-integration-guide"
|
|
319
319
|
---
|
|
320
320
|
|
|
321
321
|
Push alert events from Nightingale (n9e) or Flashcat to Flashduty via webhook. When an alert is triggered, send a trigger event to Flashduty; when an alert recovers, send a recovery event to Flashduty.
|
|
322
322
|
|
|
323
|
+
In the Nightingale/Flashcat v8.0.0-beta.7+ version, you can configure the collaboration space in the alert notification rules, no longer need to use routing rules.
|
|
324
|
+
|
|
325
|
+
- [v8.0.0-beta.7 +](#v8)
|
|
326
|
+
- [v5~v8.0.0-beta.6](#v7)
|
|
323
327
|
<div class="hide">
|
|
324
328
|
|
|
325
329
|
## Prerequisites
|
|
@@ -368,16 +372,50 @@ Choose this method when you need to route alert events to different channels bas
|
|
|
368
372
|
2. Select **Nightingale/Flashcat** integration:
|
|
369
373
|
- **Integration Name**: Define a name for the current integration
|
|
370
374
|
- **Console URL**: (Optional) Enter the Nightingale console URL (domain part only), and Flashduty will generate a Nightingale details link for new alerts
|
|
371
|
-
3.
|
|
372
|
-
4. Click **
|
|
375
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
376
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
373
377
|
5. Complete
|
|
374
378
|
|
|
375
379
|
</details>
|
|
376
380
|
</div>
|
|
377
381
|
|
|
378
|
-
|
|
382
|
+
## In Nightingale/Flashcat
|
|
383
|
+
|
|
384
|
+
### Configure in Nightingale/Flashcat v8.0.0-beta.7 + <span id="v8"></span>
|
|
385
|
+
|
|
386
|
+
In the new version, although you can configure the collaboration space directly in the alert notification rules, you still need to create a collaboration space in Flashduty and configure the dispatch strategy.
|
|
387
|
+
|
|
388
|
+
#### Step 1: Add Notification Media
|
|
389
|
+
|
|
390
|
+
1. Log in to your n9e console, select Alerting > Media types and click **Add**
|
|
391
|
+
2. Fill in the media name and identifier, select **FlashDuty** type, and enter the integration push URL in the \`URL\` section
|
|
392
|
+
3. Click **Save** and complete
|
|
393
|
+
|
|
394
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-1.png" />
|
|
395
|
+
|
|
396
|
+
#### Step 2: Configure Notification Rules
|
|
397
|
+
|
|
398
|
+
1. Log in to your n9e console, select Alerting > Rules and click **Add** or edit the existing alert rules
|
|
399
|
+
2. Configure the basic information as needed
|
|
400
|
+
3. Select the \`FlashDuty\` notification media added in the previous step
|
|
401
|
+
4. Select the collaboration space (the collaboration space must be created in [Flashduty](https://console.flashcat.cloud/channel) in advance), and select other options as needed
|
|
402
|
+
5. Click **Save** and complete
|
|
403
|
+
|
|
404
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-2.png" />
|
|
405
|
+
|
|
406
|
+
#### Step 3: Select Notification Rules in Alert Rules
|
|
407
|
+
|
|
408
|
+
1. Log in to your n9e console, select Alerting > Alert Rules and click **Add** or edit the existing alert rules
|
|
409
|
+
2. Select the \`FlashDuty\` notification rule added in the previous step, and select other options as needed
|
|
410
|
+
3. Click **Save** and complete
|
|
379
411
|
|
|
380
|
-
|
|
412
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-3.png" />
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
### Configure in Nightingale/Flashcat v5~v8.0.0-beta.6 <span id="v7"></span>
|
|
417
|
+
|
|
418
|
+
Choose one of the following two methods:
|
|
381
419
|
|
|
382
420
|
#### Method 1: Configure by Strategy
|
|
383
421
|
|
|
@@ -472,7 +510,7 @@ Nightingale/Flashcat to Flashduty alert severity mapping:
|
|
|
472
510
|
`,i=`---
|
|
473
511
|
title: "Prometheus Integration Guide"
|
|
474
512
|
description: "Push Prometheus alert events to Flashduty through AlertManager using webhooks. When an alert is triggered, it sends a trigger event to Flashduty, and when the alert recovers, it sends a recovery event."
|
|
475
|
-
date: "
|
|
513
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
476
514
|
url: "https://docs.flashcat.cloud/en/flashduty/prometheus-integration-guide"
|
|
477
515
|
---
|
|
478
516
|
|
|
@@ -524,8 +562,8 @@ Choose this method when you need to route alert events to different channels bas
|
|
|
524
562
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
525
563
|
2. Select **Prometheus** integration:
|
|
526
564
|
- **Integration Name**: Define a name for this integration
|
|
527
|
-
3.
|
|
528
|
-
4. Click **
|
|
565
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
566
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
529
567
|
5. Done
|
|
530
568
|
|
|
531
569
|
</details>
|
|
@@ -654,7 +692,7 @@ Prometheus to Flashduty severity mapping:
|
|
|
654
692
|
`,o=`---
|
|
655
693
|
title: "Grafana Integration"
|
|
656
694
|
description: "Sync Grafana alert events to Flashduty via webhook to achieve automated alert noise reduction."
|
|
657
|
-
date: "
|
|
695
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
658
696
|
url: "https://docs.flashcat.cloud/en/flashduty/grafana-integration-guide"
|
|
659
697
|
---
|
|
660
698
|
|
|
@@ -690,9 +728,9 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
690
728
|
1. Go to Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
691
729
|
2. Select **Grafana** integration:
|
|
692
730
|
- **Integration Name**: Define a name for this integration
|
|
693
|
-
3.
|
|
694
|
-
4. Click **
|
|
695
|
-
5.
|
|
731
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
732
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
733
|
+
5. Done
|
|
696
734
|
|
|
697
735
|
</details>
|
|
698
736
|
</div>
|
|
@@ -767,7 +805,7 @@ The system extracts the \`severity\`, \`priority\`, and \`level\` labels from al
|
|
|
767
805
|
`,s=`---
|
|
768
806
|
title: "Zabbix Integration"
|
|
769
807
|
description: "Synchronize Zabbix alert events to Flashduty via webhook (supports Zabbix 3.x ~ 6.x versions, with different configuration requirements) to achieve automated alert noise reduction"
|
|
770
|
-
date: "
|
|
808
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
771
809
|
url: "https://docs.flashcat.cloud/en/flashduty/zabbix-integration-guide"
|
|
772
810
|
---
|
|
773
811
|
|
|
@@ -776,7 +814,9 @@ Synchronize Zabbix alert events to Flashduty via webhook (supports Zabbix 3.x ~
|
|
|
776
814
|
<div class="hide">
|
|
777
815
|
|
|
778
816
|
## In Flashduty
|
|
817
|
+
|
|
779
818
|
---
|
|
819
|
+
|
|
780
820
|
You can obtain an integration push URL through either of these two methods:
|
|
781
821
|
|
|
782
822
|
### Using Private Integration
|
|
@@ -803,14 +843,15 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
803
843
|
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
804
844
|
2. Select **Zabbix** integration:
|
|
805
845
|
- **Integration Name**: Define a name for this integration
|
|
806
|
-
3.
|
|
807
|
-
4. Click **
|
|
808
|
-
5.
|
|
846
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
847
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
848
|
+
5. Done
|
|
809
849
|
|
|
810
850
|
</details>
|
|
811
851
|
</div>
|
|
812
852
|
|
|
813
|
-
## In Zabbix
|
|
853
|
+
## In Zabbix
|
|
854
|
+
|
|
814
855
|
---
|
|
815
856
|
|
|
816
857
|
- [7.x version](#v7)
|
|
@@ -822,6 +863,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
822
863
|
### Version 7.x
|
|
823
864
|
|
|
824
865
|
#### Step 1: Define Flashduty Media Type
|
|
866
|
+
|
|
825
867
|
<div class="md-block">
|
|
826
868
|
|
|
827
869
|
1. Media type is a transport channel used for sending notifications and alerts in Zabbix. Enter the terminal and download the complete configuration using the following command:
|
|
@@ -830,6 +872,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
830
872
|
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
831
873
|
|
|
832
874
|
\`\`\`
|
|
875
|
+
|
|
833
876
|
2. Log in to the Zabbix console, select \`Alert > Media Types\`, click the Import button in the top right corner, enter the editing page, select the configuration file downloaded above, and click Import to complete the import
|
|
834
877
|
3. Return to the Media Types page to see the imported media type. Click the name to enter the editing page, complete the URL, zabbix_url, and HTTPProxy content:
|
|
835
878
|
|
|
@@ -841,7 +884,6 @@ wget --header="Referer: https://console.flashcat.cloud" https://download.flashca
|
|
|
841
884
|
|
|
842
885
|
4. Click Update to save the configuration
|
|
843
886
|
|
|
844
|
-
|
|
845
887
|
#### Step 2: Associate Media Type with User
|
|
846
888
|
|
|
847
889
|
The media type must be associated with a user to send events. The user must have at least read permission for hosts. It is recommended to associate directly with the Admin user. Taking the Admin user as an example:
|
|
@@ -857,7 +899,6 @@ The media type must be associated with a user to send events. The user must have
|
|
|
857
899
|
2. Click Add button to exit the add media window
|
|
858
900
|
3. Click Update button to exit the edit user page
|
|
859
901
|
|
|
860
|
-
|
|
861
902
|
#### Step 3: Create Action
|
|
862
903
|
|
|
863
904
|
Sending notifications is one of the operations executed by actions in Zabbix. Therefore, to establish a notification, log in to the Zabbix console, select \`Alerts > Actions > Trigger actions\`, then:
|
|
@@ -878,7 +919,6 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
|
|
|
878
919
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/zabbix-5.png" />
|
|
879
920
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/zabbix-4.png" />
|
|
880
921
|
|
|
881
|
-
|
|
882
922
|
#### Step 4: Send Events to Flashduty
|
|
883
923
|
|
|
884
924
|
Log in to the Zabbix console, select \`Monitoring > Problems\` to view the latest alert list.
|
|
@@ -1062,18 +1102,19 @@ Log in to the Zabbix console, select Monitoring > Problems to view the latest al
|
|
|
1062
1102
|
Zabbix to Flashduty alert severity mapping:
|
|
1063
1103
|
|
|
1064
1104
|
| Zabbix | Flashduty | Status |
|
|
1065
|
-
| -------------- |
|
|
1066
|
-
| Disaster | Critical
|
|
1067
|
-
| High | Critical
|
|
1068
|
-
| Average | Warning
|
|
1069
|
-
| Warning | Warning
|
|
1070
|
-
| Information | Info
|
|
1071
|
-
| Not classified | Info
|
|
1072
|
-
|
|
1073
|
-
</dv
|
|
1105
|
+
| -------------- | --------- | -------- |
|
|
1106
|
+
| Disaster | Critical | Critical |
|
|
1107
|
+
| High | Critical | Critical |
|
|
1108
|
+
| Average | Warning | Warning |
|
|
1109
|
+
| Warning | Warning | Warning |
|
|
1110
|
+
| Information | Info | Info |
|
|
1111
|
+
| Not classified | Info | Info |
|
|
1112
|
+
|
|
1113
|
+
</dv>
|
|
1114
|
+
`,r=`---
|
|
1074
1115
|
title: "Uptime Kuma Integration"
|
|
1075
1116
|
description: "Sync Uptime Kuma alert events to Flashduty via webhook for automated alert noise reduction"
|
|
1076
|
-
date: "
|
|
1117
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1077
1118
|
url: "https://docs.flashcat.cloud/en/flashduty/uptime-kuma-integration-guide"
|
|
1078
1119
|
---
|
|
1079
1120
|
|
|
@@ -1109,9 +1150,9 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1109
1150
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
1110
1151
|
2. Select **Uptime Kuma** integration:
|
|
1111
1152
|
- **Integration Name**: Define a name for this integration
|
|
1112
|
-
3.
|
|
1113
|
-
4. Click **
|
|
1114
|
-
5.
|
|
1153
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1154
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1155
|
+
5. Done
|
|
1115
1156
|
|
|
1116
1157
|
</details>
|
|
1117
1158
|
|
|
@@ -1159,7 +1200,7 @@ Uptime Kuma to Flashduty alert severity mapping:
|
|
|
1159
1200
|
</div>`,l=`---
|
|
1160
1201
|
title: "Alibaba Cloud ARMS Integration"
|
|
1161
1202
|
description: "Sync Alibaba Cloud ARMS monitoring alerts to Flashduty via webhook for automated alert noise reduction"
|
|
1162
|
-
date: "
|
|
1203
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1163
1204
|
url: "https://docs.flashcat.cloud/en/flashduty/aliyun-arms-integration-guide"
|
|
1164
1205
|
---
|
|
1165
1206
|
|
|
@@ -1195,9 +1236,9 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1195
1236
|
1. Go to the Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
1196
1237
|
2. Select **Alibaba Cloud ARMS** integration:
|
|
1197
1238
|
- **Integration Name**: Define a name for this integration
|
|
1198
|
-
3.
|
|
1199
|
-
4. Click **
|
|
1200
|
-
5.
|
|
1239
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1240
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1241
|
+
5. Done
|
|
1201
1242
|
|
|
1202
1243
|
</details>
|
|
1203
1244
|
</div>
|
|
@@ -1245,7 +1286,7 @@ Alibaba Cloud ARMS monitoring to Flashduty alert severity mapping:
|
|
|
1245
1286
|
`,d=`---
|
|
1246
1287
|
title: "Alibaba Cloud Monitor CM Event Integration"
|
|
1247
1288
|
description: "Sync Alibaba Cloud Monitor event center alerts to Flashduty via webhook for automated alert noise reduction"
|
|
1248
|
-
date: "
|
|
1289
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1249
1290
|
url: "https://docs.flashcat.cloud/en/flashduty/aliyun-cm-event-integration-guide"
|
|
1250
1291
|
---
|
|
1251
1292
|
|
|
@@ -1281,9 +1322,9 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1281
1322
|
1. Go to the Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
1282
1323
|
2. Select **Alibaba Cloud CM Event** integration:
|
|
1283
1324
|
- **Integration Name**: Define a name for this integration
|
|
1284
|
-
3.
|
|
1285
|
-
4. Click **
|
|
1286
|
-
5.
|
|
1325
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1326
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1327
|
+
5. Done
|
|
1287
1328
|
|
|
1288
1329
|
</details>
|
|
1289
1330
|
</div>
|
|
@@ -1332,7 +1373,7 @@ Alibaba Cloud Monitor event alert to Flashduty severity level mapping:
|
|
|
1332
1373
|
</div>`,c=`---
|
|
1333
1374
|
title: "Alibaba Cloud Monitor CM Metrics Integration"
|
|
1334
1375
|
description: "Sync Alibaba Cloud Monitor alert events to Flashduty via webhook for automated alert noise reduction"
|
|
1335
|
-
date: "
|
|
1376
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1336
1377
|
url: "https://docs.flashcat.cloud/en/flashduty/aliyun-cm-metric-integration-guide"
|
|
1337
1378
|
---
|
|
1338
1379
|
|
|
@@ -1368,9 +1409,9 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1368
1409
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
1369
1410
|
2. Select **Alibaba Cloud CM Metrics** integration:
|
|
1370
1411
|
- **Integration Name**: Define a name for this integration
|
|
1371
|
-
3.
|
|
1372
|
-
4. Click **
|
|
1373
|
-
5.
|
|
1412
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1413
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1414
|
+
5. Done
|
|
1374
1415
|
|
|
1375
1416
|
</details>
|
|
1376
1417
|
</div>
|
|
@@ -1430,7 +1471,7 @@ Severity level mapping from Alibaba Cloud Monitor to Flashduty:
|
|
|
1430
1471
|
`,e=`---
|
|
1431
1472
|
title: "Alibaba Cloud SLS Integration"
|
|
1432
1473
|
description: "Sync Alibaba Cloud Log Service (SLS) monitoring alert events to Flashduty via webhook for automated alert noise reduction"
|
|
1433
|
-
date: "
|
|
1474
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1434
1475
|
url: "https://docs.flashcat.cloud/en/flashduty/aliyun-sls-integration-guide"
|
|
1435
1476
|
---
|
|
1436
1477
|
|
|
@@ -1466,9 +1507,9 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1466
1507
|
1. Go to the Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
1467
1508
|
2. Select **Alibaba Cloud SLS** integration:
|
|
1468
1509
|
- **Integration Name**: Define a name for this integration
|
|
1469
|
-
3.
|
|
1470
|
-
4. Click **
|
|
1471
|
-
5.
|
|
1510
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1511
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1512
|
+
5. Done
|
|
1472
1513
|
|
|
1473
1514
|
</details>
|
|
1474
1515
|
</div>
|
|
@@ -1557,7 +1598,7 @@ Alibaba Cloud SLS monitoring to Flashduty alert severity mapping:
|
|
|
1557
1598
|
`,h=`---
|
|
1558
1599
|
title: "AWS CloudWatch Integration"
|
|
1559
1600
|
description: "Sync AWS CloudWatch alert events to Flashduty via webhook to achieve automated alert noise reduction"
|
|
1560
|
-
date: "
|
|
1601
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1561
1602
|
url: "https://docs.flashcat.cloud/en/flashduty/aws-cloudwatch-integration-guide"
|
|
1562
1603
|
---
|
|
1563
1604
|
|
|
@@ -1593,9 +1634,9 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1593
1634
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
1594
1635
|
2. Select **AWS CloudWatch** integration:
|
|
1595
1636
|
- **Integration Name**: Define a name for this integration
|
|
1596
|
-
3.
|
|
1597
|
-
4. Click **
|
|
1598
|
-
5.
|
|
1637
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1638
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1639
|
+
5. Done
|
|
1599
1640
|
|
|
1600
1641
|
</details>
|
|
1601
1642
|
</div>
|
|
@@ -1636,7 +1677,7 @@ All CloudWatch metric alarms correspond to Flashduty "warning" severity level al
|
|
|
1636
1677
|
`,u=`---
|
|
1637
1678
|
title: "Baidu Cloud BCM Integration"
|
|
1638
1679
|
description: "Sync Baidu Cloud BCM alerts to Flashduty via webhook for automated alert noise reduction"
|
|
1639
|
-
date: "
|
|
1680
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1640
1681
|
url: "https://docs.flashcat.cloud/en/flashduty/baidu-bcm-integration-guide"
|
|
1641
1682
|
---
|
|
1642
1683
|
|
|
@@ -1672,8 +1713,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1672
1713
|
1. Go to the Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
1673
1714
|
2. Select **Baidu Cloud BCM** integration:
|
|
1674
1715
|
- **Integration Name**: Define a name for this integration
|
|
1675
|
-
3.
|
|
1676
|
-
4. Click **
|
|
1716
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1717
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1677
1718
|
5. Done
|
|
1678
1719
|
|
|
1679
1720
|
</details>
|
|
@@ -1711,7 +1752,7 @@ Severity level mapping from Baidu Cloud Monitor to Flashduty:
|
|
|
1711
1752
|
`,g=`---
|
|
1712
1753
|
title: "Huawei Cloud CES Integration"
|
|
1713
1754
|
description: "Sync Huawei Cloud CES alerts to Flashduty via webhook to achieve automated alert noise reduction"
|
|
1714
|
-
date: "
|
|
1755
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1715
1756
|
url: "https://docs.flashcat.cloud/en/flashduty/huawei-ces-integration-guide"
|
|
1716
1757
|
---
|
|
1717
1758
|
|
|
@@ -1747,8 +1788,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1747
1788
|
1. Go to the Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
1748
1789
|
2. Select **Huawei Cloud CES** integration:
|
|
1749
1790
|
- **Integration Name**: Define a name for this integration
|
|
1750
|
-
3.
|
|
1751
|
-
4. Click **
|
|
1791
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1792
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1752
1793
|
5. Done
|
|
1753
1794
|
|
|
1754
1795
|
</details>
|
|
@@ -1829,8 +1870,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1829
1870
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
1830
1871
|
2. Select **Influxdata** integration:
|
|
1831
1872
|
- **Integration Name**: Define a name for this integration
|
|
1832
|
-
3.
|
|
1833
|
-
4. Click **
|
|
1873
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1874
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1834
1875
|
5. Done
|
|
1835
1876
|
|
|
1836
1877
|
</details>
|
|
@@ -1897,7 +1938,7 @@ Mapping relationship between Influxdata alert events and Flashduty alert severit
|
|
|
1897
1938
|
`,m=`---
|
|
1898
1939
|
title: "Open Falcon Integration"
|
|
1899
1940
|
description: "Sync Open-Falcon alert events to Flashduty via webhook to achieve automated alert noise reduction"
|
|
1900
|
-
date: "
|
|
1941
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1901
1942
|
url: "https://docs.flashcat.cloud/en/flashduty/open-falcon-integration-guide"
|
|
1902
1943
|
---
|
|
1903
1944
|
|
|
@@ -1933,8 +1974,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1933
1974
|
1. Go to Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
1934
1975
|
2. Select **Falcon** integration:
|
|
1935
1976
|
- **Integration Name**: Define a name for this integration
|
|
1936
|
-
3.
|
|
1937
|
-
4. Click **
|
|
1977
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
1978
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
1938
1979
|
5. Done
|
|
1939
1980
|
|
|
1940
1981
|
</details>
|
|
@@ -1981,7 +2022,7 @@ Open-Falcon to Flashduty alert severity mapping:
|
|
|
1981
2022
|
`,f=`---
|
|
1982
2023
|
title: "PagerDuty Integration"
|
|
1983
2024
|
description: "Push alert events to Flashduty through PagerDuty protocol for automated alert noise reduction"
|
|
1984
|
-
date: "
|
|
2025
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
1985
2026
|
url: "https://docs.flashcat.cloud/en/flashduty/pagerduty-integration-guide"
|
|
1986
2027
|
---
|
|
1987
2028
|
|
|
@@ -2021,8 +2062,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2021
2062
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
2022
2063
|
2. Select **PagerDuty** integration:
|
|
2023
2064
|
- **Integration Name**: Define a name for this integration
|
|
2024
|
-
3.
|
|
2025
|
-
4. Click **
|
|
2065
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2066
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2026
2067
|
5. Done
|
|
2027
2068
|
|
|
2028
2069
|
</details>
|
|
@@ -2143,7 +2184,7 @@ pagerduty_v2_payload_source: mysql.host.name
|
|
|
2143
2184
|
`,y=`---
|
|
2144
2185
|
title: "Tencent BlueKing Integration"
|
|
2145
2186
|
description: "Sync Tencent BlueKing monitoring events to Flashduty via webhook for automated alert noise reduction"
|
|
2146
|
-
date: "
|
|
2187
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
2147
2188
|
url: "https://docs.flashcat.cloud/en/flashduty/tencent-bk-integration-guide"
|
|
2148
2189
|
---
|
|
2149
2190
|
|
|
@@ -2179,8 +2220,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2179
2220
|
1. Go to Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
2180
2221
|
2. Select **Tencent BlueKing** integration:
|
|
2181
2222
|
- **Integration Name**: Define a name for this integration
|
|
2182
|
-
3.
|
|
2183
|
-
4. Click **
|
|
2223
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2224
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2184
2225
|
5. Done
|
|
2185
2226
|
|
|
2186
2227
|
</details>
|
|
@@ -2241,7 +2282,7 @@ Alert severity mapping between BlueKing and Flashduty:
|
|
|
2241
2282
|
`,v=`---
|
|
2242
2283
|
title: "Tencent Cloud CLS Integration"
|
|
2243
2284
|
description: "Sync Tencent Cloud Log Service (CLS) monitoring alerts to Flashduty via webhook for automated alert noise reduction"
|
|
2244
|
-
date: "
|
|
2285
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
2245
2286
|
url: "https://docs.flashcat.cloud/en/flashduty/tencent-cls-integration-guide"
|
|
2246
2287
|
---
|
|
2247
2288
|
|
|
@@ -2277,8 +2318,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2277
2318
|
1. Go to the Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
2278
2319
|
2. Select **Tencent Cloud CLS** integration:
|
|
2279
2320
|
- **Integration Name**: Define a name for this integration
|
|
2280
|
-
3.
|
|
2281
|
-
4. Click **
|
|
2321
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2322
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2282
2323
|
5. Done
|
|
2283
2324
|
|
|
2284
2325
|
</details>
|
|
@@ -2383,7 +2424,7 @@ Tencent Cloud CLS monitoring alert level mapping to Flashduty:
|
|
|
2383
2424
|
`,b=`---
|
|
2384
2425
|
title: "Tencent Cloud Monitor CM Integration"
|
|
2385
2426
|
description: "Sync Tencent Cloud Monitor CM alert events to Flashduty via webhook for automated alert noise reduction"
|
|
2386
|
-
date: "
|
|
2427
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
2387
2428
|
url: "https://docs.flashcat.cloud/en/flashduty/tencent-cm-integration-guide"
|
|
2388
2429
|
---
|
|
2389
2430
|
|
|
@@ -2419,8 +2460,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2419
2460
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
2420
2461
|
2. Select **Tencent Cloud Monitor CM** integration:
|
|
2421
2462
|
- **Integration Name**: Define a name for this integration
|
|
2422
|
-
3.
|
|
2423
|
-
4. Click **
|
|
2463
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2464
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2424
2465
|
5. Done
|
|
2425
2466
|
|
|
2426
2467
|
</details>
|
|
@@ -2456,7 +2497,7 @@ All metric alerts from Tencent Cloud Monitor correspond to "warning" severity le
|
|
|
2456
2497
|
`,w=`---
|
|
2457
2498
|
title: "Tencent Cloud EventBridge"
|
|
2458
2499
|
description: "Sync Tencent Cloud EventBridge events to Flashduty via webhook for automated alert noise reduction"
|
|
2459
|
-
date: "
|
|
2500
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
2460
2501
|
url: "https://docs.flashcat.cloud/en/flashduty/tencent-event-bridge-integration-guide"
|
|
2461
2502
|
---
|
|
2462
2503
|
|
|
@@ -2492,8 +2533,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
2492
2533
|
1. Go to the Flashduty console, select **Integration Center => Alerts** to enter the integration selection page
|
|
2493
2534
|
2. Select **Tencent Cloud EventBridge** integration:
|
|
2494
2535
|
- **Integration Name**: Define a name for this integration
|
|
2495
|
-
3.
|
|
2496
|
-
4. Click **
|
|
2536
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2537
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2497
2538
|
5. Done
|
|
2498
2539
|
|
|
2499
2540
|
</details>
|
|
@@ -2584,8 +2625,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
2584
2625
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
2585
2626
|
2. Select **OceanBase** integration:
|
|
2586
2627
|
- **Integration Name**: Define a name for this integration
|
|
2587
|
-
3.
|
|
2588
|
-
4. Click **
|
|
2628
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2629
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2589
2630
|
5. Done
|
|
2590
2631
|
|
|
2591
2632
|
</details>
|
|
@@ -2772,8 +2813,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2772
2813
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
2773
2814
|
2. Select **Graylog** integration:
|
|
2774
2815
|
- **Integration Name**: Define a name for this integration
|
|
2775
|
-
3.
|
|
2776
|
-
4. Click **
|
|
2816
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2817
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2777
2818
|
5. Done
|
|
2778
2819
|
|
|
2779
2820
|
</details>
|
|
@@ -2867,8 +2908,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
2867
2908
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
2868
2909
|
2. Select **Skywalking** integration:
|
|
2869
2910
|
- **Integration Name**: Define a name for this integration
|
|
2870
|
-
3.
|
|
2871
|
-
4. Click **
|
|
2911
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
2912
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2872
2913
|
5. Done
|
|
2873
2914
|
|
|
2874
2915
|
</details>
|
|
@@ -2882,11 +2923,11 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
2882
2923
|
|
|
2883
2924
|
1. Log in to the Skywalking server
|
|
2884
2925
|
2. Locate the Skywalking configuration file ./config/alarm-settings.yml
|
|
2885
|
-
3. Add
|
|
2926
|
+
3. Add level tags to the alert rules
|
|
2886
2927
|
|
|
2887
2928
|
\`\`\`
|
|
2888
2929
|
# Tags are supported in v8.6.0+ versions only, can be omitted for other versions
|
|
2889
|
-
#
|
|
2930
|
+
# level values: Critical, Warning, Info
|
|
2890
2931
|
# Case sensitive
|
|
2891
2932
|
rules:
|
|
2892
2933
|
endpoint_relation_resp_time_rule:
|
|
@@ -2894,7 +2935,7 @@ rules:
|
|
|
2894
2935
|
period: 10
|
|
2895
2936
|
message: Response time of endpoint relation {name} is more than 1000ms in 2 minutes of last 10 minutes
|
|
2896
2937
|
tags:
|
|
2897
|
-
|
|
2938
|
+
level: Warning
|
|
2898
2939
|
\`\`\`
|
|
2899
2940
|
4. Add the FlashDuty webhook URL
|
|
2900
2941
|
|
|
@@ -2966,8 +3007,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2966
3007
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
2967
3008
|
2. Select **Sentry** integration:
|
|
2968
3009
|
- **Integration Name**: Define a name for this integration
|
|
2969
|
-
3.
|
|
2970
|
-
4. Click **
|
|
3010
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3011
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
2971
3012
|
5. Done
|
|
2972
3013
|
|
|
2973
3014
|
</details>
|
|
@@ -3072,8 +3113,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3072
3113
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3073
3114
|
2. Select **Jiankongbao** integration:
|
|
3074
3115
|
- **Integration Name**: Define a name for this integration
|
|
3075
|
-
3.
|
|
3076
|
-
4. Click **
|
|
3116
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3117
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3077
3118
|
5. Done
|
|
3078
3119
|
|
|
3079
3120
|
</details>
|
|
@@ -3124,7 +3165,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3124
3165
|
|2|Info|Info|
|
|
3125
3166
|
|
|
3126
3167
|
</div>
|
|
3127
|
-
`,
|
|
3168
|
+
`,x=`---
|
|
3128
3169
|
title: "AWS EventBridge Alert Events"
|
|
3129
3170
|
description: "Sync AWS EventBridge alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3130
3171
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3163,8 +3204,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3163
3204
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3164
3205
|
2. Select **AWS EventBridge** integration:
|
|
3165
3206
|
- **Integration Name**: Define a name for this integration
|
|
3166
|
-
3.
|
|
3167
|
-
4. Click **
|
|
3207
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3208
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3168
3209
|
5. Done
|
|
3169
3210
|
|
|
3170
3211
|
</details>
|
|
@@ -3265,8 +3306,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3265
3306
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3266
3307
|
2. Select **Dynatrace** integration:
|
|
3267
3308
|
- **Integration Name**: Define a name for this integration
|
|
3268
|
-
3.
|
|
3269
|
-
4. Click **
|
|
3309
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3310
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3270
3311
|
5. Done
|
|
3271
3312
|
|
|
3272
3313
|
</details>
|
|
@@ -3333,7 +3374,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3333
3374
|
|CUSTOM_ALERT|Info|info|
|
|
3334
3375
|
|
|
3335
3376
|
</div>
|
|
3336
|
-
`,
|
|
3377
|
+
`,L=`---
|
|
3337
3378
|
title: "Huawei Cloud LTS Alert Events"
|
|
3338
3379
|
description: "Sync Huawei Cloud Log Tank Service (LTS) alert events to Flashduty via webhook for automated alert noise reduction."
|
|
3339
3380
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3372,8 +3413,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3372
3413
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3373
3414
|
2. Select **Huawei Cloud LTS** integration:
|
|
3374
3415
|
- **Integration Name**: Define a name for this integration
|
|
3375
|
-
3.
|
|
3376
|
-
4. Click **
|
|
3416
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3417
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3377
3418
|
5. Done
|
|
3378
3419
|
|
|
3379
3420
|
</details>
|
|
@@ -3446,7 +3487,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3446
3487
|
|Info|Info|Info|
|
|
3447
3488
|
|
|
3448
3489
|
</div>
|
|
3449
|
-
`,
|
|
3490
|
+
`,F=`---
|
|
3450
3491
|
title: "Google Cloud Monitoring Alert Events"
|
|
3451
3492
|
description: "Sync Google Cloud Monitoring alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3452
3493
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -3485,8 +3526,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3485
3526
|
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
3486
3527
|
2. Select **Google Cloud Monitoring** integration:
|
|
3487
3528
|
- **Integration Name**: Define a name for this integration
|
|
3488
|
-
3.
|
|
3489
|
-
4. Click **
|
|
3529
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3530
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3490
3531
|
5. Done
|
|
3491
3532
|
|
|
3492
3533
|
</details>
|
|
@@ -3576,8 +3617,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3576
3617
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3577
3618
|
2. Select **Splunk** integration:
|
|
3578
3619
|
- **Integration Name**: Define a name for this integration
|
|
3579
|
-
3.
|
|
3580
|
-
4. Click **
|
|
3620
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3621
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3581
3622
|
5. Done
|
|
3582
3623
|
|
|
3583
3624
|
</details>
|
|
@@ -3651,8 +3692,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3651
3692
|
1. Go to the Flashduty console, select **Integration Center=>Alerts**, and enter the integration selection page
|
|
3652
3693
|
2. Select **AppDynamics** integration:
|
|
3653
3694
|
- **Integration Name**: Define a name for this integration
|
|
3654
|
-
3.
|
|
3655
|
-
4. Click **
|
|
3695
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3696
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3656
3697
|
5. Done
|
|
3657
3698
|
|
|
3658
3699
|
</details>
|
|
@@ -3772,7 +3813,7 @@ If you need to configure \`Custom Templating Variables\`, you can refer to the f
|
|
|
3772
3813
|
|INFO|Info|Info|
|
|
3773
3814
|
|
|
3774
3815
|
</div>
|
|
3775
|
-
`,
|
|
3816
|
+
`,D=`---
|
|
3776
3817
|
title: "SolarWinds Alert Events"
|
|
3777
3818
|
description: "Sync SolarWinds alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3778
3819
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3811,8 +3852,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3811
3852
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3812
3853
|
2. Select **SolarWinds** integration:
|
|
3813
3854
|
- **Integration Name**: Define a name for this integration
|
|
3814
|
-
3.
|
|
3815
|
-
4. Click **
|
|
3855
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3856
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3816
3857
|
5. Done
|
|
3817
3858
|
|
|
3818
3859
|
</details>
|
|
@@ -3875,7 +3916,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3875
3916
|
|Info|Info|Info|
|
|
3876
3917
|
|
|
3877
3918
|
</div>
|
|
3878
|
-
`,
|
|
3919
|
+
`,U=`---
|
|
3879
3920
|
title: "Volcengine Cloud Monitor Alert Events"
|
|
3880
3921
|
description: "Sync Volcengine Cloud Monitor alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3881
3922
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3914,8 +3955,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3914
3955
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3915
3956
|
2. Select **Volcengine CM Metrics** integration:
|
|
3916
3957
|
- **Integration Name**: Define a name for this integration
|
|
3917
|
-
3.
|
|
3918
|
-
4. Click **
|
|
3958
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
3959
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3919
3960
|
5. Done
|
|
3920
3961
|
|
|
3921
3962
|
</details>
|
|
@@ -3964,7 +4005,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3964
4005
|
|Notice|Info|Info|
|
|
3965
4006
|
|
|
3966
4007
|
</div>
|
|
3967
|
-
`,
|
|
4008
|
+
`,E=`---
|
|
3968
4009
|
title: "Volcengine Cloud Monitor Event Center Alert Events"
|
|
3969
4010
|
description: "Sync Volcengine Cloud Monitor Event Center alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3970
4011
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4003,8 +4044,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4003
4044
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4004
4045
|
2. Select **Volcengine CM Metrics** integration:
|
|
4005
4046
|
- **Integration Name**: Define a name for this integration
|
|
4006
|
-
3.
|
|
4007
|
-
4. Click **
|
|
4047
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4048
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4008
4049
|
5. Done
|
|
4009
4050
|
|
|
4010
4051
|
</details>
|
|
@@ -4051,7 +4092,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4051
4092
|
|Notice|Info|Info|
|
|
4052
4093
|
|
|
4053
4094
|
</div>
|
|
4054
|
-
`,
|
|
4095
|
+
`,N=`---
|
|
4055
4096
|
title: "Volcengine Log Service (TLS) Alert Events"
|
|
4056
4097
|
description: "Sync Volcengine Log Service (TLS) alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4057
4098
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4090,8 +4131,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4090
4131
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4091
4132
|
2. Select **Volcengine TLS** integration:
|
|
4092
4133
|
- **Integration Name**: Define a name for this integration
|
|
4093
|
-
3.
|
|
4094
|
-
4. Click **
|
|
4134
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4135
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4095
4136
|
5. Done
|
|
4096
4137
|
|
|
4097
4138
|
</details>
|
|
@@ -4188,7 +4229,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4188
4229
|
</div>
|
|
4189
4230
|
|
|
4190
4231
|
</div>
|
|
4191
|
-
`,
|
|
4232
|
+
`,P=`---
|
|
4192
4233
|
title: "OpManager Alert Events"
|
|
4193
4234
|
description: "Sync OpManager alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4194
4235
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4227,8 +4268,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4227
4268
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4228
4269
|
2. Select **OpManager** integration:
|
|
4229
4270
|
- **Integration Name**: Define a name for this integration
|
|
4230
|
-
3.
|
|
4231
|
-
4. Click **
|
|
4271
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4272
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4232
4273
|
5. Done
|
|
4233
4274
|
|
|
4234
4275
|
</details>
|
|
@@ -4361,8 +4402,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4361
4402
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4362
4403
|
2. Select **Meraki** integration:
|
|
4363
4404
|
- **Integration Name**: Define a name for this integration
|
|
4364
|
-
3.
|
|
4365
|
-
4. Click **
|
|
4405
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4406
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4366
4407
|
5. Done
|
|
4367
4408
|
|
|
4368
4409
|
</details>
|
|
@@ -4436,8 +4477,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4436
4477
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4437
4478
|
2. Select **StateCloud** integration:
|
|
4438
4479
|
- **Integration Name**: Define a name for this integration
|
|
4439
|
-
3.
|
|
4440
|
-
4. Click **
|
|
4480
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4481
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4441
4482
|
5. Done
|
|
4442
4483
|
|
|
4443
4484
|
</details>
|
|
@@ -4520,8 +4561,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4520
4561
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4521
4562
|
2. Select **Guance** integration:
|
|
4522
4563
|
- **Integration Name**: Define a name for this integration
|
|
4523
|
-
3.
|
|
4524
|
-
4. Click **
|
|
4564
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4565
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4525
4566
|
5. Done
|
|
4526
4567
|
|
|
4527
4568
|
</details>
|
|
@@ -4566,7 +4607,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4566
4607
|
| Data Missing | Info | Info |
|
|
4567
4608
|
|
|
4568
4609
|
</div>
|
|
4569
|
-
`,
|
|
4610
|
+
`,q=`---
|
|
4570
4611
|
title: "Zilliz Alert Events"
|
|
4571
4612
|
description: "Sync Zilliz alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4572
4613
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4605,8 +4646,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4605
4646
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4606
4647
|
2. Select **Zilliz** integration:
|
|
4607
4648
|
- **Integration Name**: Define a name for this integration
|
|
4608
|
-
3.
|
|
4609
|
-
4. Click **
|
|
4649
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4650
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4610
4651
|
5. Done
|
|
4611
4652
|
|
|
4612
4653
|
</details>
|
|
@@ -4639,7 +4680,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4639
4680
|
|
|
4640
4681
|
</div>
|
|
4641
4682
|
|
|
4642
|
-
`,
|
|
4683
|
+
`,O=`---
|
|
4643
4684
|
title: "Huawei Cloud APM Alerts"
|
|
4644
4685
|
description: "Sync Huawei Cloud APM alerts to Flashduty through webhook to achieve automatic alert noise reduction"
|
|
4645
4686
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4678,8 +4719,8 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
4678
4719
|
1. Go to Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
4679
4720
|
2. Select **Huawei Cloud APM** integration:
|
|
4680
4721
|
- **Integration Name**: Define a name for the current integration
|
|
4681
|
-
3.
|
|
4682
|
-
4. Click **
|
|
4722
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4723
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4683
4724
|
5. Done.
|
|
4684
4725
|
|
|
4685
4726
|
</details>
|
|
@@ -4745,10 +4786,383 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
4745
4786
|
|
|
4746
4787
|
</div>
|
|
4747
4788
|
|
|
4748
|
-
`,
|
|
4789
|
+
`,Y=`---
|
|
4790
|
+
title: "zstack integration"
|
|
4791
|
+
description: "Push ZStack alerts to Flashduty via webhook, to achieve automatic alert noise reduction."
|
|
4792
|
+
date: "2024-07-05T10:00:00+08:00"
|
|
4793
|
+
url: "https://docs.flashcat.cloud/en/flashduty/zstack-integration-guide"
|
|
4794
|
+
---
|
|
4795
|
+
|
|
4796
|
+
Push ZStack alerts to Flashduty via webhook, to achieve automatic alert noise reduction.
|
|
4797
|
+
|
|
4798
|
+
<div class="hide">
|
|
4799
|
+
|
|
4800
|
+
## In Flashduty
|
|
4801
|
+
---
|
|
4802
|
+
You can obtain an integration push URL through either of these two methods:
|
|
4803
|
+
|
|
4804
|
+
### Using Dedicated Integration
|
|
4805
|
+
|
|
4806
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
4807
|
+
|
|
4808
|
+
<details>
|
|
4809
|
+
<summary>Expand</summary>
|
|
4810
|
+
|
|
4811
|
+
1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
|
|
4812
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
4813
|
+
3. Choose **ZStack** integration and click **Save** to generate a card
|
|
4814
|
+
4. Click the generated card to view the **push URL**, copy it for later use, and you're done
|
|
4815
|
+
|
|
4816
|
+
</details>
|
|
4817
|
+
|
|
4818
|
+
### Using Shared Integration
|
|
4819
|
+
|
|
4820
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
4821
|
+
|
|
4822
|
+
<details>
|
|
4823
|
+
<summary>Expand</summary>
|
|
4824
|
+
|
|
4825
|
+
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4826
|
+
2. Select **ZStack** integration:
|
|
4827
|
+
- **Integration Name**: Define a name for this integration
|
|
4828
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4829
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4830
|
+
5. Done
|
|
4831
|
+
|
|
4832
|
+
</details>
|
|
4833
|
+
</div>
|
|
4834
|
+
|
|
4835
|
+
|
|
4836
|
+
## In ZStack
|
|
4837
|
+
---
|
|
4838
|
+
|
|
4839
|
+
<div class="md-block">
|
|
4840
|
+
|
|
4841
|
+
## 一、Create Notification Object
|
|
4842
|
+
|
|
4843
|
+
### Step 1: Create Notification Object
|
|
4844
|
+
1. Login to your \`ZStack\` console, find \`Cloud Monitoring\` in the \`Platform O&M\` menu
|
|
4845
|
+
2. Click \`Endpoint\`, click \`Create Endpoint\` or edit the existing endpoint
|
|
4846
|
+
3. In the edit page, Name it \`Flashduty\`, select \`Webhook\` type, and fill in the <span class='integration_url'>push URL</span> of the alert integration
|
|
4847
|
+
4. Click \`Send Test Message\`, if the message is sent successfully, it means the configuration is successful
|
|
4848
|
+
5. Click \`OK\` to complete the configuration
|
|
4849
|
+
|
|
4850
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/zstack-1.png" />
|
|
4851
|
+
|
|
4852
|
+
### Step 2: Use Notification Object in Alert Policy
|
|
4853
|
+
|
|
4854
|
+
1. Login to your \`ZStack\` console, find \`Cloud Monitoring\` in the \`Platform O&M\` menu
|
|
4855
|
+
2. Click \`Alarm\`, click \`Create Resource Alarm\` or \`Create Event Alarm\`, or edit the existing alarm object
|
|
4856
|
+
3. In the edit page, select the created \`Flashduty\` Endpoint (\`Resource Alarm\` is recommended to open the recovery notification)
|
|
4857
|
+
4. Configure other settings as needed, and click \`OK\` to complete the configuration
|
|
4858
|
+
|
|
4859
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/zstack-2.png" />
|
|
4860
|
+
|
|
4861
|
+
|
|
4862
|
+
|
|
4863
|
+
</dev>
|
|
4864
|
+
|
|
4865
|
+
## 二、Status Mapping
|
|
4866
|
+
|
|
4867
|
+
<div class="md-block">
|
|
4868
|
+
|
|
4869
|
+
| ZStack | Flashduty | Status |
|
|
4870
|
+
| ---------- | -------- | ---- |
|
|
4871
|
+
| Emergent | Critical | Critical |
|
|
4872
|
+
| Major | Warning | Warning |
|
|
4873
|
+
| Info | Info | Info |
|
|
4874
|
+
|
|
4875
|
+
</div>
|
|
4876
|
+
|
|
4877
|
+
`,H=`---
|
|
4878
|
+
title: "Keep Alert Integration Guide"
|
|
4879
|
+
description: "Push alert events to Flashduty through Keep's Provider to achieve automated alert noise reduction."
|
|
4880
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4881
|
+
url: "https://docs.flashcat.cloud/en/flashduty/keep-alert-integration-guide"
|
|
4882
|
+
---
|
|
4883
|
+
|
|
4884
|
+
Push alert events to Flashduty through Keep's Flashduty Provider to achieve automated alert noise reduction.
|
|
4885
|
+
|
|
4886
|
+
<div class="hide">
|
|
4887
|
+
|
|
4888
|
+
## In Flashduty
|
|
4889
|
+
|
|
4890
|
+
You can obtain an integration key through either of these 2 methods:
|
|
4891
|
+
|
|
4892
|
+
#### Using Dedicated Integration
|
|
4893
|
+
|
|
4894
|
+
Choose this method when you don't need to route alert events to different channels - it's simpler.
|
|
4895
|
+
|
|
4896
|
+
<details>
|
|
4897
|
+
<summary>Expand</summary>
|
|
4898
|
+
|
|
4899
|
+
1. Enter the Flashduty console, select **Channel**, and go to a specific channel's details page
|
|
4900
|
+
2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
|
|
4901
|
+
3. Choose **Keep** integration, click **Save** to generate a card
|
|
4902
|
+
4. Click the generated card to view the **Integration Key**, copy it for later use, and you're done
|
|
4903
|
+
|
|
4904
|
+
</details>
|
|
4905
|
+
|
|
4906
|
+
#### Using Shared Integration
|
|
4907
|
+
|
|
4908
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
4909
|
+
|
|
4910
|
+
<details>
|
|
4911
|
+
<summary>Expand</summary>
|
|
4912
|
+
|
|
4913
|
+
1. Enter the Flashduty console, select **Integration Center=>Alert Events** to access the integration selection page
|
|
4914
|
+
2. Select **Keep** integration:
|
|
4915
|
+
- **Integration Name**: Define a name for this integration
|
|
4916
|
+
3. Configure default routing and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4917
|
+
4. Click **Save** and copy the newly generated **Integration Key** for later use
|
|
4918
|
+
5. Done
|
|
4919
|
+
|
|
4920
|
+
</details>
|
|
4921
|
+
</div>
|
|
4922
|
+
|
|
4923
|
+
|
|
4924
|
+
## In Keep
|
|
4925
|
+
---
|
|
4926
|
+
|
|
4927
|
+
### Field Definitions
|
|
4928
|
+
|
|
4929
|
+
Field|Required|Type|Definition
|
|
4930
|
+
:-:|:-:|:-:|:---
|
|
4931
|
+
| title | Yes | string | Alert title, maximum \`512\` characters, will be truncated if exceeded
|
|
4932
|
+
| event_status | Yes | string | Alert status.<br><br>Enumerated values (\`First letter capitalized\`): *Critical*: Critical, *Warning*: Warning, *Info*: Info, *Ok*: Recovery.<br><br>When set to Ok, it indicates automatic recovery of the alert
|
|
4933
|
+
| alert_key | No | string | Alert identifier, used for updating or automatically recovering existing alerts.<br><br>You can customize this value, but it cannot exceed \`255\` characters. You can also rely on system-generated values, which will be returned in the response.<br><br>This value must exist if you're reporting a recovery event
|
|
4934
|
+
| description | No | string | Alert description, maximum \`2048\` characters, will be truncated if exceeded
|
|
4935
|
+
| labels | No | map | Alert label collection, where key is the label name and value is the label value:<br><br>1. Both label key and value are case-sensitive strings<br>2. Label keys should not exceed \`128\` characters and follow Prometheus label naming conventions. Values should not exceed \`2048\` characters, will be truncated if exceeded<br>3. Maximum \`50\` labels allowed. \`Label content refers to\` [Best Practices](#best-practices)<br><br>Example: "resource": "171.26.23.22", "check": "api latency > 500ms"
|
|
4936
|
+
|
|
4937
|
+
|
|
4938
|
+
|
|
4939
|
+
### Configuration Method
|
|
4940
|
+
|
|
4941
|
+
#### Step 1: Configure Flashduty Provider
|
|
4942
|
+
1. Login to Keep console, enter \`Providers\` list, select and click \`Flashduty\`.
|
|
4943
|
+
2. Fill in the \`Flashduty Integration Key\` field with the \`Integration Key\` of Flashduty.
|
|
4944
|
+
3. Click \`Save\` to save the configuration.
|
|
4945
|
+
|
|
4946
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/keep-1.png" />
|
|
4947
|
+
|
|
4948
|
+
#### Step 2: Configure WorkFlows
|
|
4949
|
+
1. Login to Keep console, enter \`WorkFlows\` , create or edit an existing Workflow.
|
|
4950
|
+
2. Configure the \`Trigger\` section as needed.
|
|
4951
|
+
3. In the \`Steps\` section, select \`flashduty-action\` and select the \`Flashduty Provider\` configured in the previous step.
|
|
4952
|
+
4. In the \`flashduty-action\`'s \`Configure\` section, configure the alert title, alert status, alert description, and alert labels (for details on the field definitions, please refer to [Field Definitions](#field-definitions)).
|
|
4953
|
+
5. Click \`Save\` to save the configuration.
|
|
4954
|
+
|
|
4955
|
+
|
|
4956
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/keep-2.png" />
|
|
4957
|
+
|
|
4958
|
+
`,$=`---
|
|
4959
|
+
title: "ElastAlert2 Alert Integration Guide"
|
|
4960
|
+
description: "Push alert events to Flashduty through ElastAlert2's Provider to achieve automated alert noise reduction."
|
|
4961
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4962
|
+
url: "https://docs.flashcat.cloud/en/flashduty/elastalert2-alert-integration-guide"
|
|
4963
|
+
---
|
|
4964
|
+
|
|
4965
|
+
Push ElastAlert2 alerts to Flashduty via webhook, to achieve automatic alert noise reduction.
|
|
4966
|
+
|
|
4967
|
+
<div class="hide">
|
|
4968
|
+
|
|
4969
|
+
## In Flashduty
|
|
4970
|
+
---
|
|
4971
|
+
You can obtain an integration push URL through either of these two methods:
|
|
4972
|
+
|
|
4973
|
+
### Using Dedicated Integration
|
|
4974
|
+
|
|
4975
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
4976
|
+
|
|
4977
|
+
<details>
|
|
4978
|
+
<summary>Expand</summary>
|
|
4979
|
+
|
|
4980
|
+
1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
|
|
4981
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
4982
|
+
3. Choose **ElastAlert 2** integration and click **Save** to generate a card
|
|
4983
|
+
4. Click the generated card to view the **Integration Key**, copy it for later use, and you're done
|
|
4984
|
+
|
|
4985
|
+
</details>
|
|
4986
|
+
|
|
4987
|
+
### Using Shared Integration
|
|
4988
|
+
|
|
4989
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
4990
|
+
|
|
4991
|
+
<details>
|
|
4992
|
+
<summary>Expand</summary>
|
|
4993
|
+
|
|
4994
|
+
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4995
|
+
2. Select **ElastAlert 2** integration:
|
|
4996
|
+
- **Integration Name**: Define a name for this integration
|
|
4997
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
4998
|
+
4. Click **Save** and copy the newly generated **Integration Key** for later use
|
|
4999
|
+
5. Done
|
|
5000
|
+
|
|
5001
|
+
</details>
|
|
5002
|
+
</div>
|
|
5003
|
+
|
|
5004
|
+
|
|
5005
|
+
## In ElastAlert 2
|
|
5006
|
+
---
|
|
5007
|
+
|
|
5008
|
+
### Configure ElastAlert 2 Alerts
|
|
5009
|
+
Follow the [ElastAlert FlashDuty](https://elastalert2.readthedocs.io/en/latest/alerts.html#flashduty) push configuration document
|
|
5010
|
+
|
|
5011
|
+
1. Create or edit the alert rule file, for example \`rules/elastalert2_alert.yaml\`.
|
|
5012
|
+
2. Fill in the \`flashduty\` alert type in the \`alert\` field.
|
|
5013
|
+
3. Fill in the integrated \`integration key\` in the \`flashduty_integration_key\` field.
|
|
5014
|
+
4. The \`flashduty_title\` and \`flashduty_event_status\` are required fields, and other fields can be filled in as needed. For the field definitions, please refer to the following table.
|
|
5015
|
+
|
|
5016
|
+
Field|Required|Type|Definition
|
|
5017
|
+
:-:|:-:|:-:|:---
|
|
5018
|
+
| title | 是 | string | The alert title, it cannot exceed \`512\` characters.
|
|
5019
|
+
| event_status | 是 | string | The alert status.<br><br>Enum values (capitalized): *Critical*:severe, *Warning*:warning, *Info*:reminder, *Ok*:recovery.<br><br>When specified as Ok, it means automatic recovery of the alert.
|
|
5020
|
+
| alert_key | 否 | string | The alert identifier, used to update or automatically recover existing alerts. You can customize this value, but it cannot exceed \`255\` characters. You can also rely on the system to automatically generate this value, which will be returned in the response. If you report a recovery event, this value must exist.
|
|
5021
|
+
| description | 否 | string | The alert description
|
|
5022
|
+
| check | 否 | string | The alert check item
|
|
5023
|
+
| resource | 否 | string | The alert resource
|
|
5024
|
+
| service | 否 | string | The alert service name
|
|
5025
|
+
| metric | 否 | string | The alert metric name
|
|
5026
|
+
| group | 否 | string | The alert group
|
|
5027
|
+
| cluster | 否 | string | The alert cluster
|
|
5028
|
+
| app | 否 | string | The alert application
|
|
5029
|
+
| env | 否 | string | The alert environment
|
|
5030
|
+
|
|
5031
|
+
|
|
5032
|
+
\`\`\`yaml
|
|
5033
|
+
|
|
5034
|
+
name: "elastalert2 alert"
|
|
5035
|
+
type: "frequency"
|
|
5036
|
+
index: "pgy_audit*"
|
|
5037
|
+
is_enabled: true
|
|
5038
|
+
num_events: 1
|
|
5039
|
+
realert:
|
|
5040
|
+
minutes: 1
|
|
5041
|
+
terms_size: 50
|
|
5042
|
+
scan_entire_timeframe: true
|
|
5043
|
+
timeframe:
|
|
5044
|
+
minutes: 60
|
|
5045
|
+
timestamp_field: "created_at"
|
|
5046
|
+
timestamp_type: "unix_ms"
|
|
5047
|
+
use_strftime_index: false
|
|
5048
|
+
alert_subject: "Test {0} 123 aa☃ {1}"
|
|
5049
|
+
alert_subject_args:
|
|
5050
|
+
- "account_id"
|
|
5051
|
+
- "operation"
|
|
5052
|
+
alert_text: "Test {0} 123 bb☃ {1}"
|
|
5053
|
+
alert_text_args:
|
|
5054
|
+
- "request_id"
|
|
5055
|
+
- "operation_name"
|
|
5056
|
+
filter:
|
|
5057
|
+
- query:
|
|
5058
|
+
query_string:
|
|
5059
|
+
query: "created_at:*"
|
|
5060
|
+
|
|
5061
|
+
# ------- FlashDuty ----------------
|
|
5062
|
+
alert: flashduty
|
|
5063
|
+
flashduty_integration_key: "xxxx"
|
|
5064
|
+
flashduty_title: "elastalert2 alert"
|
|
5065
|
+
flashduty_event_status: "Warning"
|
|
5066
|
+
flashduty_alert_key: "abc"
|
|
5067
|
+
flashduty_description: "log error"
|
|
5068
|
+
flashduty_check: "log error"
|
|
5069
|
+
flashduty_resource: "10.1.1.1"
|
|
5070
|
+
flashduty_service: "service1"
|
|
5071
|
+
flashduty_metric: "error"
|
|
5072
|
+
flashduty_group: "group1"
|
|
5073
|
+
flashduty_cluster: "bj"
|
|
5074
|
+
flashduty_app: "app1"
|
|
5075
|
+
flashduty_env: "dev"
|
|
5076
|
+
# ------- FlashDuty ----------------
|
|
5077
|
+
\`\`\`
|
|
5078
|
+
|
|
5079
|
+
5. Restart ElastAlert and wait for the alert to trigger.`,j=`---
|
|
5080
|
+
title: "Dingtalk Alert Integration"
|
|
5081
|
+
description: "Generate a unique Dingtalk robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Dingtalk"
|
|
5082
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5083
|
+
url: "https://docs.flashcat.cloud/en/flashduty/dingtalk-alert-integration-guide"
|
|
5084
|
+
---
|
|
5085
|
+
|
|
5086
|
+
Generate a unique Dingtalk robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Dingtalk.
|
|
5087
|
+
|
|
5088
|
+
<div class="hide">
|
|
5089
|
+
|
|
5090
|
+
## Operation Steps
|
|
5091
|
+
---
|
|
5092
|
+
|
|
5093
|
+
### Create Dingtalk Alert Integration
|
|
5094
|
+
|
|
5095
|
+
You can obtain a Dingtalk alert integration address through either of these two methods:
|
|
5096
|
+
|
|
5097
|
+
#### Using Dedicated Integration
|
|
5098
|
+
|
|
5099
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
5100
|
+
|
|
5101
|
+
<details>
|
|
5102
|
+
<summary>Expand</summary>
|
|
5103
|
+
|
|
5104
|
+
1. Go to the Flashduty console, select **Channel**, and enter a specific channel's details page
|
|
5105
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
5106
|
+
3. Choose **Dingtalk Alert** integration and click **Save** to generate a card
|
|
5107
|
+
4. Click the generated card to view the **Dingtalk Alert Integration URL**, copy it for later use, and you're done
|
|
5108
|
+
|
|
5109
|
+
</details>
|
|
5110
|
+
|
|
5111
|
+
#### Using Shared Integration
|
|
5112
|
+
|
|
5113
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
5114
|
+
|
|
5115
|
+
<details>
|
|
5116
|
+
<summary>Expand</summary>
|
|
5117
|
+
|
|
5118
|
+
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
5119
|
+
2. Select **Dingtalk Alert** integration:
|
|
5120
|
+
- **Integration Name**: Define a name for the current integration
|
|
5121
|
+
- **Message Type**: Select Dingtalk alert message type, currently only Text and Markdown are supported
|
|
5122
|
+
- **Push Mode**: Choose when to trigger or recover alerts for Dingtalk notifications
|
|
5123
|
+
3. Copy the **Dingtalk Alert Integration URL** for later use
|
|
5124
|
+
4. Configure the default route and select the corresponding channel (after integration creation, you can go to \`Routes\` to configure more routing rules)
|
|
5125
|
+
5. Done
|
|
5126
|
+
|
|
5127
|
+
</details>
|
|
5128
|
+
</div>
|
|
5129
|
+
|
|
5130
|
+
### Customize Dingtalk Alert Integration
|
|
5131
|
+
|
|
5132
|
+
#### Dingtalk Alert Integration URL
|
|
5133
|
+
|
|
5134
|
+
The system will generate a unique Dingtalk alert integration URL for you. This URL is compatible with Dingtalk robot message protocol. When platforms only support Dingtalk robot channels, you can use this URL to receive corresponding messages.
|
|
5135
|
+
|
|
5136
|
+
#### Push Mode
|
|
5137
|
+
|
|
5138
|
+
By default, the system always creates new alerts for each message, but you can switch to these modes:
|
|
5139
|
+
|
|
5140
|
+
1. **Trigger or Update Alert Based on Message Title**: In this mode, when receiving a new message, the system searches for open alerts based on the message title. If an alert is found, it will be updated; otherwise, a new alert will be triggered.
|
|
5141
|
+
2. **Trigger or Close Alert Based on Rules**: In this mode, when receiving a new message, the system matches messages according to your rules and triggers new alerts or closes existing alerts based on the matching results.
|
|
5142
|
+
|
|
5143
|
+
- You need to fill in at least one **trigger** rule
|
|
5144
|
+
- You must set up regex extraction rules for Alert Key. The system uses this field to find historical alerts for updates or closure. **If regex extraction fails, the system will use the message title to generate an Alert Key** to ensure alerts won't be lost due to configuration errors
|
|
5145
|
+
- You can choose whether to discard messages when none of the rules match
|
|
5146
|
+
|
|
5147
|
+
Configuration example:
|
|
5148
|
+
|
|
5149
|
+
- Receive all messages, close the alert when the message content contains **RESOLVED**, otherwise trigger a new alert
|
|
5150
|
+
- Extract Alert Key from message title using the rule **/(.*)/**.
|
|
5151
|
+
|
|
5152
|
+
|
|
5153
|
+
### Notes
|
|
5154
|
+
- Dingtalk alert integration URL only supports Text and Markdown message types; other message types cannot be received
|
|
5155
|
+
- When Dingtalk message type is Text, Flashduty will generate a default alert title "Dingtalk Alert"
|
|
5156
|
+
|
|
5157
|
+
## Severity Mapping
|
|
5158
|
+
---
|
|
5159
|
+
|
|
5160
|
+
Currently, all alerts pushed to Flashduty through email integration are set to Warning severity.
|
|
5161
|
+
|
|
5162
|
+
`,B=`---
|
|
4749
5163
|
title: "Custom Change Event Integration Guide"
|
|
4750
5164
|
description: "Push change events from your own systems to Flashduty using standard protocols. Most incidents are caused by changes, and the correlation between changes and alerts helps quickly identify incident causes."
|
|
4751
|
-
date: "
|
|
5165
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4752
5166
|
url: "https://docs.flashcat.cloud/en/flashduty/custom-change-integration-guide"
|
|
4753
5167
|
---
|
|
4754
5168
|
|
|
@@ -4802,10 +5216,10 @@ Labels are descriptions of events. You should enrich label content as much as po
|
|
|
4802
5216
|
|
|
4803
5217
|
</details>
|
|
4804
5218
|
|
|
4805
|
-
`,
|
|
5219
|
+
`,z=`---
|
|
4806
5220
|
title: "Jira Issue Events"
|
|
4807
5221
|
description: "Sync Jira Issue events to Flashduty via webhooks to collect change events."
|
|
4808
|
-
date: "
|
|
5222
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4809
5223
|
url: "https://docs.flashcat.cloud/en/flashduty/jira-integration-guide"
|
|
4810
5224
|
---
|
|
4811
5225
|
|
|
@@ -4876,7 +5290,7 @@ Flashduty extracts the status.name information from the webhook payload by defau
|
|
|
4876
5290
|
Please contact Flashduty if you wish to modify this mapping.
|
|
4877
5291
|
|
|
4878
5292
|
</div>
|
|
4879
|
-
|
|
5293
|
+
`,V=`---
|
|
4880
5294
|
title: Contributing to our documentation — Meilisearch documentation
|
|
4881
5295
|
description: The Meilisearch documentation is open-source. Learn how to help make it even better.
|
|
4882
5296
|
sidebarDepth: 3
|
|
@@ -5011,10 +5425,10 @@ Once published, you can access the application via mobile/PC client. First-time
|
|
|
5011
5425
|
|Group Bot Webhook|Maximum 100 calls/minute|
|
|
5012
5426
|
|Sending messages to the same user or group|Maximum 5 calls/second|
|
|
5013
5427
|
|
|
5014
|
-
**Note:** Messages cannot be pushed normally when exceeding limits, please use notification channels reasonably`,
|
|
5428
|
+
**Note:** Messages cannot be pushed normally when exceeding limits, please use notification channels reasonably`,K=`---
|
|
5015
5429
|
title: "Dingtalk Integration"
|
|
5016
5430
|
description: "Integrate with Dingtalk custom application to receive and respond to alerts within Dingtalk"
|
|
5017
|
-
date: "
|
|
5431
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5018
5432
|
url: "https://docs.flashcat.cloud/en/flashduty/dingtalk-integration-guide"
|
|
5019
5433
|
---
|
|
5020
5434
|
|
|
@@ -5167,10 +5581,10 @@ After the application is released, you can access it via mobile/PC client. First
|
|
|
5167
5581
|
|Enterprise|5,500,000|60|1st of each month|
|
|
5168
5582
|
|
|
5169
5583
|
**Note:** Messages cannot be pushed normally after exceeding limits, please use notification channels reasonably
|
|
5170
|
-
`,
|
|
5584
|
+
`,J=`---
|
|
5171
5585
|
title: "WeCom Integration"
|
|
5172
5586
|
description: "Integrate WeCom third-party application to receive and respond to alerts within WeCom"
|
|
5173
|
-
date: "
|
|
5587
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5174
5588
|
url: "https://docs.flashcat.cloud/en/flashduty/wecom-integration-guide"
|
|
5175
5589
|
---
|
|
5176
5590
|
|
|
@@ -5246,10 +5660,10 @@ Integrate WeCom third-party application to receive and respond to alerts within
|
|
|
5246
5660
|
7. **Incident notification fails with \`WeCom License Not Activated\`?**
|
|
5247
5661
|
|
|
5248
5662
|
- Contact Flashduty customer service or dedicated support for license purchase and activation
|
|
5249
|
-
`,
|
|
5663
|
+
`,Z=`---
|
|
5250
5664
|
title: "Slack Integration"
|
|
5251
5665
|
description: "Integrate with Slack to receive and respond to alerts within Slack"
|
|
5252
|
-
date: "
|
|
5666
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5253
5667
|
url: "https://docs.flashcat.cloud/en/flashduty/slack-integration-guide"
|
|
5254
5668
|
---
|
|
5255
5669
|
|
|
@@ -5300,10 +5714,10 @@ Integrate with Slack to receive and respond to alerts within Slack.
|
|
|
5300
5714
|
|
|
5301
5715
|
8. **Slack App shows Other questions error**
|
|
5302
5716
|
- Try again, as this might be an unrecorded issue
|
|
5303
|
-
- If the error persists, contact customer support`,
|
|
5717
|
+
- If the error persists, contact customer support`,Q=`---
|
|
5304
5718
|
title: "Microsoft Teams Integration"
|
|
5305
5719
|
description: "Integrate Microsoft Teams as a third-party application to receive and respond to alerts within Microsoft Teams"
|
|
5306
|
-
date: "
|
|
5720
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5307
5721
|
url: "https://docs.flashcat.cloud/en/flashduty/microsoft-teams-integration-guide"
|
|
5308
5722
|
---
|
|
5309
5723
|
|
|
@@ -5395,7 +5809,7 @@ Please check in Integration Center => Instant Messaging => Microsoft Teams under
|
|
|
5395
5809
|
Currently not supported
|
|
5396
5810
|
</details>
|
|
5397
5811
|
|
|
5398
|
-
`,
|
|
5812
|
+
`,X=`Configure alert webhooks to receive HTTP callbacks at your specified URL when alerts have specific actions (such as triggering or closing). The callback content includes the latest key information about the alert, allowing integration with your custom tools.
|
|
5399
5813
|
|
|
5400
5814
|
<span id="EventTypes"></span>
|
|
5401
5815
|
|
|
@@ -5563,7 +5977,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
5563
5977
|
4. **Trusted IP whitelist for push sources?**
|
|
5564
5978
|
- {ip_whitelist}
|
|
5565
5979
|
- May be updated in the future, please check periodically
|
|
5566
|
-
`,
|
|
5980
|
+
`,ee=`Configure incident webhooks to receive HTTP callbacks at your specified URL when incidents have specific actions (such as triggering or closing). The callback content includes the latest key information about the incident, allowing integration with your custom tools.
|
|
5567
5981
|
|
|
5568
5982
|
<span id="EventTypes"></span>
|
|
5569
5983
|
|
|
@@ -5770,7 +6184,7 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
|
|
|
5770
6184
|
|
|
5771
6185
|
4. **Trusted IP whitelist for push sources?**
|
|
5772
6186
|
- {ip_whitelist}
|
|
5773
|
-
- May be updated in the future, please check periodically`,
|
|
6187
|
+
- May be updated in the future, please check periodically`,ne=`Custom incident actions allow you to quickly invoke external interfaces during incident troubleshooting for incident self-healing, information enrichment, and other custom operations.
|
|
5774
6188
|
|
|
5775
6189
|
## I. Creating Actions
|
|
5776
6190
|
|
|
@@ -6017,10 +6431,10 @@ When an incident occurs and is confirmed to be caused by a change, directly trig
|
|
|
6017
6431
|
|
|
6018
6432
|
### Update Status Page
|
|
6019
6433
|
|
|
6020
|
-
When an incident is confirmed to affect online services, trigger external status page updates to prompt`,
|
|
6434
|
+
When an incident is confirmed to affect online services, trigger external status page updates to prompt`,te=`---
|
|
6021
6435
|
title: "Jira Sync"
|
|
6022
6436
|
description: "Sync incidents with Jira issues through Jira Sync Webhook."
|
|
6023
|
-
date: "
|
|
6437
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
6024
6438
|
url: "https://docs.flashcat.cloud/en/flashduty/jira-sync"
|
|
6025
6439
|
---
|
|
6026
6440
|
|
|
@@ -6099,7 +6513,7 @@ In the Integration Center, select **Webhook**, choose **Jira Sync** integration,
|
|
|
6099
6513
|
|
|
6100
6514
|
- Flashduty syncs information according to default field mappings and your custom field configurations. If your Jira issue type has required fields without mapping relationships, Jira issue creation may fail.
|
|
6101
6515
|
- Jira issue details are accessed using project KEY + number format. If you modify the project KEY, saved issue URLs in Flashduty may become inaccessible, so please modify project KEYs with caution.
|
|
6102
|
-
`,
|
|
6516
|
+
`,ae=`---
|
|
6103
6517
|
title: "Configure Notification Templates"
|
|
6104
6518
|
description: "Customize notification content through template configuration"
|
|
6105
6519
|
date: "2024-05-10T10:00:00+08:00"
|
|
@@ -6114,25 +6528,42 @@ url: "https://docs.flashcat.cloud/en/flashduty/template-settings"
|
|
|
6114
6528
|
|
|
6115
6529
|
## When Are Templates Used?
|
|
6116
6530
|
---
|
|
6117
|
-
The system uses templates to render [Incident](#Incident)
|
|
6531
|
+
The system uses templates to render [Incident](#Incident) when assigning incidents, which may occur in the following scenarios:
|
|
6118
6532
|
|
|
6119
6533
|
1. Manually create and assign an incident
|
|
6120
6534
|
2. When an alert event is reported, the system automatically generates an incident and assigns it according to the matched escalation rule
|
|
6121
6535
|
3. After an incident is created, manually change the assignment (reassign)
|
|
6122
|
-
4.
|
|
6536
|
+
4. System automatically escalates according to escalation rule settings
|
|
6123
6537
|
5. When reopening a closed incident, reassign according to previous settings
|
|
6124
6538
|
|
|
6125
|
-
We use \`Golang template syntax\` [template/html](https://pkg.go.dev/html/template@go1.18.1) to parse data,
|
|
6539
|
+
We use \`Golang template syntax\` [template/html](https://pkg.go.dev/html/template@go1.18.1) to parse data, enabling you to accomplish any complex rendering requirements.
|
|
6540
|
+
|
|
6541
|
+
- For documentation, please refer to [here](https://www.topgoer.com/%E5%B8%B8%E7%94%A8%E6%A0%87%E5%87%86%E5%BA%93/template.html#%E6%A8%A1%E6%9D%BF%E8%AF%AD%E6%B3%95), supporting logical conditions, loops, pipelines, and common functions;
|
|
6542
|
+
- We've incorporated the open-source library [sprig](https://github.com/flashcatcloud/sprig/tree/flashcat), which includes hundreds of common functions that you can directly call in templates;
|
|
6543
|
+
- If you wish to introduce more functions, feel free to submit a merge request
|
|
6544
|
+
|
|
6545
|
+
## How to Configure Notification Templates?
|
|
6546
|
+
---
|
|
6547
|
+
|
|
6548
|
+
### Configure Notification Templates
|
|
6549
|
+
The system uses the default template when notifying incidents, which cannot be modified. If you need to customize the notification content, you should create a custom template.
|
|
6550
|
+
|
|
6551
|
+
1. Enter the \`Templates\` page, click the \`Create Custom Template\` button or \`Copy Default Template\`, and enter the editing page.
|
|
6552
|
+
2. In the editing page, you can edit the content according to the notification channel used, and reference the content in the template can refer to [What Variables Can I Reference?](#What Variables Can I Reference?)
|
|
6553
|
+
3. After editing, click the \`Save\` button to save the template.
|
|
6554
|
+
|
|
6555
|
+
### Use Notification Templates
|
|
6556
|
+
1. Enter the \`Channel\` -> \`Escalation Rules\` page, click the \`Edit\` button, and enter the editing page.
|
|
6557
|
+
2. In the strategy configuration section, you can select the template to use **which template** for notification, and select the notification template to use.
|
|
6558
|
+
3. Other configurations can refer to [Escalation Rules Configuration](https://docs.flashcat.cloud/en/flashduty/escalate-rule-settings).
|
|
6559
|
+
4. After configuration, click the \`Save\` button to save the escalation policy.
|
|
6126
6560
|
|
|
6127
|
-
- For documentation, please refer to [here](https://www.topgoer.com/%E5%B8%B8%E7%94%A8%E6%A0%87%E5%87%86%E5%BA%93/template.html#%E6%A8%A1%E6%9D%BF%E8%AF%AD%E6%B3%95), supporting logical conditions, loops, pipelines and common functions
|
|
6128
|
-
- We reference the open source library [sprig](https://github.com/flashcatcloud/sprig/tree/flashcat), which includes hundreds of common functions that you can call directly in templates
|
|
6129
|
-
- If you want to introduce more functions, feel free to submit a merge request
|
|
6130
6561
|
|
|
6131
6562
|
## What Variables Can I Reference?
|
|
6132
6563
|
---
|
|
6133
6564
|
**Variable Reference Examples**:
|
|
6134
6565
|
|
|
6135
|
-
\`\`\`
|
|
6566
|
+
\`\`\`go
|
|
6136
6567
|
// Reference title
|
|
6137
6568
|
{{.Title}}
|
|
6138
6569
|
|
|
@@ -6154,7 +6585,7 @@ ID | string | Yes | Incident ID
|
|
|
6154
6585
|
\`Title\` | string | Yes | Incident title
|
|
6155
6586
|
\`Description\` | string | Yes | Incident description, can be empty
|
|
6156
6587
|
DetailUrl | string | Yes | Incident detail page URL
|
|
6157
|
-
Num | string | Yes | Short incident identifier, for easy visual recognition
|
|
6588
|
+
Num | string | Yes | Short incident identifier, for easy visual recognition, may be duplicate
|
|
6158
6589
|
\`IncidentSeverity\` | string | Yes | Severity level, enum values: Critical, Warning, Info
|
|
6159
6590
|
IncidentStatus | string | Yes | Incident status, enum values: Critical, Warning, Info, Ok
|
|
6160
6591
|
\`Progress\` | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
@@ -6163,19 +6594,19 @@ LastTime | int64 | No | Latest event time, latest incorporated event time in ass
|
|
|
6163
6594
|
EndTime | int64 | No | Recovery time, when all associated alerts recover, the incident will automatically recover and close. Unix timestamp in seconds, default 0
|
|
6164
6595
|
SnoozedBefore | int64 | No | Snooze end time, Unix timestamp in seconds, default 0
|
|
6165
6596
|
AckTime | int64 | No | First acknowledgment time, Unix timestamp in seconds, default 0
|
|
6166
|
-
CloseTime | int64 | No | Close time, end_time is incident recovery time, close_time is processing progress close time. Incident automatically closes
|
|
6167
|
-
Creator | [Person](#Person) | No | Creator information,
|
|
6168
|
-
Closer | [Person](#Person) | No | Closer information,
|
|
6597
|
+
CloseTime | int64 | No | Close time, end_time is incident recovery time, close_time is processing progress close time. Incident automatically closes upon recovery, manual closure doesn't affect recovery. Unix timestamp in seconds, default 0
|
|
6598
|
+
Creator | [Person](#Person) | No | Creator information, not present when automatically generated by system
|
|
6599
|
+
Closer | [Person](#Person) | No | Closer information, not present when incident recovers automatically
|
|
6169
6600
|
AssignedTo | [Assignment](Assignment) | No | Assignment configuration
|
|
6170
|
-
Responders | [][Responder](#Responder) | No |
|
|
6601
|
+
Responders | [][Responder](#Responder) | No | Responder list, initialized based on assignment configuration, also includes records if non-assigned personnel acknowledge the incident
|
|
6171
6602
|
ChannelID | int64 | No | Channel ID, value is 0 when manually creating global incident
|
|
6172
6603
|
ChannelName | string | No | Channel name
|
|
6173
6604
|
GroupMethod | string | No | Grouping method, enum values: n: no grouping, p: rule-based grouping, i: intelligent grouping
|
|
6174
|
-
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings. No information when manually created,
|
|
6605
|
+
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings. No information when manually created, contains first alert's label information when automatically created
|
|
6175
6606
|
AlertCnt | int64 | Yes | Number of associated alerts
|
|
6176
6607
|
Alerts | [][Alert](#Alert) | No | Associated alert details, no information when manually created
|
|
6177
6608
|
FireType | string | No | Notification type, enum values: fire: notify, refire: loop notification
|
|
6178
|
-
IsFlapping | bool | No | Whether in flapping state, i.e
|
|
6609
|
+
IsFlapping | bool | No | Whether in flapping state, i.e., frequent occurrence and recovery, related to convergence configuration
|
|
6179
6610
|
Impact | string | No | Incident impact, filled after incident closure
|
|
6180
6611
|
RootCause | string | No | Root cause, filled after incident closure
|
|
6181
6612
|
Resolution | string | No | Resolution, filled after incident closure
|
|
@@ -6192,11 +6623,11 @@ email | string | Yes | Email address
|
|
|
6192
6623
|
**Assignment** (Indirect Reference):
|
|
6193
6624
|
Field|Type|Required|Description
|
|
6194
6625
|
:-:|:-:|:-:|:---
|
|
6195
|
-
PersonIDs | []string| No |
|
|
6626
|
+
PersonIDs | []string| No | Person ID list, exists only when assigning by person
|
|
6196
6627
|
EscalateRuleID | string | No | Escalation rule ID, exists only when assigning by rule
|
|
6197
6628
|
EscalateRuleName | string | No | Escalation rule name
|
|
6198
6629
|
LayerIdx | string | No | Assignment level, corresponds to escalation rule level index, starts from 0
|
|
6199
|
-
Type | string | Yes | Assignment type, enum values: assign: assign, reassign: reassign, escalate:
|
|
6630
|
+
Type | string | Yes | Assignment type, enum values: assign: assign, reassign: reassign, escalate: escalation assign, reopen: reopen assign
|
|
6200
6631
|
|
|
6201
6632
|
<span id="Responder"></span>
|
|
6202
6633
|
**Responder** (Indirect Reference):
|
|
@@ -6219,44 +6650,44 @@ AlertStatus | string | Yes | Alert status, enum values: Critical, Warning, Info,
|
|
|
6219
6650
|
Progress | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
6220
6651
|
StartTime | int64 | Yes | Trigger time, Unix timestamp in seconds
|
|
6221
6652
|
EndTime | int64 | No | Recovery time, Unix timestamp in seconds, default 0
|
|
6222
|
-
CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime is processing progress close time. Alert automatically closes
|
|
6653
|
+
CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime is processing progress close time. Alert automatically closes upon recovery, manual closure doesn't affect alert recovery. Unix timestamp in seconds, default 0
|
|
6223
6654
|
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings
|
|
6224
6655
|
|
|
6225
|
-
##
|
|
6656
|
+
## Common Questions
|
|
6226
6657
|
---
|
|
6227
|
-
1. **How do I know what label information is in \`Labels\`?**
|
|
6658
|
+
1. **How do I know what label information is available in \`Labels\`?**
|
|
6228
6659
|
|
|
6229
6660
|
- Manually created incidents have no labels
|
|
6230
|
-
- Automatically created incidents have labels,
|
|
6661
|
+
- Automatically created incidents have labels, matching the first incorporated alert's labels. Go to the \`Incidents\` page, find an incident and view its details to see all label information
|
|
6231
6662
|
|
|
6232
6663
|
2. **Why is the \`default template\` used when I configured custom template rendering?**
|
|
6233
6664
|
|
|
6234
6665
|
- When creating a custom template, the system uses mock data to render the template to check for syntax errors
|
|
6235
|
-
- Mock data has limited coverage and may not match some
|
|
6236
|
-
-
|
|
6237
|
-
- When unsure if a referenced variable exists, it's recommended to use logical conditions to avoid rendering
|
|
6666
|
+
- Mock data has limited coverage and may not match some logic branches in your template during actual operation
|
|
6667
|
+
- If rendering fails, the system will use the default template as a fallback to ensure message delivery
|
|
6668
|
+
- When unsure if a referenced variable exists, it's recommended to use logical conditions to avoid rendering errors, e.g., for the \`resource\` label:
|
|
6238
6669
|
|
|
6239
|
-
\`\`\`
|
|
6670
|
+
\`\`\`go
|
|
6240
6671
|
// Wrong approach: directly read label
|
|
6241
6672
|
{{.Labels.resource}}
|
|
6242
6673
|
|
|
6243
|
-
// Recommended
|
|
6674
|
+
// Recommended: check first, then read label
|
|
6244
6675
|
{{if .Labels.resource}}{{.Labels.resource}}{{end}}
|
|
6245
6676
|
\`\`\`
|
|
6246
6677
|
|
|
6247
|
-
3. **Why are characters like ">" \`escaped\` in
|
|
6678
|
+
3. **Why are characters like ">" \`escaped\` in incident titles?**
|
|
6248
6679
|
|
|
6249
|
-
\`\`\`
|
|
6680
|
+
\`\`\`go
|
|
6250
6681
|
// Use toHtml function
|
|
6251
6682
|
{{toHtml .Title}}
|
|
6252
6683
|
|
|
6253
|
-
// Use first non-empty value for rendering,
|
|
6684
|
+
// Use first non-empty value for rendering, avoiding complex if logic
|
|
6254
6685
|
{{toHtml .Title .TitleEnglish}}
|
|
6255
6686
|
\`\`\`
|
|
6256
6687
|
|
|
6257
|
-
4. **Time variables are timestamps, how
|
|
6688
|
+
4. **Time variables are timestamps, how do I \`convert time formats\`?**
|
|
6258
6689
|
|
|
6259
|
-
\`\`\`
|
|
6690
|
+
\`\`\`go
|
|
6260
6691
|
// date function converts timestamp to readable format
|
|
6261
6692
|
// "2006-01-02 15:04:05" is a common format, search online for more formats
|
|
6262
6693
|
{{date "2006-01-02 15:04:05" .StartTime}}
|
|
@@ -6266,24 +6697,24 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6266
6697
|
\`\`\`
|
|
6267
6698
|
|
|
6268
6699
|
5. **How to reference external variables inside a for loop?**
|
|
6269
|
-
\`\`\`
|
|
6700
|
+
\`\`\`go
|
|
6270
6701
|
// Add "$" before external variables
|
|
6271
6702
|
{{range .Responders}}
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6703
|
+
{{if eq $.Progress "Triggered"}}
|
|
6704
|
+
[Pending]{{.Email}}
|
|
6705
|
+
{{end}}
|
|
6275
6706
|
{{end}}
|
|
6276
6707
|
\`\`\`
|
|
6277
|
-
6. **How
|
|
6708
|
+
6. **How do I extract field values with "." in names, like "obj.instance" in labels?**
|
|
6278
6709
|
|
|
6279
|
-
\`\`\`
|
|
6710
|
+
\`\`\`go
|
|
6280
6711
|
// Use index function
|
|
6281
6712
|
{{index .Labels "obj.instance"}}
|
|
6282
6713
|
\`\`\`
|
|
6283
6714
|
|
|
6284
|
-
7. **How
|
|
6715
|
+
7. **How do I extract and deduplicate label information from incident-associated alerts?**
|
|
6285
6716
|
|
|
6286
|
-
\`\`\`
|
|
6717
|
+
\`\`\`go
|
|
6287
6718
|
// Use alertLabels function to get deduplicated array
|
|
6288
6719
|
{{alertLabels . "resource"}}
|
|
6289
6720
|
|
|
@@ -6291,9 +6722,9 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6291
6722
|
{{joinAlertLabels . "resource" "sep"}}
|
|
6292
6723
|
\`\`\`
|
|
6293
6724
|
|
|
6294
|
-
8. **How
|
|
6725
|
+
8. **How do I iterate and print labels?**
|
|
6295
6726
|
|
|
6296
|
-
\`\`\`
|
|
6727
|
+
\`\`\`go
|
|
6297
6728
|
// Complete iteration
|
|
6298
6729
|
{{range $k, $v := .Labels}}
|
|
6299
6730
|
{{$k}} : {{toHtml $v}}
|
|
@@ -6313,38 +6744,70 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6313
6744
|
{{end}}
|
|
6314
6745
|
{{end}}
|
|
6315
6746
|
|
|
6316
|
-
9. **How
|
|
6747
|
+
9. **How do I extract information from JSON fields?**
|
|
6317
6748
|
|
|
6318
|
-
-
|
|
6319
|
-
- Target data
|
|
6749
|
+
- jsonGet function helps extract values from JSON format data using path
|
|
6750
|
+
- Target data for jsonGet function must be valid JSON
|
|
6320
6751
|
- Basic usage: {{jsonGet .Labels.xxx "yyy"}}, where xxx must be valid JSON and yyy is a valid extraction path
|
|
6321
6752
|
- For JSON path syntax, refer to [gjson.dev](https://gjson.dev/), where you can input target data and extraction path for real-time preview
|
|
6322
6753
|
|
|
6323
|
-
\`\`\`
|
|
6754
|
+
\`\`\`go
|
|
6324
6755
|
// Extract detail_url field from rule_note label
|
|
6325
6756
|
{{jsonGet .Labels.rule_note "detail_url"}}
|
|
6326
6757
|
|
|
6327
6758
|
// Extract name field from first element in JSON array
|
|
6328
6759
|
{{jsonGet .Labels.slice "0.name"}}
|
|
6329
6760
|
|
|
6330
|
-
// Iterate
|
|
6761
|
+
// Iterate through JSON array elements, match instanceId field of object with userId==7777
|
|
6331
6762
|
{{jsonGet .Labels.rule_note "#(userId==7777)#.instanceId" }}
|
|
6332
6763
|
|
|
6764
|
+
\`\`\`
|
|
6765
|
+
10. **如何使用逻辑与、或等条件进行内容显示判断?**
|
|
6766
|
+
|
|
6767
|
+
\`\`\`
|
|
6768
|
+
# Supported functions
|
|
6769
|
+
- Use \`and\` function for logical AND judgment
|
|
6770
|
+
- Use \`or\` function for logical OR judgment
|
|
6771
|
+
- Use \`not\` function for logical NOT judgment
|
|
6772
|
+
- Use \`eq\` function for logical equal judgment
|
|
6773
|
+
- Use \`ne\` function for logical not equal judgment
|
|
6774
|
+
- Use \`gt\` function for logical greater than judgment
|
|
6775
|
+
- Use \`ge\` function for logical greater than or equal judgment
|
|
6776
|
+
- Use \`lt\` function for logical less than judgment
|
|
6777
|
+
- Use \`le\` function for logical less than or equal judgment
|
|
6778
|
+
|
|
6779
|
+
# Example usage
|
|
6780
|
+
# Use and function for logical AND judgment
|
|
6781
|
+
|
|
6782
|
+
{{if and (eq .Labels.resource "cpu") (eq .Labels.metric "cpu_usage")}}
|
|
6783
|
+
{{.Labels.resource}} CPU usage exceeds 80%
|
|
6784
|
+
{{end}}
|
|
6785
|
+
|
|
6786
|
+
# Use or function for logical OR judgment
|
|
6787
|
+
{{if or (eq .Labels.resource "cpu") (eq .Labels.metric "cpu_usage")}}
|
|
6788
|
+
{{.Labels.resource}} CPU usage exceeds 80%
|
|
6789
|
+
{{end}}
|
|
6790
|
+
|
|
6791
|
+
# Use not function for logical NOT judgment
|
|
6792
|
+
{{if not (eq .Labels.metric "cpu_usage")}}
|
|
6793
|
+
{{.Labels.metric}} is not CPU usage
|
|
6794
|
+
{{end}}
|
|
6795
|
+
|
|
6333
6796
|
\`\`\`
|
|
6334
6797
|
|
|
6335
|
-
|
|
6798
|
+
11. **How do I find more functions and their usage examples?**
|
|
6336
6799
|
- Function list: https://github.com/flashcatcloud/sprig/blob/master/functions.go#L97
|
|
6337
|
-
- Usage examples: Check corresponding _test.go files, e.g
|
|
6800
|
+
- Usage examples: Check corresponding _test.go files, e.g., date function test cases at https://github.com/flashcatcloud/sprig/blob/master/date_test.go
|
|
6338
6801
|
|
|
6339
|
-
Below are specific instructions for each notification channel.
|
|
6802
|
+
Below are specific instructions for each notification channel.
|
|
6340
6803
|
|
|
6341
6804
|
<div class="feishu_app hide">
|
|
6342
6805
|
|
|
6343
6806
|
## Feishu/Lark App
|
|
6344
6807
|
---
|
|
6345
|
-
You need to configure \`Integration Center
|
|
6808
|
+
You need to configure \`Integration Center-Instant Message-Feishu\` integration first to send message cards. If custom content is not set, the system default template will be used, rendering all label information:
|
|
6346
6809
|
|
|
6347
|
-
\`\`\`
|
|
6810
|
+
\`\`\`go
|
|
6348
6811
|
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6349
6812
|
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6350
6813
|
{{range $k, $v := .Labels}}
|
|
@@ -6353,15 +6816,14 @@ You need to configure \`Integration Center - IM - Feishu/Lark\` integration firs
|
|
|
6353
6816
|
|
|
6354
6817
|
As shown below:
|
|
6355
6818
|
|
|
6356
|
-
<img src="https://download.flashcat.cloud/flashduty/
|
|
6819
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/feishu_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6357
6820
|
|
|
6821
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6358
6822
|
|
|
6359
|
-
|
|
6823
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6824
|
+
- In Feishu app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6360
6825
|
|
|
6361
|
-
|
|
6362
|
-
- In Feishu/Lark app, the system will automatically remove empty lines (caused by non-existent labels) during rendering, so you can configure freely
|
|
6363
|
-
|
|
6364
|
-
\`\`\`
|
|
6826
|
+
\`\`\`go
|
|
6365
6827
|
{{if (index .Labels "resource")}}resource:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6366
6828
|
{{if (index .Labels "check")}}check:{{toHtml (index .Labels "check")}}{{end}}
|
|
6367
6829
|
{{if (index .Labels "metric")}}metric:{{index .Labels "metric"}}{{end}}
|
|
@@ -6389,9 +6851,9 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6389
6851
|
|
|
6390
6852
|
## Dingtalk App
|
|
6391
6853
|
---
|
|
6392
|
-
You need to configure \`Integration Center
|
|
6854
|
+
You need to configure \`Integration Center-Instant Message-Dingtalk\` integration first to send message cards. If custom content is not set, the system default template will be used, rendering all label information:
|
|
6393
6855
|
|
|
6394
|
-
\`\`\`
|
|
6856
|
+
\`\`\`go
|
|
6395
6857
|
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6396
6858
|
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6397
6859
|
{{range $k, $v := .Labels}}
|
|
@@ -6399,15 +6861,15 @@ You need to configure \`Integration Center - IM - Dingtalk\` integration first t
|
|
|
6399
6861
|
\`\`\`
|
|
6400
6862
|
|
|
6401
6863
|
As shown below:
|
|
6402
|
-
<img src="https://download.flashcat.cloud/flashduty/doc/en/fd/template-ding-1.png" width="800">
|
|
6403
6864
|
|
|
6865
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/dingtalk_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6404
6866
|
|
|
6405
|
-
If you want to display only key label information, you can refer to the code
|
|
6867
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6406
6868
|
|
|
6407
|
-
- We've listed some common labels
|
|
6408
|
-
- In Dingtalk app, the system will automatically remove empty lines (
|
|
6869
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6870
|
+
- In Dingtalk app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6409
6871
|
|
|
6410
|
-
\`\`\`
|
|
6872
|
+
\`\`\`go
|
|
6411
6873
|
{{if (index .Labels "resource")}}**resource**:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6412
6874
|
{{if (index .Labels "metric")}}**metric**:{{index .Labels "metric"}}{{end}}
|
|
6413
6875
|
{{if (index .Labels "prom_ql")}}**prom_ql**:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
@@ -6434,12 +6896,13 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6434
6896
|
|
|
6435
6897
|
## WeCom App
|
|
6436
6898
|
---
|
|
6437
|
-
You need to configure \`Integration Center - IM - WeCom\` integration first to send message cards. If custom content is not set, the system default template will be used to render only common label information:
|
|
6438
6899
|
|
|
6439
|
-
-
|
|
6440
|
-
- In WeCom app, the system will automatically remove empty lines (caused by non-existent labels) during rendering, so you can configure freely
|
|
6900
|
+
You need to configure \`Integration Center-Instant Message-WeCom\` integration first to send message cards. If custom content is not set, the system default template will be used, rendering only common label information:
|
|
6441
6901
|
|
|
6442
|
-
|
|
6902
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6903
|
+
- In WeCom app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6904
|
+
|
|
6905
|
+
\`\`\`go
|
|
6443
6906
|
{{if (index .Labels "resource")}}resource:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6444
6907
|
{{if (index .Labels "metric")}}metric:{{index .Labels "metric"}}{{end}}
|
|
6445
6908
|
{{if (index .Labels "prom_ql")}}prom_ql:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
@@ -6463,19 +6926,19 @@ You need to configure \`Integration Center - IM - WeCom\` integration first to s
|
|
|
6463
6926
|
|
|
6464
6927
|
As shown below:
|
|
6465
6928
|
|
|
6466
|
-
<img src="https://download.flashcat.cloud/flashduty/
|
|
6929
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/wecom_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6467
6930
|
|
|
6931
|
+
**Note: WeCom limits card length. In the template rendering area, you can render no more than 8 lines of content. Content beyond 8 lines will be hidden**
|
|
6468
6932
|
|
|
6469
|
-
**Note: WeCom limits card length. In the template rendering area, you can render up to 8 lines of content. Content beyond 8 lines will be hidden**
|
|
6470
6933
|
</div>
|
|
6471
6934
|
|
|
6472
6935
|
<div class="slack_app hide">
|
|
6473
6936
|
|
|
6474
6937
|
## Slack App
|
|
6475
6938
|
---
|
|
6476
|
-
You need to configure \`Integration Center
|
|
6939
|
+
You need to configure \`Integration Center-Instant Message-Slack\` integration first to send message cards. If custom content is not set, the system default template will be used, rendering only common label information:
|
|
6477
6940
|
|
|
6478
|
-
\`\`\`
|
|
6941
|
+
\`\`\`go
|
|
6479
6942
|
{{if .Description}}*description* :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6480
6943
|
{{if .Labels.resource}}*resource* : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6481
6944
|
{{range $k, $v := .Labels}}
|
|
@@ -6486,18 +6949,18 @@ As shown below:
|
|
|
6486
6949
|
|
|
6487
6950
|
<img src="https://download.flashcat.cloud/flashduty/integration/slack/slack_app_message.png" alt="drawing" style="display: block; margin: 0 auto;" width="600"/>
|
|
6488
6951
|
|
|
6489
|
-
If you want to display only key label information, you can refer to the code
|
|
6952
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6490
6953
|
|
|
6491
|
-
- We've listed some common labels
|
|
6492
|
-
- Messages can be around 15000 characters long, content beyond
|
|
6493
|
-
- In Slack app, the system will automatically remove empty lines (
|
|
6954
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6955
|
+
- Messages can be around 15000 characters long, content beyond this will be truncated
|
|
6956
|
+
- In Slack app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6494
6957
|
|
|
6495
|
-
\`\`\`
|
|
6958
|
+
\`\`\`go
|
|
6496
6959
|
{{if (index .Labels "resource")}}*resource*:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6497
6960
|
{{if (index .Labels "metric")}}*metric*:{{index .Labels "metric"}}{{end}}
|
|
6498
6961
|
{{if (index .Labels "prom_ql")}}*prom_ql*:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
6499
6962
|
{{if (index .Labels "trigger_value")}}*trigger_value*:{{index .Labels "trigger_value"}}{{end}}
|
|
6500
|
-
{{if (index .Labels "host_ql")}}*host_ql*:{{
|
|
6963
|
+
{{if (index .Labels "host_ql")}}*host_ql*:{{index .Labels "host_ql"}}{{end}}
|
|
6501
6964
|
{{if (index .Labels "region")}}*region*:{{index .Labels "region"}}{{end}}
|
|
6502
6965
|
{{if (index .Labels "cluster")}}*cluster*:{{index .Labels "cluster"}}{{end}}
|
|
6503
6966
|
{{if (index .Labels "business")}}*business*:{{index .Labels "business"}}{{end}}
|
|
@@ -6512,19 +6975,392 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6512
6975
|
{{if (index .Labels "name")}}*name*:{{index .Labels "name"}}{{end}}
|
|
6513
6976
|
{{if (index .Labels "mode")}}*mode*:{{index .Labels "mode"}}{{end}}
|
|
6514
6977
|
{{if (index .Labels "runbook_url")}}*runbook_url*:{{index .Labels "runbook_url"}}{{end}}
|
|
6515
|
-
\`\`\`
|
|
6978
|
+
\`\`\`
|
|
6979
|
+
</div>
|
|
6980
|
+
|
|
6981
|
+
<div class="teams_app hide">
|
|
6982
|
+
|
|
6983
|
+
## Microsoft Teams App
|
|
6984
|
+
---
|
|
6985
|
+
You need to configure \`Integration Center-Instant Message-Microsoft Teams\` integration first to send message cards. If custom content is not set, the system default template will be used, rendering only common label information:
|
|
6986
|
+
|
|
6987
|
+
\`\`\`
|
|
6988
|
+
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6989
|
+
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6990
|
+
{{range $k, $v := .Labels}}
|
|
6991
|
+
{{if not (in $k "resource" "body_text" "body_text_with_table")}}**{{$k}}** : {{toHtml $v}}{{end}}{{end}}
|
|
6992
|
+
\`\`\`
|
|
6993
|
+
|
|
6994
|
+
As shown below:
|
|
6995
|
+
|
|
6996
|
+
<img src="https://download.flashcat.cloud/flashduty/integration/microsoft-teams/teams_app_message.png" alt="drawing" style="display: block; margin: 0 auto;" width="300"/>
|
|
6997
|
+
|
|
6998
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6999
|
+
|
|
7000
|
+
- We've listed some common labels, you can add or remove as needed
|
|
7001
|
+
- Messages can be around 28KB in size, content beyond this will result in an error
|
|
7002
|
+
- In Microsoft Teams app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
7003
|
+
|
|
7004
|
+
\`\`\`
|
|
7005
|
+
{{if (index .Labels "resource")}}**resource**:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
7006
|
+
{{if (index .Labels "metric")}}**metric**:{{index .Labels "metric"}}{{end}}
|
|
7007
|
+
{{if (index .Labels "prom_ql")}}**prom_ql**:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
7008
|
+
{{if (index .Labels "trigger_value")}}**trigger_value**:{{index .Labels "trigger_value"}}{{end}}
|
|
7009
|
+
{{if (index .Labels "host_ql")}}**host_ql**:{{index .Labels "host_ql"}}{{end}}
|
|
7010
|
+
{{if (index .Labels "region")}}**region**:{{index .Labels "region"}}{{end}}
|
|
7011
|
+
{{if (index .Labels "cluster")}}**cluster**:{{index .Labels "cluster"}}{{end}}
|
|
7012
|
+
{{if (index .Labels "business")}}**business**:{{index .Labels "business"}}{{end}}
|
|
7013
|
+
{{if (index .Labels "service")}}**service**:{{index .Labels "service"}}{{end}}
|
|
7014
|
+
{{if (index .Labels "env")}}**env**:{{index .Labels "env"}}{{end}}
|
|
7015
|
+
{{if (index .Labels "type")}}**type**:{{index .Labels "type"}}{{end}}
|
|
7016
|
+
{{if (index .Labels "topic")}}**topic**:{{index .Labels "topic"}}{{end}}
|
|
7017
|
+
{{if (index .Labels "cpu")}}**cpu**:{{index .Labels "cpu"}}{{end}}
|
|
7018
|
+
{{if (index .Labels "device")}}**device**:{{index .Labels "device"}}{{end}}
|
|
7019
|
+
{{if (index .Labels "path")}}**path**:{{index .Labels "path"}}{{end}}
|
|
7020
|
+
{{if (index .Labels "fstype")}}**fstype**:{{index .Labels "fstype"}}{{end}}
|
|
7021
|
+
{{if (index .Labels "name")}}**name**:{{index .Labels "name"}}{{end}}
|
|
7022
|
+
{{if (index .Labels "mode")}}**mode**:{{index .Labels "mode"}}{{end}}
|
|
7023
|
+
{{if (index .Labels "runbook_url")}}**runbook_url**:{{index .Labels "runbook_url"}}{{end}}
|
|
7024
|
+
\`\`\`
|
|
7025
|
+
</div>
|
|
7026
|
+
|
|
7027
|
+
<div class="sms hide">
|
|
7028
|
+
|
|
7029
|
+
## Feishu/Lark Bot
|
|
7030
|
+
---
|
|
7031
|
+
Feishu/Lark bot supports message cards, rich text, and plain text formats. The default template is in message card format.
|
|
7032
|
+
|
|
7033
|
+
- The msg_type field is required for message cards and rich text, otherwise it will be sent as plain text format
|
|
7034
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
7035
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7036
|
+
|
|
7037
|
+
1. Message Card
|
|
7038
|
+
msg_type is required, value should be interactive
|
|
7039
|
+
\`\`\`
|
|
7040
|
+
{
|
|
7041
|
+
"msg_type": "interactive",
|
|
7042
|
+
"card": {
|
|
7043
|
+
"config": {
|
|
7044
|
+
"wide_screen_mode": true,
|
|
7045
|
+
"enable_forward": true
|
|
7046
|
+
},
|
|
7047
|
+
"header": {
|
|
7048
|
+
"template": "{{if eq .IncidentSeverity "Critical"}}red{{else if eq .IncidentSeverity "Warning"}}orange{{else}}yellow{{end}}",
|
|
7049
|
+
"title": {
|
|
7050
|
+
"content": "{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
|
|
7051
|
+
"tag": "plain_text"
|
|
7052
|
+
}
|
|
7053
|
+
},
|
|
7054
|
+
"elements": [{
|
|
7055
|
+
"tag": "div",
|
|
7056
|
+
"fields": [{
|
|
7057
|
+
"text": {
|
|
7058
|
+
"tag": "lark_md",
|
|
7059
|
+
"content": "**🏢 Channel:**{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}"
|
|
7060
|
+
}
|
|
7061
|
+
},
|
|
7062
|
+
{
|
|
7063
|
+
"text": {
|
|
7064
|
+
"tag": "lark_md",
|
|
7065
|
+
"content": "**{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} Severity:**{{.IncidentSeverity}}"
|
|
7066
|
+
}
|
|
7067
|
+
},
|
|
7068
|
+
{
|
|
7069
|
+
"text": {
|
|
7070
|
+
"tag": "lark_md",
|
|
7071
|
+
"content": "**⏰ Triggered at:**{{date "2006-01-02 15:04:05" .StartTime}}{{if gt .AlertCnt 1}}"
|
|
7072
|
+
}
|
|
7073
|
+
},
|
|
7074
|
+
{
|
|
7075
|
+
"text": {
|
|
7076
|
+
"tag": "lark_md",
|
|
7077
|
+
"content": "**🔔 Grouped alerts:**{{.AlertCnt}} {{end}}{{if .Labels.resource}}"
|
|
7078
|
+
}
|
|
7079
|
+
},
|
|
7080
|
+
{
|
|
7081
|
+
"tag": "div",
|
|
7082
|
+
"text": {
|
|
7083
|
+
"tag": "lark_md",
|
|
7084
|
+
"content": "**📌 Alert targets:**{{toHtml (joinAlertLabels . "resource" ",")}} {{end}}{{if .Description}}"
|
|
7085
|
+
}
|
|
7086
|
+
},
|
|
7087
|
+
{
|
|
7088
|
+
"tag": "div",
|
|
7089
|
+
"text": {
|
|
7090
|
+
"tag": "lark_md",
|
|
7091
|
+
"content": "**🔍 Description:**{{.Description}}{{end}}{{if gt (len .Responders) 0}}"
|
|
7092
|
+
}
|
|
7093
|
+
},
|
|
7094
|
+
{
|
|
7095
|
+
"tag": "div",
|
|
7096
|
+
"text": {
|
|
7097
|
+
"tag": "lark_md",
|
|
7098
|
+
"content": "**👨💻 Responders:**{{range .Responders}}@{{.PersonName}} {{end}}{{end}}"
|
|
7099
|
+
}
|
|
7100
|
+
}
|
|
7101
|
+
]
|
|
7102
|
+
},
|
|
7103
|
+
{
|
|
7104
|
+
"tag": "hr"
|
|
7105
|
+
},
|
|
7106
|
+
{
|
|
7107
|
+
"tag": "action",
|
|
7108
|
+
"actions": [{
|
|
7109
|
+
"tag": "button",
|
|
7110
|
+
"text": {
|
|
7111
|
+
"tag": "plain_text",
|
|
7112
|
+
"content": "Details"
|
|
7113
|
+
},
|
|
7114
|
+
"type": "primary",
|
|
7115
|
+
"url": "{{.DetailUrl}}"
|
|
7116
|
+
},
|
|
7117
|
+
{
|
|
7118
|
+
"tag": "button",
|
|
7119
|
+
"text": {
|
|
7120
|
+
"tag": "plain_text",
|
|
7121
|
+
"content": "Acknowledge"
|
|
7122
|
+
},
|
|
7123
|
+
"type": "primary",
|
|
7124
|
+
"url": "{{.DetailUrl}}?ack=1"
|
|
7125
|
+
}
|
|
7126
|
+
]
|
|
7127
|
+
}]
|
|
7128
|
+
}
|
|
7129
|
+
}
|
|
7130
|
+
\`\`\`
|
|
7131
|
+
|
|
7132
|
+
2. Rich Text
|
|
7133
|
+
msg_type is required, value should be post
|
|
7134
|
+
\`\`\`
|
|
7135
|
+
{
|
|
7136
|
+
"msg_type": "post",
|
|
7137
|
+
"post": {
|
|
7138
|
+
"zh_cn": {
|
|
7139
|
+
"title": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
|
|
7140
|
+
"content": [
|
|
7141
|
+
[{
|
|
7142
|
+
"tag": "text",
|
|
7143
|
+
"text": "🏢 "
|
|
7144
|
+
}, {
|
|
7145
|
+
"tag": "text",
|
|
7146
|
+
"text": "Channel:",
|
|
7147
|
+
"text_type": "bold"
|
|
7148
|
+
}, {
|
|
7149
|
+
"tag": "text",
|
|
7150
|
+
"text": "{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}\\n"
|
|
7151
|
+
}],
|
|
7152
|
+
[{
|
|
7153
|
+
"tag": "text",
|
|
7154
|
+
"text": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} "
|
|
7155
|
+
}, {
|
|
7156
|
+
"tag": "text",
|
|
7157
|
+
"text": "Severity:",
|
|
7158
|
+
"text_type": "bold"
|
|
7159
|
+
}, {
|
|
7160
|
+
"tag": "text",
|
|
7161
|
+
"text": "{{.IncidentSeverity}}\\n",
|
|
7162
|
+
"text_type": "{{if eq .IncidentSeverity "Critical"}}bold{{end}}"
|
|
7163
|
+
}],
|
|
7164
|
+
[{
|
|
7165
|
+
"tag": "text",
|
|
7166
|
+
"text": "⏰ "
|
|
7167
|
+
}, {
|
|
7168
|
+
"tag": "text",
|
|
7169
|
+
"text": "Triggered at:",
|
|
7170
|
+
"text_type": "bold"
|
|
7171
|
+
}, {
|
|
7172
|
+
"tag": "text",
|
|
7173
|
+
"text": "{{date "2006-01-02 15:04:05" .StartTime}}\\n"
|
|
7174
|
+
}],
|
|
7175
|
+
{{if gt .AlertCnt 1}}[{
|
|
7176
|
+
"tag": "text",
|
|
7177
|
+
"text": "🔔 "
|
|
7178
|
+
}, {
|
|
7179
|
+
"tag": "text",
|
|
7180
|
+
"text": "Grouped alerts:",
|
|
7181
|
+
"text_type": "bold"
|
|
7182
|
+
}, {
|
|
7183
|
+
"tag": "text",
|
|
7184
|
+
"text": "{{.AlertCnt}}\\n"
|
|
7185
|
+
}],{{end}}
|
|
7186
|
+
{{if .Labels.resource}}[{
|
|
7187
|
+
"tag": "text",
|
|
7188
|
+
"text": "📋 "
|
|
7189
|
+
}, {
|
|
7190
|
+
"tag": "text",
|
|
7191
|
+
"text": "Alert targets:",
|
|
7192
|
+
"text_type": "bold"
|
|
7193
|
+
}, {
|
|
7194
|
+
"tag": "text",
|
|
7195
|
+
"text": "{{toHtml (joinAlertLabels . "resource" ", ")}}\\n"
|
|
7196
|
+
}],{{end}}
|
|
7197
|
+
{{if .Description}}[{
|
|
7198
|
+
"tag": "text",
|
|
7199
|
+
"text": "📝 "
|
|
7200
|
+
}, {
|
|
7201
|
+
"tag": "text",
|
|
7202
|
+
"text": "Description:",
|
|
7203
|
+
"text_type": "bold"
|
|
7204
|
+
}, {
|
|
7205
|
+
"tag": "text",
|
|
7206
|
+
"text": "{{toHtml .Description}}\\n"
|
|
7207
|
+
}],{{end}}
|
|
7208
|
+
{{if gt (len .Responders) 0}}[{
|
|
7209
|
+
"tag": "text",
|
|
7210
|
+
"text": "👨💻 "
|
|
7211
|
+
}, {
|
|
7212
|
+
"tag": "text",
|
|
7213
|
+
"text": "Responders:",
|
|
7214
|
+
"text_type": "bold"
|
|
7215
|
+
}, {
|
|
7216
|
+
"tag": "text",
|
|
7217
|
+
"text": "{{range .Responders}}@{{.PersonName}} {{end}}\\n"
|
|
7218
|
+
}],{{end}}
|
|
7219
|
+
[{
|
|
7220
|
+
"tag": "a",
|
|
7221
|
+
"href": "{{.DetailUrl}}",
|
|
7222
|
+
"text": "Details"
|
|
7223
|
+
},{
|
|
7224
|
+
"tag": "text",
|
|
7225
|
+
"text": " "
|
|
7226
|
+
},{
|
|
7227
|
+
"tag": "a",
|
|
7228
|
+
"href": "{{.DetailUrl}}?ack=1",
|
|
7229
|
+
"text": "Acknowledge"
|
|
7230
|
+
}]
|
|
7231
|
+
]
|
|
7232
|
+
}
|
|
7233
|
+
}
|
|
7234
|
+
}
|
|
7235
|
+
\`\`\`
|
|
7236
|
+
|
|
7237
|
+
3. Plain Text
|
|
7238
|
+
\`\`\`
|
|
7239
|
+
{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}
|
|
7240
|
+
-----
|
|
7241
|
+
Channel:{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7242
|
+
Severity:{{.IncidentSeverity}}
|
|
7243
|
+
Triggered at:{{date "2006-01-02 15:04:05" .StartTime}}
|
|
7244
|
+
Duration:{{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7245
|
+
Grouped alerts:{{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7246
|
+
Alert targets:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7247
|
+
Description:{{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7248
|
+
Responders:{{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7249
|
+
<br>Details:{{.DetailUrl}}
|
|
7250
|
+
\`\`\`
|
|
7251
|
+
</div>
|
|
7252
|
+
|
|
7253
|
+
<div class="dingtalk hide">
|
|
7254
|
+
|
|
7255
|
+
## Dingtalk Bot
|
|
7256
|
+
---
|
|
7257
|
+
Dingtalk bot only supports sending Markdown messages ([syntax restrictions](https://open.dingtalk.com/document/robots/custom-robot-access#title-7ur-3ok-s1a)).
|
|
7258
|
+
|
|
7259
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
7260
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7261
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7262
|
+
|
|
7263
|
+
\`\`\`
|
|
7264
|
+
{{fireReason .}}INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}
|
|
7265
|
+
|
|
7266
|
+
---
|
|
7267
|
+
- Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7268
|
+
- Severity: {{$s := colorSeverity .IncidentSeverity}}{{toHtml $s}}
|
|
7269
|
+
- Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7270
|
+
- Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7271
|
+
- Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7272
|
+
- Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7273
|
+
- Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7274
|
+
- Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7275
|
+
---
|
|
7276
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
7277
|
+
\`\`\`
|
|
7278
|
+
</div>
|
|
7279
|
+
|
|
7280
|
+
<div class="wecom hide">
|
|
7281
|
+
|
|
7282
|
+
## WeCom Bot
|
|
7283
|
+
---
|
|
7284
|
+
WeCom bot only supports sending Markdown messages ([syntax restrictions](https://developer.work.weixin.qq.com/document/path/91770#markdown%E7%B1%BB%E5%9E%8B)).
|
|
7285
|
+
|
|
7286
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
7287
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7288
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7289
|
+
|
|
7290
|
+
\`\`\`
|
|
7291
|
+
{{fireReason .}}**INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}**
|
|
7292
|
+
> Channel: <font color="warning">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</font>
|
|
7293
|
+
> Severity: <font color="warning">{{.IncidentSeverity}}</font>
|
|
7294
|
+
> Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7295
|
+
> Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7296
|
+
> Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7297
|
+
> Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7298
|
+
> Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7299
|
+
> Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7300
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
7301
|
+
\`\`\`
|
|
7302
|
+
</div>
|
|
7303
|
+
|
|
7304
|
+
<div class="telegram hide">
|
|
7305
|
+
|
|
7306
|
+
## Telegram Bot
|
|
7307
|
+
---
|
|
7308
|
+
|
|
7309
|
+
- Configure a Telegram service address accessible in mainland China
|
|
7310
|
+
- The maximum message length is \`4096 characters, content exceeding this limit will not be sent\`
|
|
7311
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7312
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7313
|
+
|
|
7314
|
+
\`\`\`
|
|
7315
|
+
{{fireReason .}}INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}
|
|
7316
|
+
-----
|
|
7317
|
+
Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7318
|
+
Severity: {{.IncidentSeverity}}
|
|
7319
|
+
Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7320
|
+
Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7321
|
+
Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7322
|
+
Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}({{.Labels.resource}}){{end}}{{if .Description}}
|
|
7323
|
+
Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7324
|
+
Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7325
|
+
|
|
7326
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
7327
|
+
\`\`\`
|
|
7328
|
+
</div>
|
|
7329
|
+
|
|
7330
|
+
<div class="slack hide">
|
|
7331
|
+
|
|
7332
|
+
## Slack Bot
|
|
7333
|
+
---
|
|
7334
|
+
- Messages can be \`approximately 15000 characters long, content exceeding this limit will be truncated\`
|
|
7335
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7336
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7337
|
+
|
|
7338
|
+
\`\`\`
|
|
7339
|
+
{{fireReason .}}INC <{{.DetailUrl}}|#{{.Num}}> {{toHtml .Title}}
|
|
7340
|
+
-----
|
|
7341
|
+
Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7342
|
+
Severity: {{.IncidentSeverity}}
|
|
7343
|
+
Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7344
|
+
Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7345
|
+
Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7346
|
+
Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7347
|
+
Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7348
|
+
Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7349
|
+
-----
|
|
7350
|
+
<br><{{.DetailUrl}}|Details>|<{{.DetailUrl}}?ack=1|Acknowledge>
|
|
7351
|
+
\`\`\`
|
|
6516
7352
|
</div>
|
|
6517
7353
|
|
|
6518
7354
|
<div class="zoom hide">
|
|
6519
7355
|
|
|
6520
7356
|
## Zoom Bot
|
|
6521
7357
|
---
|
|
6522
|
-
- Messages
|
|
6523
|
-
- If text contains \`<br>\`,
|
|
6524
|
-
- Message format \`follows Zoom message format\`.
|
|
6525
|
-
- If custom content is
|
|
7358
|
+
- Messages can be \`approximately 4000 characters long, content exceeding this limit will be truncated\`
|
|
7359
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7360
|
+
- Message format \`follows Zoom message format\`. The current bot application doesn't support Markdown. For other formats, please refer to the official documentation: https://developers.zoom.us/docs/team-chat-apps/customizing-messages/
|
|
7361
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6526
7362
|
|
|
6527
|
-
\`\`\`
|
|
7363
|
+
\`\`\`json
|
|
6528
7364
|
{"head": {
|
|
6529
7365
|
"text": "{{fireReason .}}INC [#{{.Num}}] {{toHtml .Title}}",
|
|
6530
7366
|
"style": {
|
|
@@ -6536,7 +7372,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6536
7372
|
"body": [
|
|
6537
7373
|
{
|
|
6538
7374
|
"type": "message",
|
|
6539
|
-
"text": "Channel
|
|
7375
|
+
"text": "Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}",
|
|
6540
7376
|
"style": {
|
|
6541
7377
|
"bold": false,
|
|
6542
7378
|
"italic": false
|
|
@@ -6544,7 +7380,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6544
7380
|
},
|
|
6545
7381
|
{
|
|
6546
7382
|
"type": "message",
|
|
6547
|
-
"text": "Severity
|
|
7383
|
+
"text": "Severity: {{.IncidentSeverity}}",
|
|
6548
7384
|
"style": {
|
|
6549
7385
|
"bold": false,
|
|
6550
7386
|
"italic": false,
|
|
@@ -6553,7 +7389,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6553
7389
|
},
|
|
6554
7390
|
{
|
|
6555
7391
|
"type": "message",
|
|
6556
|
-
"text": "Duration
|
|
7392
|
+
"text": "Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}",
|
|
6557
7393
|
"style": {
|
|
6558
7394
|
"bold": false,
|
|
6559
7395
|
"italic": false
|
|
@@ -6561,7 +7397,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6561
7397
|
},
|
|
6562
7398
|
{
|
|
6563
7399
|
"type": "message",
|
|
6564
|
-
"text": "Grouped alerts
|
|
7400
|
+
"text": "Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}",
|
|
6565
7401
|
"style": {
|
|
6566
7402
|
"bold": false,
|
|
6567
7403
|
"italic": false
|
|
@@ -6569,7 +7405,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6569
7405
|
},
|
|
6570
7406
|
{
|
|
6571
7407
|
"type": "message",
|
|
6572
|
-
"text": "
|
|
7408
|
+
"text": "Alert targets: {{.Labels.resource}}{{end}}{{if .Description}}",
|
|
6573
7409
|
"style": {
|
|
6574
7410
|
"bold": false,
|
|
6575
7411
|
"italic": false
|
|
@@ -6577,7 +7413,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6577
7413
|
},
|
|
6578
7414
|
{
|
|
6579
7415
|
"type": "message",
|
|
6580
|
-
"text": "Description
|
|
7416
|
+
"text": "Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}",
|
|
6581
7417
|
"style": {
|
|
6582
7418
|
"bold": false,
|
|
6583
7419
|
"italic": false
|
|
@@ -6585,7 +7421,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6585
7421
|
},
|
|
6586
7422
|
{
|
|
6587
7423
|
"type": "message",
|
|
6588
|
-
"text": "Responders
|
|
7424
|
+
"text": "Responders: {{range .Responders}}@{{.PersonName}}{{end}}{{end}}",
|
|
6589
7425
|
"style": {
|
|
6590
7426
|
"bold": false,
|
|
6591
7427
|
"italic": false
|
|
@@ -6593,12 +7429,12 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6593
7429
|
},
|
|
6594
7430
|
{
|
|
6595
7431
|
"type": "message",
|
|
6596
|
-
"text": "View
|
|
7432
|
+
"text": "View Details",
|
|
6597
7433
|
"link": "{{.DetailUrl}}{{if .IsFlapping}}"
|
|
6598
7434
|
},
|
|
6599
7435
|
{
|
|
6600
7436
|
"type": "message",
|
|
6601
|
-
"text": "Note:
|
|
7437
|
+
"text": "Note: The current incident status is changing frequently. Notifications will be suppressed for {{.Flapping.MuteMinutes}} minutes. Please optimize your alert policy.{{end}}{{if .IsInStorm}}",
|
|
6602
7438
|
"style": {
|
|
6603
7439
|
"bold": true,
|
|
6604
7440
|
"italic": false
|
|
@@ -6606,7 +7442,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6606
7442
|
},
|
|
6607
7443
|
{
|
|
6608
7444
|
"type": "message",
|
|
6609
|
-
"text": "Note:
|
|
7445
|
+
"text": "Note: The current incident has grouped {{.AlertCnt}} alerts, triggering an alert storm. Please handle with urgency!{{end}}",
|
|
6610
7446
|
"style": {
|
|
6611
7447
|
"bold": true,
|
|
6612
7448
|
"italic": false
|
|
@@ -6617,14 +7453,13 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6617
7453
|
\`\`\`
|
|
6618
7454
|
</div>
|
|
6619
7455
|
|
|
6620
|
-
|
|
6621
7456
|
<div class="sms hide">
|
|
6622
7457
|
|
|
6623
7458
|
## SMS
|
|
6624
7459
|
---
|
|
6625
|
-
If custom content is
|
|
7460
|
+
If no custom content is set, the system default template will be used for notifications:
|
|
6626
7461
|
|
|
6627
|
-
\`\`\`
|
|
7462
|
+
\`\`\`go
|
|
6628
7463
|
You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Severity: {{.IncidentSeverity}}{{if gt .AlertCnt 1}}, Grouped {{.AlertCnt}} alerts{{end}}
|
|
6629
7464
|
\`\`\`
|
|
6630
7465
|
</div>
|
|
@@ -6633,94 +7468,95 @@ You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Sever
|
|
|
6633
7468
|
|
|
6634
7469
|
## Email
|
|
6635
7470
|
---
|
|
6636
|
-
If custom content is
|
|
7471
|
+
If no custom content is set, the system default template will be used for notifications:
|
|
6637
7472
|
|
|
6638
|
-
\`\`\`
|
|
7473
|
+
\`\`\`html
|
|
6639
7474
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
6640
7475
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
6641
7476
|
<title>{{.Title}}</title>
|
|
6642
7477
|
<html lang="en">
|
|
6643
7478
|
|
|
6644
7479
|
<head data-id="__react-email-head">
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
7480
|
+
<style>
|
|
7481
|
+
.bg-Critical { background-color: #C80000; }
|
|
7482
|
+
.bg-Warning { background-color: #FA7D00; }
|
|
7483
|
+
.bg-Info { background-color: #FABE00; }
|
|
7484
|
+
.bg-Ok { background-color: rgb(132 204 22); }
|
|
7485
|
+
.text-Critical { color: #C80000; }
|
|
7486
|
+
.text-Warning { color: #FA7D00; }
|
|
7487
|
+
.text-Info { color: #FABE00; }
|
|
7488
|
+
.text-Ok { color: rgb(132 204 22); }
|
|
7489
|
+
.text-title {font-weight:500;width:6rem;flex-shrink:0}
|
|
7490
|
+
.text-content {color:rgb(55,65,81)}
|
|
7491
|
+
</style>
|
|
6657
7492
|
</head>
|
|
6658
7493
|
|
|
6659
7494
|
<body data-id="__react-email-body" style="background-color:rgb(255,255,255);border-radius:0.25rem;margin-top:2.5rem;margin-bottom:2.5rem;margin-left:auto;margin-right:auto;padding:1rem;min-width:400px;max-width:660px;font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji">
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
|
|
6664
|
-
|
|
6665
|
-
|
|
6666
|
-
|
|
6667
|
-
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
6671
|
-
|
|
6672
|
-
|
|
6673
|
-
|
|
6674
|
-
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
7495
|
+
<div style="width:100%;height:0.375rem;margin-bottom:2rem" class="bg-{{.IncidentSeverity}}"></div>
|
|
7496
|
+
<div style="display:flex;align-items:center;margin-bottom:1.5rem">
|
|
7497
|
+
<div style="display:flex;align-items:flex-end;gap:1rem"><img witdh="120" data-id="react-email-img" src="https://console.flashcat.cloud/image/saas-logo.png" height="40" style="display:block;outline:none;border:none;text-decoration:none" /><span style="font-size:1.25rem;line-height:1.75rem;font-weight:600">You have a pending incident</span></div>
|
|
7498
|
+
</div>
|
|
7499
|
+
<div style="background-color:rgb(243,244,246);padding:2rem;margin-top:1rem;border-radius:0.5rem">
|
|
7500
|
+
<div style="display:flex;flex-direction:column;gap:0.75rem">
|
|
7501
|
+
<div style="display:flex">
|
|
7502
|
+
<div class="text-title">Title</div>
|
|
7503
|
+
<div class="text-content">{{.Title}}</div>
|
|
7504
|
+
</div>
|
|
7505
|
+
<div style="display:flex">
|
|
7506
|
+
<div class="text-title">Severity</div>
|
|
7507
|
+
<div class="text-{{.IncidentSeverity}}">{{.IncidentSeverity}}</div>
|
|
7508
|
+
</div>
|
|
7509
|
+
<div style="display:flex">
|
|
7510
|
+
<div class="text-title">Channel</div>
|
|
7511
|
+
<div class="text-content">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</div>
|
|
7512
|
+
</div>
|
|
7513
|
+
<div style="display:flex">
|
|
7514
|
+
<div class="text-title">Triggered at</div>
|
|
7515
|
+
<div class="text-content">{{date "2006-01-02 15:04:05" .StartTime}}</div>
|
|
7516
|
+
</div>
|
|
7517
|
+
{{if .CreatorID}}
|
|
7518
|
+
<div style="display:flex">
|
|
7519
|
+
<div class="text-title">Creator</div>
|
|
7520
|
+
<div class="text-content">{{.Creator.PersonName}}</div>
|
|
7521
|
+
</div>
|
|
7522
|
+
{{end}}
|
|
7523
|
+
{{if gt (len .Responders) 0}}
|
|
7524
|
+
<div style="display:flex">
|
|
7525
|
+
<div class="text-title">Responders</div>
|
|
7526
|
+
<div class="text-content">{{range .Responders}}@{{.PersonName}} {{end}}</div>
|
|
7527
|
+
</div>
|
|
7528
|
+
{{end}}
|
|
7529
|
+
<div style="display:flex">
|
|
7530
|
+
<div class="text-title">Progress</div>
|
|
7531
|
+
<div class="text-content">{{.Progress}}</div>
|
|
7532
|
+
</div>
|
|
7533
|
+
<div style="display:flex">
|
|
7534
|
+
<div class="text-title">Description</div>
|
|
7535
|
+
<div style="color:rgb(55,65,81);margin-top:0.125rem">
|
|
7536
|
+
<div data-id="react-email-markdown">{{toHtml .Description}}</div>
|
|
7537
|
+
</div>
|
|
7538
|
+
</div>
|
|
7539
|
+
{{if .Labels.resource}}
|
|
7540
|
+
<div style="display:flex;margin-bottom:0.5rem;">
|
|
7541
|
+
<div style="color:#000;font-weight:500;width:6rem;margin-right:1rem;">Alert targets</div>
|
|
7542
|
+
<div style="color:rgb(55,65,81);margin-top:0.125rem">
|
|
7543
|
+
<div data-id="react-email-markdown">{{toHtml (joinAlertLabels . "resource" ", ")}}</div>
|
|
7544
|
+
</div>
|
|
7545
|
+
</div>
|
|
7546
|
+
{{end}}
|
|
7547
|
+
</div>
|
|
7548
|
+
<div style="display:flex;gap:1rem;margin-top:2rem"><a href="{{.DetailUrl}}?ack=1" data-id="react-email-button" target="_blank" style="line-height:100%;text-decoration:none;display:inline-block;max-width:100%;padding:0px 0px"><span></span><span style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:0"><div style="padding-left:2rem;padding-right:2rem;padding-top:0.5rem;padding-bottom:0.5rem;background-color:rgb(108,83,177);border-radius:0.25rem;font-size:1rem;line-height:1.5rem;color:rgb(255,255,255);font-weight:600;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms">Acknowledge</div></span><span></span></a><a href="{{.DetailUrl}}" data-id="react-email-button" target="_blank" style="color:#61dafb;line-height:100%;text-decoration:none;display:inline-block;max-width:100%;padding:0px 0px"><span></span><span style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:0"><div style="padding-left:2rem;padding-right:2rem;padding-top:0.5rem;padding-bottom:0.5rem;background-color:rgb(255,255,255);border-width: 1px;border-style:solid;border-color:rgb(229,231,235);border-radius:0.25rem;font-size:1rem;line-height:1.5rem;color:rgb(0,0,0);font-weight:600">View Details</div></span><span></span></a></div>
|
|
7549
|
+
</div>
|
|
7550
|
+
<div style="display:flex;justify-content:flex-end;align-items:flex-end;margin-top:2rem">
|
|
7551
|
+
<div style="font-size:0.875rem;line-height:1.25rem;font-weight:500">ALL RIGHTS RESERVED © Beijing Flashcat Cloud Technology Co.,Ltd.</div>
|
|
7552
|
+
</div>
|
|
6718
7553
|
</body>
|
|
6719
7554
|
|
|
6720
7555
|
</html>
|
|
6721
7556
|
\`\`\`
|
|
6722
7557
|
|
|
6723
|
-
As shown below:
|
|
6724
|
-
|
|
7558
|
+
As shown in the image below:
|
|
7559
|
+
|
|
7560
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/email_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6725
7561
|
|
|
6726
|
-
|
|
7562
|
+
</div>`,ie={CustomAlert:n,Email:t,N9e:a,Prometheus:i,Grafana:o,Zabbix:s,UptimeKuma:r,AliyunARMS:l,AliyunCmEvent:d,AliyunCm:c,AliyunSLS:e,AWSCW:e,AzureMonitor:h,BaiDuBCM:u,HuaWeiCES:g,InfluxDB:p,OpenFalcon:m,PagerDuty:f,TencentBK:y,TencentCLS:v,TencentCm:b,TencentEb:w,OceanBase:C,Graylog:k,Skywalking:I,Sentry:S,Jiankongbao:A,AWSEventBridge:x,Dynatrace:_,HuaweiyunLTS:L,GoogleCM:F,Zilliz:q,Splunk:R,AppDynamics:T,SolarWinds:D,VolcEngineMetric:U,VolcEngineEvent:E,VolcEngineTLS:N,OpManager:P,Meraki:M,StateCloud:W,Guance:G,CustomChange:B,Jira:z,Lark:V,Dingtalk:K,Wecom:J,Slack:Z,MicrosoftTeams:Q,AlertWebhook:X,IncidentWebhook:ee,CustomAction:ne,Templates:ae,HuaweiyunAPM:O,JiraSync:te,ZStack:Y,Keep:H,ElastAlert2:$,DingtalkAlert:j};module.exports=ie;
|