flashduty-knowledge-base 1.2.5 → 1.2.7
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 +5 -0
- package/dist/esm/en.js +1251 -332
- package/dist/esm/zh.js +709 -163
- package/dist/iife/en.js +1229 -310
- package/dist/iife/zh.js +692 -146
- package/dist/zh.d.ts +5 -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
|
|
411
|
+
|
|
412
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-3.png" />
|
|
379
413
|
|
|
380
|
-
|
|
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,466 @@ 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=`---
|
|
5163
|
+
title: "Feishu Alert Integration"
|
|
5164
|
+
description: "Generate a unique Feishu robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Feishu"
|
|
5165
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5166
|
+
url: "https://docs.flashcat.cloud/en/flashduty/Feishu-alert-integration-guide"
|
|
5167
|
+
---
|
|
5168
|
+
|
|
5169
|
+
Generate a unique Feishu robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Feishu.
|
|
5170
|
+
|
|
5171
|
+
<div class="hide">
|
|
5172
|
+
|
|
5173
|
+
## Operation Steps
|
|
5174
|
+
---
|
|
5175
|
+
|
|
5176
|
+
### Create Feishu Alert Integration
|
|
5177
|
+
|
|
5178
|
+
You can obtain a Feishu alert integration address through either of these two methods:
|
|
5179
|
+
|
|
5180
|
+
#### Using Dedicated Integration
|
|
5181
|
+
|
|
5182
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
5183
|
+
|
|
5184
|
+
<details>
|
|
5185
|
+
<summary>Expand</summary>
|
|
5186
|
+
|
|
5187
|
+
1. Go to the Flashduty console, select **Channel**, and enter a specific channel's details page
|
|
5188
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
5189
|
+
3. Choose **Feishu Alert** integration and click **Save** to generate a card
|
|
5190
|
+
4. Click the generated card to view the **Feishu Alert Integration URL**, copy it for later use, and you're done
|
|
5191
|
+
|
|
5192
|
+
</details>
|
|
5193
|
+
|
|
5194
|
+
#### Using Shared Integration
|
|
5195
|
+
|
|
5196
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
5197
|
+
|
|
5198
|
+
<details>
|
|
5199
|
+
<summary>Expand</summary>
|
|
5200
|
+
|
|
5201
|
+
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
5202
|
+
2. Select **Feishu Alert** integration:
|
|
5203
|
+
- **Integration Name**: Define a name for the current integration
|
|
5204
|
+
- **Message Type**: Select Feishu alert message type, currently only Text and Markdown are supported
|
|
5205
|
+
- **Push Mode**: Choose when to trigger or recover alerts for Feishu notifications
|
|
5206
|
+
3. Copy the **Feishu Alert Integration URL** for later use
|
|
5207
|
+
4. Configure the default route and select the corresponding channel (after integration creation, you can go to \`Routes\` to configure more routing rules)
|
|
5208
|
+
5. Done
|
|
5209
|
+
|
|
5210
|
+
</details>
|
|
5211
|
+
</div>
|
|
5212
|
+
|
|
5213
|
+
### Customize Feishu Alert Integration
|
|
5214
|
+
|
|
5215
|
+
#### Feishu Alert Integration URL
|
|
5216
|
+
|
|
5217
|
+
The system will generate a unique Feishu alert integration URL for you. This URL is compatible with Feishu robot message protocol. When platforms only support Feishu robot channels, you can use this URL to receive corresponding messages.
|
|
5218
|
+
|
|
5219
|
+
#### Push Mode
|
|
5220
|
+
|
|
5221
|
+
By default, the system always creates new alerts for each message, but you can switch to these modes:
|
|
5222
|
+
|
|
5223
|
+
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.
|
|
5224
|
+
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.
|
|
5225
|
+
|
|
5226
|
+
- You need to fill in at least one **trigger** rule
|
|
5227
|
+
- 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
|
|
5228
|
+
- You can choose whether to discard messages when none of the rules match
|
|
5229
|
+
|
|
5230
|
+
Configuration example:
|
|
5231
|
+
|
|
5232
|
+
- Receive all messages, close the alert when the message content contains **RESOLVED**, otherwise trigger a new alert
|
|
5233
|
+
- Extract Alert Key from message title using the rule **/(.*)/**.
|
|
5234
|
+
|
|
5235
|
+
|
|
5236
|
+
### Notes
|
|
5237
|
+
- Feishu alert integration URL only supports Text and post message types; other message types cannot be received
|
|
5238
|
+
- When Feishu message type is Text, Flashduty will generate a default alert title "Feishu Alert"
|
|
5239
|
+
|
|
5240
|
+
## Severity Mapping
|
|
5241
|
+
---
|
|
5242
|
+
|
|
5243
|
+
Currently, all alerts pushed to Flashduty through Feishu Alert integration are set to Warning severity.
|
|
5244
|
+
|
|
5245
|
+
`,z=`---
|
|
4749
5246
|
title: "Custom Change Event Integration Guide"
|
|
4750
5247
|
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: "
|
|
5248
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4752
5249
|
url: "https://docs.flashcat.cloud/en/flashduty/custom-change-integration-guide"
|
|
4753
5250
|
---
|
|
4754
5251
|
|
|
@@ -4802,10 +5299,10 @@ Labels are descriptions of events. You should enrich label content as much as po
|
|
|
4802
5299
|
|
|
4803
5300
|
</details>
|
|
4804
5301
|
|
|
4805
|
-
`,
|
|
5302
|
+
`,V=`---
|
|
4806
5303
|
title: "Jira Issue Events"
|
|
4807
5304
|
description: "Sync Jira Issue events to Flashduty via webhooks to collect change events."
|
|
4808
|
-
date: "
|
|
5305
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4809
5306
|
url: "https://docs.flashcat.cloud/en/flashduty/jira-integration-guide"
|
|
4810
5307
|
---
|
|
4811
5308
|
|
|
@@ -4876,7 +5373,7 @@ Flashduty extracts the status.name information from the webhook payload by defau
|
|
|
4876
5373
|
Please contact Flashduty if you wish to modify this mapping.
|
|
4877
5374
|
|
|
4878
5375
|
</div>
|
|
4879
|
-
|
|
5376
|
+
`,K=`---
|
|
4880
5377
|
title: Contributing to our documentation — Meilisearch documentation
|
|
4881
5378
|
description: The Meilisearch documentation is open-source. Learn how to help make it even better.
|
|
4882
5379
|
sidebarDepth: 3
|
|
@@ -5011,10 +5508,10 @@ Once published, you can access the application via mobile/PC client. First-time
|
|
|
5011
5508
|
|Group Bot Webhook|Maximum 100 calls/minute|
|
|
5012
5509
|
|Sending messages to the same user or group|Maximum 5 calls/second|
|
|
5013
5510
|
|
|
5014
|
-
**Note:** Messages cannot be pushed normally when exceeding limits, please use notification channels reasonably`,
|
|
5511
|
+
**Note:** Messages cannot be pushed normally when exceeding limits, please use notification channels reasonably`,J=`---
|
|
5015
5512
|
title: "Dingtalk Integration"
|
|
5016
5513
|
description: "Integrate with Dingtalk custom application to receive and respond to alerts within Dingtalk"
|
|
5017
|
-
date: "
|
|
5514
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5018
5515
|
url: "https://docs.flashcat.cloud/en/flashduty/dingtalk-integration-guide"
|
|
5019
5516
|
---
|
|
5020
5517
|
|
|
@@ -5167,10 +5664,10 @@ After the application is released, you can access it via mobile/PC client. First
|
|
|
5167
5664
|
|Enterprise|5,500,000|60|1st of each month|
|
|
5168
5665
|
|
|
5169
5666
|
**Note:** Messages cannot be pushed normally after exceeding limits, please use notification channels reasonably
|
|
5170
|
-
`,
|
|
5667
|
+
`,Z=`---
|
|
5171
5668
|
title: "WeCom Integration"
|
|
5172
5669
|
description: "Integrate WeCom third-party application to receive and respond to alerts within WeCom"
|
|
5173
|
-
date: "
|
|
5670
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5174
5671
|
url: "https://docs.flashcat.cloud/en/flashduty/wecom-integration-guide"
|
|
5175
5672
|
---
|
|
5176
5673
|
|
|
@@ -5246,10 +5743,10 @@ Integrate WeCom third-party application to receive and respond to alerts within
|
|
|
5246
5743
|
7. **Incident notification fails with \`WeCom License Not Activated\`?**
|
|
5247
5744
|
|
|
5248
5745
|
- Contact Flashduty customer service or dedicated support for license purchase and activation
|
|
5249
|
-
`,
|
|
5746
|
+
`,Q=`---
|
|
5250
5747
|
title: "Slack Integration"
|
|
5251
5748
|
description: "Integrate with Slack to receive and respond to alerts within Slack"
|
|
5252
|
-
date: "
|
|
5749
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5253
5750
|
url: "https://docs.flashcat.cloud/en/flashduty/slack-integration-guide"
|
|
5254
5751
|
---
|
|
5255
5752
|
|
|
@@ -5300,10 +5797,10 @@ Integrate with Slack to receive and respond to alerts within Slack.
|
|
|
5300
5797
|
|
|
5301
5798
|
8. **Slack App shows Other questions error**
|
|
5302
5799
|
- Try again, as this might be an unrecorded issue
|
|
5303
|
-
- If the error persists, contact customer support`,
|
|
5800
|
+
- If the error persists, contact customer support`,X=`---
|
|
5304
5801
|
title: "Microsoft Teams Integration"
|
|
5305
5802
|
description: "Integrate Microsoft Teams as a third-party application to receive and respond to alerts within Microsoft Teams"
|
|
5306
|
-
date: "
|
|
5803
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5307
5804
|
url: "https://docs.flashcat.cloud/en/flashduty/microsoft-teams-integration-guide"
|
|
5308
5805
|
---
|
|
5309
5806
|
|
|
@@ -5395,7 +5892,7 @@ Please check in Integration Center => Instant Messaging => Microsoft Teams under
|
|
|
5395
5892
|
Currently not supported
|
|
5396
5893
|
</details>
|
|
5397
5894
|
|
|
5398
|
-
`,
|
|
5895
|
+
`,ee=`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
5896
|
|
|
5400
5897
|
<span id="EventTypes"></span>
|
|
5401
5898
|
|
|
@@ -5563,7 +6060,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
5563
6060
|
4. **Trusted IP whitelist for push sources?**
|
|
5564
6061
|
- {ip_whitelist}
|
|
5565
6062
|
- May be updated in the future, please check periodically
|
|
5566
|
-
`,
|
|
6063
|
+
`,ne=`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
6064
|
|
|
5568
6065
|
<span id="EventTypes"></span>
|
|
5569
6066
|
|
|
@@ -5770,7 +6267,7 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
|
|
|
5770
6267
|
|
|
5771
6268
|
4. **Trusted IP whitelist for push sources?**
|
|
5772
6269
|
- {ip_whitelist}
|
|
5773
|
-
- May be updated in the future, please check periodically`,
|
|
6270
|
+
- May be updated in the future, please check periodically`,te=`Custom incident actions allow you to quickly invoke external interfaces during incident troubleshooting for incident self-healing, information enrichment, and other custom operations.
|
|
5774
6271
|
|
|
5775
6272
|
## I. Creating Actions
|
|
5776
6273
|
|
|
@@ -6017,10 +6514,10 @@ When an incident occurs and is confirmed to be caused by a change, directly trig
|
|
|
6017
6514
|
|
|
6018
6515
|
### Update Status Page
|
|
6019
6516
|
|
|
6020
|
-
When an incident is confirmed to affect online services, trigger external status page updates to prompt`,
|
|
6517
|
+
When an incident is confirmed to affect online services, trigger external status page updates to prompt`,ae=`---
|
|
6021
6518
|
title: "Jira Sync"
|
|
6022
6519
|
description: "Sync incidents with Jira issues through Jira Sync Webhook."
|
|
6023
|
-
date: "
|
|
6520
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
6024
6521
|
url: "https://docs.flashcat.cloud/en/flashduty/jira-sync"
|
|
6025
6522
|
---
|
|
6026
6523
|
|
|
@@ -6099,7 +6596,7 @@ In the Integration Center, select **Webhook**, choose **Jira Sync** integration,
|
|
|
6099
6596
|
|
|
6100
6597
|
- 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
6598
|
- 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
|
-
`,
|
|
6599
|
+
`,ie=`---
|
|
6103
6600
|
title: "Configure Notification Templates"
|
|
6104
6601
|
description: "Customize notification content through template configuration"
|
|
6105
6602
|
date: "2024-05-10T10:00:00+08:00"
|
|
@@ -6114,25 +6611,42 @@ url: "https://docs.flashcat.cloud/en/flashduty/template-settings"
|
|
|
6114
6611
|
|
|
6115
6612
|
## When Are Templates Used?
|
|
6116
6613
|
---
|
|
6117
|
-
The system uses templates to render [Incident](#Incident)
|
|
6614
|
+
The system uses templates to render [Incident](#Incident) when assigning incidents, which may occur in the following scenarios:
|
|
6118
6615
|
|
|
6119
6616
|
1. Manually create and assign an incident
|
|
6120
6617
|
2. When an alert event is reported, the system automatically generates an incident and assigns it according to the matched escalation rule
|
|
6121
6618
|
3. After an incident is created, manually change the assignment (reassign)
|
|
6122
|
-
4.
|
|
6619
|
+
4. System automatically escalates according to escalation rule settings
|
|
6123
6620
|
5. When reopening a closed incident, reassign according to previous settings
|
|
6124
6621
|
|
|
6125
|
-
We use \`Golang template syntax\` [template/html](https://pkg.go.dev/html/template@go1.18.1) to parse data,
|
|
6622
|
+
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.
|
|
6623
|
+
|
|
6624
|
+
- 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;
|
|
6625
|
+
- 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;
|
|
6626
|
+
- If you wish to introduce more functions, feel free to submit a merge request
|
|
6627
|
+
|
|
6628
|
+
## How to Configure Notification Templates?
|
|
6629
|
+
---
|
|
6630
|
+
|
|
6631
|
+
### Configure Notification Templates
|
|
6632
|
+
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.
|
|
6633
|
+
|
|
6634
|
+
1. Enter the \`Templates\` page, click the \`Create Custom Template\` button or \`Copy Default Template\`, and enter the editing page.
|
|
6635
|
+
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?)
|
|
6636
|
+
3. After editing, click the \`Save\` button to save the template.
|
|
6637
|
+
|
|
6638
|
+
### Use Notification Templates
|
|
6639
|
+
1. Enter the \`Channel\` -> \`Escalation Rules\` page, click the \`Edit\` button, and enter the editing page.
|
|
6640
|
+
2. In the strategy configuration section, you can select the template to use **which template** for notification, and select the notification template to use.
|
|
6641
|
+
3. Other configurations can refer to [Escalation Rules Configuration](https://docs.flashcat.cloud/en/flashduty/escalate-rule-settings).
|
|
6642
|
+
4. After configuration, click the \`Save\` button to save the escalation policy.
|
|
6126
6643
|
|
|
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
6644
|
|
|
6131
6645
|
## What Variables Can I Reference?
|
|
6132
6646
|
---
|
|
6133
6647
|
**Variable Reference Examples**:
|
|
6134
6648
|
|
|
6135
|
-
\`\`\`
|
|
6649
|
+
\`\`\`go
|
|
6136
6650
|
// Reference title
|
|
6137
6651
|
{{.Title}}
|
|
6138
6652
|
|
|
@@ -6154,7 +6668,7 @@ ID | string | Yes | Incident ID
|
|
|
6154
6668
|
\`Title\` | string | Yes | Incident title
|
|
6155
6669
|
\`Description\` | string | Yes | Incident description, can be empty
|
|
6156
6670
|
DetailUrl | string | Yes | Incident detail page URL
|
|
6157
|
-
Num | string | Yes | Short incident identifier, for easy visual recognition
|
|
6671
|
+
Num | string | Yes | Short incident identifier, for easy visual recognition, may be duplicate
|
|
6158
6672
|
\`IncidentSeverity\` | string | Yes | Severity level, enum values: Critical, Warning, Info
|
|
6159
6673
|
IncidentStatus | string | Yes | Incident status, enum values: Critical, Warning, Info, Ok
|
|
6160
6674
|
\`Progress\` | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
@@ -6163,19 +6677,19 @@ LastTime | int64 | No | Latest event time, latest incorporated event time in ass
|
|
|
6163
6677
|
EndTime | int64 | No | Recovery time, when all associated alerts recover, the incident will automatically recover and close. Unix timestamp in seconds, default 0
|
|
6164
6678
|
SnoozedBefore | int64 | No | Snooze end time, Unix timestamp in seconds, default 0
|
|
6165
6679
|
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,
|
|
6680
|
+
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
|
|
6681
|
+
Creator | [Person](#Person) | No | Creator information, not present when automatically generated by system
|
|
6682
|
+
Closer | [Person](#Person) | No | Closer information, not present when incident recovers automatically
|
|
6169
6683
|
AssignedTo | [Assignment](Assignment) | No | Assignment configuration
|
|
6170
|
-
Responders | [][Responder](#Responder) | No |
|
|
6684
|
+
Responders | [][Responder](#Responder) | No | Responder list, initialized based on assignment configuration, also includes records if non-assigned personnel acknowledge the incident
|
|
6171
6685
|
ChannelID | int64 | No | Channel ID, value is 0 when manually creating global incident
|
|
6172
6686
|
ChannelName | string | No | Channel name
|
|
6173
6687
|
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,
|
|
6688
|
+
\`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
6689
|
AlertCnt | int64 | Yes | Number of associated alerts
|
|
6176
6690
|
Alerts | [][Alert](#Alert) | No | Associated alert details, no information when manually created
|
|
6177
6691
|
FireType | string | No | Notification type, enum values: fire: notify, refire: loop notification
|
|
6178
|
-
IsFlapping | bool | No | Whether in flapping state, i.e
|
|
6692
|
+
IsFlapping | bool | No | Whether in flapping state, i.e., frequent occurrence and recovery, related to convergence configuration
|
|
6179
6693
|
Impact | string | No | Incident impact, filled after incident closure
|
|
6180
6694
|
RootCause | string | No | Root cause, filled after incident closure
|
|
6181
6695
|
Resolution | string | No | Resolution, filled after incident closure
|
|
@@ -6192,11 +6706,11 @@ email | string | Yes | Email address
|
|
|
6192
6706
|
**Assignment** (Indirect Reference):
|
|
6193
6707
|
Field|Type|Required|Description
|
|
6194
6708
|
:-:|:-:|:-:|:---
|
|
6195
|
-
PersonIDs | []string| No |
|
|
6709
|
+
PersonIDs | []string| No | Person ID list, exists only when assigning by person
|
|
6196
6710
|
EscalateRuleID | string | No | Escalation rule ID, exists only when assigning by rule
|
|
6197
6711
|
EscalateRuleName | string | No | Escalation rule name
|
|
6198
6712
|
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:
|
|
6713
|
+
Type | string | Yes | Assignment type, enum values: assign: assign, reassign: reassign, escalate: escalation assign, reopen: reopen assign
|
|
6200
6714
|
|
|
6201
6715
|
<span id="Responder"></span>
|
|
6202
6716
|
**Responder** (Indirect Reference):
|
|
@@ -6219,44 +6733,44 @@ AlertStatus | string | Yes | Alert status, enum values: Critical, Warning, Info,
|
|
|
6219
6733
|
Progress | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
6220
6734
|
StartTime | int64 | Yes | Trigger time, Unix timestamp in seconds
|
|
6221
6735
|
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
|
|
6736
|
+
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
6737
|
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings
|
|
6224
6738
|
|
|
6225
|
-
##
|
|
6739
|
+
## Common Questions
|
|
6226
6740
|
---
|
|
6227
|
-
1. **How do I know what label information is in \`Labels\`?**
|
|
6741
|
+
1. **How do I know what label information is available in \`Labels\`?**
|
|
6228
6742
|
|
|
6229
6743
|
- Manually created incidents have no labels
|
|
6230
|
-
- Automatically created incidents have labels,
|
|
6744
|
+
- 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
6745
|
|
|
6232
6746
|
2. **Why is the \`default template\` used when I configured custom template rendering?**
|
|
6233
6747
|
|
|
6234
6748
|
- 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
|
|
6749
|
+
- Mock data has limited coverage and may not match some logic branches in your template during actual operation
|
|
6750
|
+
- If rendering fails, the system will use the default template as a fallback to ensure message delivery
|
|
6751
|
+
- 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
6752
|
|
|
6239
|
-
\`\`\`
|
|
6753
|
+
\`\`\`go
|
|
6240
6754
|
// Wrong approach: directly read label
|
|
6241
6755
|
{{.Labels.resource}}
|
|
6242
6756
|
|
|
6243
|
-
// Recommended
|
|
6757
|
+
// Recommended: check first, then read label
|
|
6244
6758
|
{{if .Labels.resource}}{{.Labels.resource}}{{end}}
|
|
6245
6759
|
\`\`\`
|
|
6246
6760
|
|
|
6247
|
-
3. **Why are characters like ">" \`escaped\` in
|
|
6761
|
+
3. **Why are characters like ">" \`escaped\` in incident titles?**
|
|
6248
6762
|
|
|
6249
|
-
\`\`\`
|
|
6763
|
+
\`\`\`go
|
|
6250
6764
|
// Use toHtml function
|
|
6251
6765
|
{{toHtml .Title}}
|
|
6252
6766
|
|
|
6253
|
-
// Use first non-empty value for rendering,
|
|
6767
|
+
// Use first non-empty value for rendering, avoiding complex if logic
|
|
6254
6768
|
{{toHtml .Title .TitleEnglish}}
|
|
6255
6769
|
\`\`\`
|
|
6256
6770
|
|
|
6257
|
-
4. **Time variables are timestamps, how
|
|
6771
|
+
4. **Time variables are timestamps, how do I \`convert time formats\`?**
|
|
6258
6772
|
|
|
6259
|
-
\`\`\`
|
|
6773
|
+
\`\`\`go
|
|
6260
6774
|
// date function converts timestamp to readable format
|
|
6261
6775
|
// "2006-01-02 15:04:05" is a common format, search online for more formats
|
|
6262
6776
|
{{date "2006-01-02 15:04:05" .StartTime}}
|
|
@@ -6266,24 +6780,24 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6266
6780
|
\`\`\`
|
|
6267
6781
|
|
|
6268
6782
|
5. **How to reference external variables inside a for loop?**
|
|
6269
|
-
\`\`\`
|
|
6783
|
+
\`\`\`go
|
|
6270
6784
|
// Add "$" before external variables
|
|
6271
6785
|
{{range .Responders}}
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6786
|
+
{{if eq $.Progress "Triggered"}}
|
|
6787
|
+
[Pending]{{.Email}}
|
|
6788
|
+
{{end}}
|
|
6275
6789
|
{{end}}
|
|
6276
6790
|
\`\`\`
|
|
6277
|
-
6. **How
|
|
6791
|
+
6. **How do I extract field values with "." in names, like "obj.instance" in labels?**
|
|
6278
6792
|
|
|
6279
|
-
\`\`\`
|
|
6793
|
+
\`\`\`go
|
|
6280
6794
|
// Use index function
|
|
6281
6795
|
{{index .Labels "obj.instance"}}
|
|
6282
6796
|
\`\`\`
|
|
6283
6797
|
|
|
6284
|
-
7. **How
|
|
6798
|
+
7. **How do I extract and deduplicate label information from incident-associated alerts?**
|
|
6285
6799
|
|
|
6286
|
-
\`\`\`
|
|
6800
|
+
\`\`\`go
|
|
6287
6801
|
// Use alertLabels function to get deduplicated array
|
|
6288
6802
|
{{alertLabels . "resource"}}
|
|
6289
6803
|
|
|
@@ -6291,9 +6805,9 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6291
6805
|
{{joinAlertLabels . "resource" "sep"}}
|
|
6292
6806
|
\`\`\`
|
|
6293
6807
|
|
|
6294
|
-
8. **How
|
|
6808
|
+
8. **How do I iterate and print labels?**
|
|
6295
6809
|
|
|
6296
|
-
\`\`\`
|
|
6810
|
+
\`\`\`go
|
|
6297
6811
|
// Complete iteration
|
|
6298
6812
|
{{range $k, $v := .Labels}}
|
|
6299
6813
|
{{$k}} : {{toHtml $v}}
|
|
@@ -6313,38 +6827,70 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6313
6827
|
{{end}}
|
|
6314
6828
|
{{end}}
|
|
6315
6829
|
|
|
6316
|
-
9. **How
|
|
6830
|
+
9. **How do I extract information from JSON fields?**
|
|
6317
6831
|
|
|
6318
|
-
-
|
|
6319
|
-
- Target data
|
|
6832
|
+
- jsonGet function helps extract values from JSON format data using path
|
|
6833
|
+
- Target data for jsonGet function must be valid JSON
|
|
6320
6834
|
- Basic usage: {{jsonGet .Labels.xxx "yyy"}}, where xxx must be valid JSON and yyy is a valid extraction path
|
|
6321
6835
|
- 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
6836
|
|
|
6323
|
-
\`\`\`
|
|
6837
|
+
\`\`\`go
|
|
6324
6838
|
// Extract detail_url field from rule_note label
|
|
6325
6839
|
{{jsonGet .Labels.rule_note "detail_url"}}
|
|
6326
6840
|
|
|
6327
6841
|
// Extract name field from first element in JSON array
|
|
6328
6842
|
{{jsonGet .Labels.slice "0.name"}}
|
|
6329
6843
|
|
|
6330
|
-
// Iterate
|
|
6844
|
+
// Iterate through JSON array elements, match instanceId field of object with userId==7777
|
|
6331
6845
|
{{jsonGet .Labels.rule_note "#(userId==7777)#.instanceId" }}
|
|
6332
6846
|
|
|
6847
|
+
\`\`\`
|
|
6848
|
+
10. **如何使用逻辑与、或等条件进行内容显示判断?**
|
|
6849
|
+
|
|
6850
|
+
\`\`\`
|
|
6851
|
+
# Supported functions
|
|
6852
|
+
- Use \`and\` function for logical AND judgment
|
|
6853
|
+
- Use \`or\` function for logical OR judgment
|
|
6854
|
+
- Use \`not\` function for logical NOT judgment
|
|
6855
|
+
- Use \`eq\` function for logical equal judgment
|
|
6856
|
+
- Use \`ne\` function for logical not equal judgment
|
|
6857
|
+
- Use \`gt\` function for logical greater than judgment
|
|
6858
|
+
- Use \`ge\` function for logical greater than or equal judgment
|
|
6859
|
+
- Use \`lt\` function for logical less than judgment
|
|
6860
|
+
- Use \`le\` function for logical less than or equal judgment
|
|
6861
|
+
|
|
6862
|
+
# Example usage
|
|
6863
|
+
# Use and function for logical AND judgment
|
|
6864
|
+
|
|
6865
|
+
{{if and (eq .Labels.resource "cpu") (eq .Labels.metric "cpu_usage")}}
|
|
6866
|
+
{{.Labels.resource}} CPU usage exceeds 80%
|
|
6867
|
+
{{end}}
|
|
6868
|
+
|
|
6869
|
+
# Use or function for logical OR judgment
|
|
6870
|
+
{{if or (eq .Labels.resource "cpu") (eq .Labels.metric "cpu_usage")}}
|
|
6871
|
+
{{.Labels.resource}} CPU usage exceeds 80%
|
|
6872
|
+
{{end}}
|
|
6873
|
+
|
|
6874
|
+
# Use not function for logical NOT judgment
|
|
6875
|
+
{{if not (eq .Labels.metric "cpu_usage")}}
|
|
6876
|
+
{{.Labels.metric}} is not CPU usage
|
|
6877
|
+
{{end}}
|
|
6878
|
+
|
|
6333
6879
|
\`\`\`
|
|
6334
6880
|
|
|
6335
|
-
|
|
6881
|
+
11. **How do I find more functions and their usage examples?**
|
|
6336
6882
|
- Function list: https://github.com/flashcatcloud/sprig/blob/master/functions.go#L97
|
|
6337
|
-
- Usage examples: Check corresponding _test.go files, e.g
|
|
6883
|
+
- 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
6884
|
|
|
6339
|
-
Below are specific instructions for each notification channel.
|
|
6885
|
+
Below are specific instructions for each notification channel.
|
|
6340
6886
|
|
|
6341
6887
|
<div class="feishu_app hide">
|
|
6342
6888
|
|
|
6343
6889
|
## Feishu/Lark App
|
|
6344
6890
|
---
|
|
6345
|
-
You need to configure \`Integration Center
|
|
6891
|
+
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
6892
|
|
|
6347
|
-
\`\`\`
|
|
6893
|
+
\`\`\`go
|
|
6348
6894
|
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6349
6895
|
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6350
6896
|
{{range $k, $v := .Labels}}
|
|
@@ -6353,15 +6899,14 @@ You need to configure \`Integration Center - IM - Feishu/Lark\` integration firs
|
|
|
6353
6899
|
|
|
6354
6900
|
As shown below:
|
|
6355
6901
|
|
|
6356
|
-
<img src="https://download.flashcat.cloud/flashduty/
|
|
6357
|
-
|
|
6902
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/feishu_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6358
6903
|
|
|
6359
|
-
If you want to display only key label information, you can refer to the code
|
|
6904
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6360
6905
|
|
|
6361
|
-
- We've listed some common labels
|
|
6362
|
-
- In Feishu
|
|
6906
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6907
|
+
- In Feishu app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6363
6908
|
|
|
6364
|
-
\`\`\`
|
|
6909
|
+
\`\`\`go
|
|
6365
6910
|
{{if (index .Labels "resource")}}resource:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6366
6911
|
{{if (index .Labels "check")}}check:{{toHtml (index .Labels "check")}}{{end}}
|
|
6367
6912
|
{{if (index .Labels "metric")}}metric:{{index .Labels "metric"}}{{end}}
|
|
@@ -6389,9 +6934,9 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6389
6934
|
|
|
6390
6935
|
## Dingtalk App
|
|
6391
6936
|
---
|
|
6392
|
-
You need to configure \`Integration Center
|
|
6937
|
+
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
6938
|
|
|
6394
|
-
\`\`\`
|
|
6939
|
+
\`\`\`go
|
|
6395
6940
|
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6396
6941
|
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6397
6942
|
{{range $k, $v := .Labels}}
|
|
@@ -6399,15 +6944,15 @@ You need to configure \`Integration Center - IM - Dingtalk\` integration first t
|
|
|
6399
6944
|
\`\`\`
|
|
6400
6945
|
|
|
6401
6946
|
As shown below:
|
|
6402
|
-
<img src="https://download.flashcat.cloud/flashduty/doc/en/fd/template-ding-1.png" width="800">
|
|
6403
6947
|
|
|
6948
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/dingtalk_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6404
6949
|
|
|
6405
|
-
If you want to display only key label information, you can refer to the code
|
|
6950
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6406
6951
|
|
|
6407
|
-
- We've listed some common labels
|
|
6408
|
-
- In Dingtalk app, the system will automatically remove empty lines (
|
|
6952
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6953
|
+
- In Dingtalk app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6409
6954
|
|
|
6410
|
-
\`\`\`
|
|
6955
|
+
\`\`\`go
|
|
6411
6956
|
{{if (index .Labels "resource")}}**resource**:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6412
6957
|
{{if (index .Labels "metric")}}**metric**:{{index .Labels "metric"}}{{end}}
|
|
6413
6958
|
{{if (index .Labels "prom_ql")}}**prom_ql**:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
@@ -6434,12 +6979,13 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6434
6979
|
|
|
6435
6980
|
## WeCom App
|
|
6436
6981
|
---
|
|
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
6982
|
|
|
6439
|
-
-
|
|
6440
|
-
- In WeCom app, the system will automatically remove empty lines (caused by non-existent labels) during rendering, so you can configure freely
|
|
6983
|
+
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
6984
|
|
|
6442
|
-
|
|
6985
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6986
|
+
- In WeCom app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6987
|
+
|
|
6988
|
+
\`\`\`go
|
|
6443
6989
|
{{if (index .Labels "resource")}}resource:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6444
6990
|
{{if (index .Labels "metric")}}metric:{{index .Labels "metric"}}{{end}}
|
|
6445
6991
|
{{if (index .Labels "prom_ql")}}prom_ql:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
@@ -6463,19 +7009,19 @@ You need to configure \`Integration Center - IM - WeCom\` integration first to s
|
|
|
6463
7009
|
|
|
6464
7010
|
As shown below:
|
|
6465
7011
|
|
|
6466
|
-
<img src="https://download.flashcat.cloud/flashduty/
|
|
7012
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/wecom_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6467
7013
|
|
|
7014
|
+
**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
7015
|
|
|
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
7016
|
</div>
|
|
6471
7017
|
|
|
6472
7018
|
<div class="slack_app hide">
|
|
6473
7019
|
|
|
6474
7020
|
## Slack App
|
|
6475
7021
|
---
|
|
6476
|
-
You need to configure \`Integration Center
|
|
7022
|
+
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
7023
|
|
|
6478
|
-
\`\`\`
|
|
7024
|
+
\`\`\`go
|
|
6479
7025
|
{{if .Description}}*description* :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6480
7026
|
{{if .Labels.resource}}*resource* : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6481
7027
|
{{range $k, $v := .Labels}}
|
|
@@ -6486,18 +7032,18 @@ As shown below:
|
|
|
6486
7032
|
|
|
6487
7033
|
<img src="https://download.flashcat.cloud/flashduty/integration/slack/slack_app_message.png" alt="drawing" style="display: block; margin: 0 auto;" width="600"/>
|
|
6488
7034
|
|
|
6489
|
-
If you want to display only key label information, you can refer to the code
|
|
7035
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6490
7036
|
|
|
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 (
|
|
7037
|
+
- We've listed some common labels, you can add or remove as needed
|
|
7038
|
+
- Messages can be around 15000 characters long, content beyond this will be truncated
|
|
7039
|
+
- In Slack app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6494
7040
|
|
|
6495
|
-
\`\`\`
|
|
7041
|
+
\`\`\`go
|
|
6496
7042
|
{{if (index .Labels "resource")}}*resource*:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6497
7043
|
{{if (index .Labels "metric")}}*metric*:{{index .Labels "metric"}}{{end}}
|
|
6498
7044
|
{{if (index .Labels "prom_ql")}}*prom_ql*:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
6499
7045
|
{{if (index .Labels "trigger_value")}}*trigger_value*:{{index .Labels "trigger_value"}}{{end}}
|
|
6500
|
-
{{if (index .Labels "host_ql")}}*host_ql*:{{
|
|
7046
|
+
{{if (index .Labels "host_ql")}}*host_ql*:{{index .Labels "host_ql"}}{{end}}
|
|
6501
7047
|
{{if (index .Labels "region")}}*region*:{{index .Labels "region"}}{{end}}
|
|
6502
7048
|
{{if (index .Labels "cluster")}}*cluster*:{{index .Labels "cluster"}}{{end}}
|
|
6503
7049
|
{{if (index .Labels "business")}}*business*:{{index .Labels "business"}}{{end}}
|
|
@@ -6512,19 +7058,392 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6512
7058
|
{{if (index .Labels "name")}}*name*:{{index .Labels "name"}}{{end}}
|
|
6513
7059
|
{{if (index .Labels "mode")}}*mode*:{{index .Labels "mode"}}{{end}}
|
|
6514
7060
|
{{if (index .Labels "runbook_url")}}*runbook_url*:{{index .Labels "runbook_url"}}{{end}}
|
|
6515
|
-
\`\`\`
|
|
7061
|
+
\`\`\`
|
|
7062
|
+
</div>
|
|
7063
|
+
|
|
7064
|
+
<div class="teams_app hide">
|
|
7065
|
+
|
|
7066
|
+
## Microsoft Teams App
|
|
7067
|
+
---
|
|
7068
|
+
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:
|
|
7069
|
+
|
|
7070
|
+
\`\`\`
|
|
7071
|
+
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
7072
|
+
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
7073
|
+
{{range $k, $v := .Labels}}
|
|
7074
|
+
{{if not (in $k "resource" "body_text" "body_text_with_table")}}**{{$k}}** : {{toHtml $v}}{{end}}{{end}}
|
|
7075
|
+
\`\`\`
|
|
7076
|
+
|
|
7077
|
+
As shown below:
|
|
7078
|
+
|
|
7079
|
+
<img src="https://download.flashcat.cloud/flashduty/integration/microsoft-teams/teams_app_message.png" alt="drawing" style="display: block; margin: 0 auto;" width="300"/>
|
|
7080
|
+
|
|
7081
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
7082
|
+
|
|
7083
|
+
- We've listed some common labels, you can add or remove as needed
|
|
7084
|
+
- Messages can be around 28KB in size, content beyond this will result in an error
|
|
7085
|
+
- In Microsoft Teams app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
7086
|
+
|
|
7087
|
+
\`\`\`
|
|
7088
|
+
{{if (index .Labels "resource")}}**resource**:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
7089
|
+
{{if (index .Labels "metric")}}**metric**:{{index .Labels "metric"}}{{end}}
|
|
7090
|
+
{{if (index .Labels "prom_ql")}}**prom_ql**:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
7091
|
+
{{if (index .Labels "trigger_value")}}**trigger_value**:{{index .Labels "trigger_value"}}{{end}}
|
|
7092
|
+
{{if (index .Labels "host_ql")}}**host_ql**:{{index .Labels "host_ql"}}{{end}}
|
|
7093
|
+
{{if (index .Labels "region")}}**region**:{{index .Labels "region"}}{{end}}
|
|
7094
|
+
{{if (index .Labels "cluster")}}**cluster**:{{index .Labels "cluster"}}{{end}}
|
|
7095
|
+
{{if (index .Labels "business")}}**business**:{{index .Labels "business"}}{{end}}
|
|
7096
|
+
{{if (index .Labels "service")}}**service**:{{index .Labels "service"}}{{end}}
|
|
7097
|
+
{{if (index .Labels "env")}}**env**:{{index .Labels "env"}}{{end}}
|
|
7098
|
+
{{if (index .Labels "type")}}**type**:{{index .Labels "type"}}{{end}}
|
|
7099
|
+
{{if (index .Labels "topic")}}**topic**:{{index .Labels "topic"}}{{end}}
|
|
7100
|
+
{{if (index .Labels "cpu")}}**cpu**:{{index .Labels "cpu"}}{{end}}
|
|
7101
|
+
{{if (index .Labels "device")}}**device**:{{index .Labels "device"}}{{end}}
|
|
7102
|
+
{{if (index .Labels "path")}}**path**:{{index .Labels "path"}}{{end}}
|
|
7103
|
+
{{if (index .Labels "fstype")}}**fstype**:{{index .Labels "fstype"}}{{end}}
|
|
7104
|
+
{{if (index .Labels "name")}}**name**:{{index .Labels "name"}}{{end}}
|
|
7105
|
+
{{if (index .Labels "mode")}}**mode**:{{index .Labels "mode"}}{{end}}
|
|
7106
|
+
{{if (index .Labels "runbook_url")}}**runbook_url**:{{index .Labels "runbook_url"}}{{end}}
|
|
7107
|
+
\`\`\`
|
|
7108
|
+
</div>
|
|
7109
|
+
|
|
7110
|
+
<div class="sms hide">
|
|
7111
|
+
|
|
7112
|
+
## Feishu/Lark Bot
|
|
7113
|
+
---
|
|
7114
|
+
Feishu/Lark bot supports message cards, rich text, and plain text formats. The default template is in message card format.
|
|
7115
|
+
|
|
7116
|
+
- The msg_type field is required for message cards and rich text, otherwise it will be sent as plain text format
|
|
7117
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
7118
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7119
|
+
|
|
7120
|
+
1. Message Card
|
|
7121
|
+
msg_type is required, value should be interactive
|
|
7122
|
+
\`\`\`
|
|
7123
|
+
{
|
|
7124
|
+
"msg_type": "interactive",
|
|
7125
|
+
"card": {
|
|
7126
|
+
"config": {
|
|
7127
|
+
"wide_screen_mode": true,
|
|
7128
|
+
"enable_forward": true
|
|
7129
|
+
},
|
|
7130
|
+
"header": {
|
|
7131
|
+
"template": "{{if eq .IncidentSeverity "Critical"}}red{{else if eq .IncidentSeverity "Warning"}}orange{{else}}yellow{{end}}",
|
|
7132
|
+
"title": {
|
|
7133
|
+
"content": "{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
|
|
7134
|
+
"tag": "plain_text"
|
|
7135
|
+
}
|
|
7136
|
+
},
|
|
7137
|
+
"elements": [{
|
|
7138
|
+
"tag": "div",
|
|
7139
|
+
"fields": [{
|
|
7140
|
+
"text": {
|
|
7141
|
+
"tag": "lark_md",
|
|
7142
|
+
"content": "**🏢 Channel:**{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}"
|
|
7143
|
+
}
|
|
7144
|
+
},
|
|
7145
|
+
{
|
|
7146
|
+
"text": {
|
|
7147
|
+
"tag": "lark_md",
|
|
7148
|
+
"content": "**{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} Severity:**{{.IncidentSeverity}}"
|
|
7149
|
+
}
|
|
7150
|
+
},
|
|
7151
|
+
{
|
|
7152
|
+
"text": {
|
|
7153
|
+
"tag": "lark_md",
|
|
7154
|
+
"content": "**⏰ Triggered at:**{{date "2006-01-02 15:04:05" .StartTime}}{{if gt .AlertCnt 1}}"
|
|
7155
|
+
}
|
|
7156
|
+
},
|
|
7157
|
+
{
|
|
7158
|
+
"text": {
|
|
7159
|
+
"tag": "lark_md",
|
|
7160
|
+
"content": "**🔔 Grouped alerts:**{{.AlertCnt}} {{end}}{{if .Labels.resource}}"
|
|
7161
|
+
}
|
|
7162
|
+
},
|
|
7163
|
+
{
|
|
7164
|
+
"tag": "div",
|
|
7165
|
+
"text": {
|
|
7166
|
+
"tag": "lark_md",
|
|
7167
|
+
"content": "**📌 Alert targets:**{{toHtml (joinAlertLabels . "resource" ",")}} {{end}}{{if .Description}}"
|
|
7168
|
+
}
|
|
7169
|
+
},
|
|
7170
|
+
{
|
|
7171
|
+
"tag": "div",
|
|
7172
|
+
"text": {
|
|
7173
|
+
"tag": "lark_md",
|
|
7174
|
+
"content": "**🔍 Description:**{{.Description}}{{end}}{{if gt (len .Responders) 0}}"
|
|
7175
|
+
}
|
|
7176
|
+
},
|
|
7177
|
+
{
|
|
7178
|
+
"tag": "div",
|
|
7179
|
+
"text": {
|
|
7180
|
+
"tag": "lark_md",
|
|
7181
|
+
"content": "**👨💻 Responders:**{{range .Responders}}@{{.PersonName}} {{end}}{{end}}"
|
|
7182
|
+
}
|
|
7183
|
+
}
|
|
7184
|
+
]
|
|
7185
|
+
},
|
|
7186
|
+
{
|
|
7187
|
+
"tag": "hr"
|
|
7188
|
+
},
|
|
7189
|
+
{
|
|
7190
|
+
"tag": "action",
|
|
7191
|
+
"actions": [{
|
|
7192
|
+
"tag": "button",
|
|
7193
|
+
"text": {
|
|
7194
|
+
"tag": "plain_text",
|
|
7195
|
+
"content": "Details"
|
|
7196
|
+
},
|
|
7197
|
+
"type": "primary",
|
|
7198
|
+
"url": "{{.DetailUrl}}"
|
|
7199
|
+
},
|
|
7200
|
+
{
|
|
7201
|
+
"tag": "button",
|
|
7202
|
+
"text": {
|
|
7203
|
+
"tag": "plain_text",
|
|
7204
|
+
"content": "Acknowledge"
|
|
7205
|
+
},
|
|
7206
|
+
"type": "primary",
|
|
7207
|
+
"url": "{{.DetailUrl}}?ack=1"
|
|
7208
|
+
}
|
|
7209
|
+
]
|
|
7210
|
+
}]
|
|
7211
|
+
}
|
|
7212
|
+
}
|
|
7213
|
+
\`\`\`
|
|
7214
|
+
|
|
7215
|
+
2. Rich Text
|
|
7216
|
+
msg_type is required, value should be post
|
|
7217
|
+
\`\`\`
|
|
7218
|
+
{
|
|
7219
|
+
"msg_type": "post",
|
|
7220
|
+
"post": {
|
|
7221
|
+
"zh_cn": {
|
|
7222
|
+
"title": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
|
|
7223
|
+
"content": [
|
|
7224
|
+
[{
|
|
7225
|
+
"tag": "text",
|
|
7226
|
+
"text": "🏢 "
|
|
7227
|
+
}, {
|
|
7228
|
+
"tag": "text",
|
|
7229
|
+
"text": "Channel:",
|
|
7230
|
+
"text_type": "bold"
|
|
7231
|
+
}, {
|
|
7232
|
+
"tag": "text",
|
|
7233
|
+
"text": "{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}\\n"
|
|
7234
|
+
}],
|
|
7235
|
+
[{
|
|
7236
|
+
"tag": "text",
|
|
7237
|
+
"text": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} "
|
|
7238
|
+
}, {
|
|
7239
|
+
"tag": "text",
|
|
7240
|
+
"text": "Severity:",
|
|
7241
|
+
"text_type": "bold"
|
|
7242
|
+
}, {
|
|
7243
|
+
"tag": "text",
|
|
7244
|
+
"text": "{{.IncidentSeverity}}\\n",
|
|
7245
|
+
"text_type": "{{if eq .IncidentSeverity "Critical"}}bold{{end}}"
|
|
7246
|
+
}],
|
|
7247
|
+
[{
|
|
7248
|
+
"tag": "text",
|
|
7249
|
+
"text": "⏰ "
|
|
7250
|
+
}, {
|
|
7251
|
+
"tag": "text",
|
|
7252
|
+
"text": "Triggered at:",
|
|
7253
|
+
"text_type": "bold"
|
|
7254
|
+
}, {
|
|
7255
|
+
"tag": "text",
|
|
7256
|
+
"text": "{{date "2006-01-02 15:04:05" .StartTime}}\\n"
|
|
7257
|
+
}],
|
|
7258
|
+
{{if gt .AlertCnt 1}}[{
|
|
7259
|
+
"tag": "text",
|
|
7260
|
+
"text": "🔔 "
|
|
7261
|
+
}, {
|
|
7262
|
+
"tag": "text",
|
|
7263
|
+
"text": "Grouped alerts:",
|
|
7264
|
+
"text_type": "bold"
|
|
7265
|
+
}, {
|
|
7266
|
+
"tag": "text",
|
|
7267
|
+
"text": "{{.AlertCnt}}\\n"
|
|
7268
|
+
}],{{end}}
|
|
7269
|
+
{{if .Labels.resource}}[{
|
|
7270
|
+
"tag": "text",
|
|
7271
|
+
"text": "📋 "
|
|
7272
|
+
}, {
|
|
7273
|
+
"tag": "text",
|
|
7274
|
+
"text": "Alert targets:",
|
|
7275
|
+
"text_type": "bold"
|
|
7276
|
+
}, {
|
|
7277
|
+
"tag": "text",
|
|
7278
|
+
"text": "{{toHtml (joinAlertLabels . "resource" ", ")}}\\n"
|
|
7279
|
+
}],{{end}}
|
|
7280
|
+
{{if .Description}}[{
|
|
7281
|
+
"tag": "text",
|
|
7282
|
+
"text": "📝 "
|
|
7283
|
+
}, {
|
|
7284
|
+
"tag": "text",
|
|
7285
|
+
"text": "Description:",
|
|
7286
|
+
"text_type": "bold"
|
|
7287
|
+
}, {
|
|
7288
|
+
"tag": "text",
|
|
7289
|
+
"text": "{{toHtml .Description}}\\n"
|
|
7290
|
+
}],{{end}}
|
|
7291
|
+
{{if gt (len .Responders) 0}}[{
|
|
7292
|
+
"tag": "text",
|
|
7293
|
+
"text": "👨💻 "
|
|
7294
|
+
}, {
|
|
7295
|
+
"tag": "text",
|
|
7296
|
+
"text": "Responders:",
|
|
7297
|
+
"text_type": "bold"
|
|
7298
|
+
}, {
|
|
7299
|
+
"tag": "text",
|
|
7300
|
+
"text": "{{range .Responders}}@{{.PersonName}} {{end}}\\n"
|
|
7301
|
+
}],{{end}}
|
|
7302
|
+
[{
|
|
7303
|
+
"tag": "a",
|
|
7304
|
+
"href": "{{.DetailUrl}}",
|
|
7305
|
+
"text": "Details"
|
|
7306
|
+
},{
|
|
7307
|
+
"tag": "text",
|
|
7308
|
+
"text": " "
|
|
7309
|
+
},{
|
|
7310
|
+
"tag": "a",
|
|
7311
|
+
"href": "{{.DetailUrl}}?ack=1",
|
|
7312
|
+
"text": "Acknowledge"
|
|
7313
|
+
}]
|
|
7314
|
+
]
|
|
7315
|
+
}
|
|
7316
|
+
}
|
|
7317
|
+
}
|
|
7318
|
+
\`\`\`
|
|
7319
|
+
|
|
7320
|
+
3. Plain Text
|
|
7321
|
+
\`\`\`
|
|
7322
|
+
{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}
|
|
7323
|
+
-----
|
|
7324
|
+
Channel:{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7325
|
+
Severity:{{.IncidentSeverity}}
|
|
7326
|
+
Triggered at:{{date "2006-01-02 15:04:05" .StartTime}}
|
|
7327
|
+
Duration:{{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7328
|
+
Grouped alerts:{{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7329
|
+
Alert targets:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7330
|
+
Description:{{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7331
|
+
Responders:{{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7332
|
+
<br>Details:{{.DetailUrl}}
|
|
7333
|
+
\`\`\`
|
|
7334
|
+
</div>
|
|
7335
|
+
|
|
7336
|
+
<div class="dingtalk hide">
|
|
7337
|
+
|
|
7338
|
+
## Dingtalk Bot
|
|
7339
|
+
---
|
|
7340
|
+
Dingtalk bot only supports sending Markdown messages ([syntax restrictions](https://open.dingtalk.com/document/robots/custom-robot-access#title-7ur-3ok-s1a)).
|
|
7341
|
+
|
|
7342
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
7343
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7344
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7345
|
+
|
|
7346
|
+
\`\`\`
|
|
7347
|
+
{{fireReason .}}INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}
|
|
7348
|
+
|
|
7349
|
+
---
|
|
7350
|
+
- Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7351
|
+
- Severity: {{$s := colorSeverity .IncidentSeverity}}{{toHtml $s}}
|
|
7352
|
+
- Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7353
|
+
- Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7354
|
+
- Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7355
|
+
- Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7356
|
+
- Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7357
|
+
- Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7358
|
+
---
|
|
7359
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
7360
|
+
\`\`\`
|
|
7361
|
+
</div>
|
|
7362
|
+
|
|
7363
|
+
<div class="wecom hide">
|
|
7364
|
+
|
|
7365
|
+
## WeCom Bot
|
|
7366
|
+
---
|
|
7367
|
+
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)).
|
|
7368
|
+
|
|
7369
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
7370
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7371
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7372
|
+
|
|
7373
|
+
\`\`\`
|
|
7374
|
+
{{fireReason .}}**INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}**
|
|
7375
|
+
> Channel: <font color="warning">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</font>
|
|
7376
|
+
> Severity: <font color="warning">{{.IncidentSeverity}}</font>
|
|
7377
|
+
> Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7378
|
+
> Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7379
|
+
> Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7380
|
+
> Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7381
|
+
> Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7382
|
+
> Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7383
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
7384
|
+
\`\`\`
|
|
7385
|
+
</div>
|
|
7386
|
+
|
|
7387
|
+
<div class="telegram hide">
|
|
7388
|
+
|
|
7389
|
+
## Telegram Bot
|
|
7390
|
+
---
|
|
7391
|
+
|
|
7392
|
+
- Configure a Telegram service address accessible in mainland China
|
|
7393
|
+
- The maximum message length is \`4096 characters, content exceeding this limit will not be sent\`
|
|
7394
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7395
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7396
|
+
|
|
7397
|
+
\`\`\`
|
|
7398
|
+
{{fireReason .}}INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}
|
|
7399
|
+
-----
|
|
7400
|
+
Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7401
|
+
Severity: {{.IncidentSeverity}}
|
|
7402
|
+
Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7403
|
+
Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7404
|
+
Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7405
|
+
Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}({{.Labels.resource}}){{end}}{{if .Description}}
|
|
7406
|
+
Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7407
|
+
Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7408
|
+
|
|
7409
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
7410
|
+
\`\`\`
|
|
7411
|
+
</div>
|
|
7412
|
+
|
|
7413
|
+
<div class="slack hide">
|
|
7414
|
+
|
|
7415
|
+
## Slack Bot
|
|
7416
|
+
---
|
|
7417
|
+
- Messages can be \`approximately 15000 characters long, content exceeding this limit will be truncated\`
|
|
7418
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7419
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
7420
|
+
|
|
7421
|
+
\`\`\`
|
|
7422
|
+
{{fireReason .}}INC <{{.DetailUrl}}|#{{.Num}}> {{toHtml .Title}}
|
|
7423
|
+
-----
|
|
7424
|
+
Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
7425
|
+
Severity: {{.IncidentSeverity}}
|
|
7426
|
+
Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
7427
|
+
Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
7428
|
+
Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
7429
|
+
Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
7430
|
+
Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
7431
|
+
Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
7432
|
+
-----
|
|
7433
|
+
<br><{{.DetailUrl}}|Details>|<{{.DetailUrl}}?ack=1|Acknowledge>
|
|
7434
|
+
\`\`\`
|
|
6516
7435
|
</div>
|
|
6517
7436
|
|
|
6518
7437
|
<div class="zoom hide">
|
|
6519
7438
|
|
|
6520
7439
|
## Zoom Bot
|
|
6521
7440
|
---
|
|
6522
|
-
- Messages
|
|
6523
|
-
- If text contains \`<br>\`,
|
|
6524
|
-
- Message format \`follows Zoom message format\`.
|
|
6525
|
-
- If custom content is
|
|
7441
|
+
- Messages can be \`approximately 4000 characters long, content exceeding this limit will be truncated\`
|
|
7442
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
7443
|
+
- 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/
|
|
7444
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6526
7445
|
|
|
6527
|
-
\`\`\`
|
|
7446
|
+
\`\`\`json
|
|
6528
7447
|
{"head": {
|
|
6529
7448
|
"text": "{{fireReason .}}INC [#{{.Num}}] {{toHtml .Title}}",
|
|
6530
7449
|
"style": {
|
|
@@ -6536,7 +7455,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6536
7455
|
"body": [
|
|
6537
7456
|
{
|
|
6538
7457
|
"type": "message",
|
|
6539
|
-
"text": "Channel
|
|
7458
|
+
"text": "Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}",
|
|
6540
7459
|
"style": {
|
|
6541
7460
|
"bold": false,
|
|
6542
7461
|
"italic": false
|
|
@@ -6544,7 +7463,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6544
7463
|
},
|
|
6545
7464
|
{
|
|
6546
7465
|
"type": "message",
|
|
6547
|
-
"text": "Severity
|
|
7466
|
+
"text": "Severity: {{.IncidentSeverity}}",
|
|
6548
7467
|
"style": {
|
|
6549
7468
|
"bold": false,
|
|
6550
7469
|
"italic": false,
|
|
@@ -6553,7 +7472,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6553
7472
|
},
|
|
6554
7473
|
{
|
|
6555
7474
|
"type": "message",
|
|
6556
|
-
"text": "Duration
|
|
7475
|
+
"text": "Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}",
|
|
6557
7476
|
"style": {
|
|
6558
7477
|
"bold": false,
|
|
6559
7478
|
"italic": false
|
|
@@ -6561,7 +7480,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6561
7480
|
},
|
|
6562
7481
|
{
|
|
6563
7482
|
"type": "message",
|
|
6564
|
-
"text": "Grouped alerts
|
|
7483
|
+
"text": "Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}",
|
|
6565
7484
|
"style": {
|
|
6566
7485
|
"bold": false,
|
|
6567
7486
|
"italic": false
|
|
@@ -6569,7 +7488,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6569
7488
|
},
|
|
6570
7489
|
{
|
|
6571
7490
|
"type": "message",
|
|
6572
|
-
"text": "
|
|
7491
|
+
"text": "Alert targets: {{.Labels.resource}}{{end}}{{if .Description}}",
|
|
6573
7492
|
"style": {
|
|
6574
7493
|
"bold": false,
|
|
6575
7494
|
"italic": false
|
|
@@ -6577,7 +7496,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6577
7496
|
},
|
|
6578
7497
|
{
|
|
6579
7498
|
"type": "message",
|
|
6580
|
-
"text": "Description
|
|
7499
|
+
"text": "Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}",
|
|
6581
7500
|
"style": {
|
|
6582
7501
|
"bold": false,
|
|
6583
7502
|
"italic": false
|
|
@@ -6585,7 +7504,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6585
7504
|
},
|
|
6586
7505
|
{
|
|
6587
7506
|
"type": "message",
|
|
6588
|
-
"text": "Responders
|
|
7507
|
+
"text": "Responders: {{range .Responders}}@{{.PersonName}}{{end}}{{end}}",
|
|
6589
7508
|
"style": {
|
|
6590
7509
|
"bold": false,
|
|
6591
7510
|
"italic": false
|
|
@@ -6593,12 +7512,12 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6593
7512
|
},
|
|
6594
7513
|
{
|
|
6595
7514
|
"type": "message",
|
|
6596
|
-
"text": "View
|
|
7515
|
+
"text": "View Details",
|
|
6597
7516
|
"link": "{{.DetailUrl}}{{if .IsFlapping}}"
|
|
6598
7517
|
},
|
|
6599
7518
|
{
|
|
6600
7519
|
"type": "message",
|
|
6601
|
-
"text": "Note:
|
|
7520
|
+
"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
7521
|
"style": {
|
|
6603
7522
|
"bold": true,
|
|
6604
7523
|
"italic": false
|
|
@@ -6606,7 +7525,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6606
7525
|
},
|
|
6607
7526
|
{
|
|
6608
7527
|
"type": "message",
|
|
6609
|
-
"text": "Note:
|
|
7528
|
+
"text": "Note: The current incident has grouped {{.AlertCnt}} alerts, triggering an alert storm. Please handle with urgency!{{end}}",
|
|
6610
7529
|
"style": {
|
|
6611
7530
|
"bold": true,
|
|
6612
7531
|
"italic": false
|
|
@@ -6617,14 +7536,13 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6617
7536
|
\`\`\`
|
|
6618
7537
|
</div>
|
|
6619
7538
|
|
|
6620
|
-
|
|
6621
7539
|
<div class="sms hide">
|
|
6622
7540
|
|
|
6623
7541
|
## SMS
|
|
6624
7542
|
---
|
|
6625
|
-
If custom content is
|
|
7543
|
+
If no custom content is set, the system default template will be used for notifications:
|
|
6626
7544
|
|
|
6627
|
-
\`\`\`
|
|
7545
|
+
\`\`\`go
|
|
6628
7546
|
You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Severity: {{.IncidentSeverity}}{{if gt .AlertCnt 1}}, Grouped {{.AlertCnt}} alerts{{end}}
|
|
6629
7547
|
\`\`\`
|
|
6630
7548
|
</div>
|
|
@@ -6633,94 +7551,95 @@ You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Sever
|
|
|
6633
7551
|
|
|
6634
7552
|
## Email
|
|
6635
7553
|
---
|
|
6636
|
-
If custom content is
|
|
7554
|
+
If no custom content is set, the system default template will be used for notifications:
|
|
6637
7555
|
|
|
6638
|
-
\`\`\`
|
|
7556
|
+
\`\`\`html
|
|
6639
7557
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
6640
7558
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
6641
7559
|
<title>{{.Title}}</title>
|
|
6642
7560
|
<html lang="en">
|
|
6643
7561
|
|
|
6644
7562
|
<head data-id="__react-email-head">
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
7563
|
+
<style>
|
|
7564
|
+
.bg-Critical { background-color: #C80000; }
|
|
7565
|
+
.bg-Warning { background-color: #FA7D00; }
|
|
7566
|
+
.bg-Info { background-color: #FABE00; }
|
|
7567
|
+
.bg-Ok { background-color: rgb(132 204 22); }
|
|
7568
|
+
.text-Critical { color: #C80000; }
|
|
7569
|
+
.text-Warning { color: #FA7D00; }
|
|
7570
|
+
.text-Info { color: #FABE00; }
|
|
7571
|
+
.text-Ok { color: rgb(132 204 22); }
|
|
7572
|
+
.text-title {font-weight:500;width:6rem;flex-shrink:0}
|
|
7573
|
+
.text-content {color:rgb(55,65,81)}
|
|
7574
|
+
</style>
|
|
6657
7575
|
</head>
|
|
6658
7576
|
|
|
6659
7577
|
<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
|
-
|
|
7578
|
+
<div style="width:100%;height:0.375rem;margin-bottom:2rem" class="bg-{{.IncidentSeverity}}"></div>
|
|
7579
|
+
<div style="display:flex;align-items:center;margin-bottom:1.5rem">
|
|
7580
|
+
<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>
|
|
7581
|
+
</div>
|
|
7582
|
+
<div style="background-color:rgb(243,244,246);padding:2rem;margin-top:1rem;border-radius:0.5rem">
|
|
7583
|
+
<div style="display:flex;flex-direction:column;gap:0.75rem">
|
|
7584
|
+
<div style="display:flex">
|
|
7585
|
+
<div class="text-title">Title</div>
|
|
7586
|
+
<div class="text-content">{{.Title}}</div>
|
|
7587
|
+
</div>
|
|
7588
|
+
<div style="display:flex">
|
|
7589
|
+
<div class="text-title">Severity</div>
|
|
7590
|
+
<div class="text-{{.IncidentSeverity}}">{{.IncidentSeverity}}</div>
|
|
7591
|
+
</div>
|
|
7592
|
+
<div style="display:flex">
|
|
7593
|
+
<div class="text-title">Channel</div>
|
|
7594
|
+
<div class="text-content">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</div>
|
|
7595
|
+
</div>
|
|
7596
|
+
<div style="display:flex">
|
|
7597
|
+
<div class="text-title">Triggered at</div>
|
|
7598
|
+
<div class="text-content">{{date "2006-01-02 15:04:05" .StartTime}}</div>
|
|
7599
|
+
</div>
|
|
7600
|
+
{{if .CreatorID}}
|
|
7601
|
+
<div style="display:flex">
|
|
7602
|
+
<div class="text-title">Creator</div>
|
|
7603
|
+
<div class="text-content">{{.Creator.PersonName}}</div>
|
|
7604
|
+
</div>
|
|
7605
|
+
{{end}}
|
|
7606
|
+
{{if gt (len .Responders) 0}}
|
|
7607
|
+
<div style="display:flex">
|
|
7608
|
+
<div class="text-title">Responders</div>
|
|
7609
|
+
<div class="text-content">{{range .Responders}}@{{.PersonName}} {{end}}</div>
|
|
7610
|
+
</div>
|
|
7611
|
+
{{end}}
|
|
7612
|
+
<div style="display:flex">
|
|
7613
|
+
<div class="text-title">Progress</div>
|
|
7614
|
+
<div class="text-content">{{.Progress}}</div>
|
|
7615
|
+
</div>
|
|
7616
|
+
<div style="display:flex">
|
|
7617
|
+
<div class="text-title">Description</div>
|
|
7618
|
+
<div style="color:rgb(55,65,81);margin-top:0.125rem">
|
|
7619
|
+
<div data-id="react-email-markdown">{{toHtml .Description}}</div>
|
|
7620
|
+
</div>
|
|
7621
|
+
</div>
|
|
7622
|
+
{{if .Labels.resource}}
|
|
7623
|
+
<div style="display:flex;margin-bottom:0.5rem;">
|
|
7624
|
+
<div style="color:#000;font-weight:500;width:6rem;margin-right:1rem;">Alert targets</div>
|
|
7625
|
+
<div style="color:rgb(55,65,81);margin-top:0.125rem">
|
|
7626
|
+
<div data-id="react-email-markdown">{{toHtml (joinAlertLabels . "resource" ", ")}}</div>
|
|
7627
|
+
</div>
|
|
7628
|
+
</div>
|
|
7629
|
+
{{end}}
|
|
7630
|
+
</div>
|
|
7631
|
+
<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>
|
|
7632
|
+
</div>
|
|
7633
|
+
<div style="display:flex;justify-content:flex-end;align-items:flex-end;margin-top:2rem">
|
|
7634
|
+
<div style="font-size:0.875rem;line-height:1.25rem;font-weight:500">ALL RIGHTS RESERVED © Beijing Flashcat Cloud Technology Co.,Ltd.</div>
|
|
7635
|
+
</div>
|
|
6718
7636
|
</body>
|
|
6719
7637
|
|
|
6720
7638
|
</html>
|
|
6721
7639
|
\`\`\`
|
|
6722
7640
|
|
|
6723
|
-
As shown below:
|
|
6724
|
-
|
|
7641
|
+
As shown in the image below:
|
|
7642
|
+
|
|
7643
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/email_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6725
7644
|
|
|
6726
|
-
|
|
7645
|
+
</div>`,oe={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:z,Jira:V,Lark:K,Dingtalk:J,Wecom:Z,Slack:Q,MicrosoftTeams:X,AlertWebhook:ee,IncidentWebhook:ne,CustomAction:te,Templates:ie,HuaweiyunAPM:O,JiraSync:ae,ZStack:Y,Keep:H,ElastAlert2:$,DingtalkAlert:j,FeishuAlert:B};module.exports=oe;
|