flashduty-knowledge-base 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/en.d.ts +4 -0
- package/dist/esm/en.js +1168 -332
- package/dist/esm/zh.js +626 -163
- package/dist/iife/en.js +1146 -310
- package/dist/iife/zh.js +609 -146
- package/dist/zh.d.ts +4 -0
- package/package.json +11 -4
package/dist/iife/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> `,a=`---
|
|
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
|
`,i=`---
|
|
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
|
|
379
407
|
|
|
380
|
-
|
|
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" />
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
### Configure in Nightingale/Flashcat v5~v8.0.0-beta.6 <span id="v7"></span>
|
|
417
|
+
|
|
418
|
+
Choose one of the following two methods:
|
|
381
419
|
|
|
382
420
|
#### Method 1: Configure by Strategy
|
|
383
421
|
|
|
@@ -472,7 +510,7 @@ Nightingale/Flashcat to Flashduty alert severity mapping:
|
|
|
472
510
|
`,o=`---
|
|
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
|
`,s=`---
|
|
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
|
`,r=`---
|
|
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
|
+
`,l=`---
|
|
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>`,d=`---
|
|
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
|
`,c=`---
|
|
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>`,h=`---
|
|
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
|
`,u={CustomAlert:t,Email:a,N9e:i,Prometheus:o,Grafana:s,Zabbix:r,UptimeKuma:l,AliyunARMS:d,AliyunCmEvent:c,AliyunCm:h,AliyunSLS:e,AWSCW:e,AzureMonitor:`---
|
|
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
|
`,BaiDuBCM:`---
|
|
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
|
`,HuaWeiCES:`---
|
|
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
|
`,OpenFalcon:`---
|
|
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
|
`,PagerDuty:`---
|
|
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
|
`,TencentBK:`---
|
|
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
|
`,TencentCLS:`---
|
|
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
|
`,TencentCm:`---
|
|
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
|
`,TencentEb:`---
|
|
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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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 **Zilliz** 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>
|
|
@@ -3649,8 +3690,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3649
3690
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3650
3691
|
2. Select **Splunk** integration:
|
|
3651
3692
|
- **Integration Name**: Define a name for this integration
|
|
3652
|
-
3.
|
|
3653
|
-
4. Click **
|
|
3693
|
+
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)
|
|
3694
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3654
3695
|
5. Done
|
|
3655
3696
|
|
|
3656
3697
|
</details>
|
|
@@ -3724,8 +3765,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3724
3765
|
1. Go to the Flashduty console, select **Integration Center=>Alerts**, and enter the integration selection page
|
|
3725
3766
|
2. Select **AppDynamics** integration:
|
|
3726
3767
|
- **Integration Name**: Define a name for this integration
|
|
3727
|
-
3.
|
|
3728
|
-
4. Click **
|
|
3768
|
+
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)
|
|
3769
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3729
3770
|
5. Done
|
|
3730
3771
|
|
|
3731
3772
|
</details>
|
|
@@ -3884,8 +3925,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3884
3925
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3885
3926
|
2. Select **SolarWinds** integration:
|
|
3886
3927
|
- **Integration Name**: Define a name for this integration
|
|
3887
|
-
3.
|
|
3888
|
-
4. Click **
|
|
3928
|
+
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)
|
|
3929
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3889
3930
|
5. Done
|
|
3890
3931
|
|
|
3891
3932
|
</details>
|
|
@@ -3987,8 +4028,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3987
4028
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
3988
4029
|
2. Select **Volcengine CM Metrics** integration:
|
|
3989
4030
|
- **Integration Name**: Define a name for this integration
|
|
3990
|
-
3.
|
|
3991
|
-
4. Click **
|
|
4031
|
+
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)
|
|
4032
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
3992
4033
|
5. Done
|
|
3993
4034
|
|
|
3994
4035
|
</details>
|
|
@@ -4076,8 +4117,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4076
4117
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4077
4118
|
2. Select **Volcengine CM Metrics** integration:
|
|
4078
4119
|
- **Integration Name**: Define a name for this integration
|
|
4079
|
-
3.
|
|
4080
|
-
4. Click **
|
|
4120
|
+
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)
|
|
4121
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4081
4122
|
5. Done
|
|
4082
4123
|
|
|
4083
4124
|
</details>
|
|
@@ -4163,8 +4204,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4163
4204
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4164
4205
|
2. Select **Volcengine TLS** integration:
|
|
4165
4206
|
- **Integration Name**: Define a name for this integration
|
|
4166
|
-
3.
|
|
4167
|
-
4. Click **
|
|
4207
|
+
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)
|
|
4208
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4168
4209
|
5. Done
|
|
4169
4210
|
|
|
4170
4211
|
</details>
|
|
@@ -4300,8 +4341,8 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4300
4341
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4301
4342
|
2. Select **OpManager** integration:
|
|
4302
4343
|
- **Integration Name**: Define a name for this integration
|
|
4303
|
-
3.
|
|
4304
|
-
4. Click **
|
|
4344
|
+
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)
|
|
4345
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4305
4346
|
5. Done
|
|
4306
4347
|
|
|
4307
4348
|
</details>
|
|
@@ -4434,8 +4475,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4434
4475
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4435
4476
|
2. Select **Meraki** integration:
|
|
4436
4477
|
- **Integration Name**: Define a name for this integration
|
|
4437
|
-
3.
|
|
4438
|
-
4. Click **
|
|
4478
|
+
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)
|
|
4479
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4439
4480
|
5. Done
|
|
4440
4481
|
|
|
4441
4482
|
</details>
|
|
@@ -4509,8 +4550,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4509
4550
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4510
4551
|
2. Select **StateCloud** integration:
|
|
4511
4552
|
- **Integration Name**: Define a name for this integration
|
|
4512
|
-
3.
|
|
4513
|
-
4. Click **
|
|
4553
|
+
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)
|
|
4554
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4514
4555
|
5. Done
|
|
4515
4556
|
|
|
4516
4557
|
</details>
|
|
@@ -4593,8 +4634,8 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4593
4634
|
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
4594
4635
|
2. Select **Guance** integration:
|
|
4595
4636
|
- **Integration Name**: Define a name for this integration
|
|
4596
|
-
3.
|
|
4597
|
-
4. Click **
|
|
4637
|
+
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)
|
|
4638
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
4598
4639
|
5. Done
|
|
4599
4640
|
|
|
4600
4641
|
</details>
|
|
@@ -4642,7 +4683,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4642
4683
|
`,CustomChange:`---
|
|
4643
4684
|
title: "Custom Change Event Integration Guide"
|
|
4644
4685
|
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."
|
|
4645
|
-
date: "
|
|
4686
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4646
4687
|
url: "https://docs.flashcat.cloud/en/flashduty/custom-change-integration-guide"
|
|
4647
4688
|
---
|
|
4648
4689
|
|
|
@@ -4699,7 +4740,7 @@ Labels are descriptions of events. You should enrich label content as much as po
|
|
|
4699
4740
|
`,Jira:`---
|
|
4700
4741
|
title: "Jira Issue Events"
|
|
4701
4742
|
description: "Sync Jira Issue events to Flashduty via webhooks to collect change events."
|
|
4702
|
-
date: "
|
|
4743
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4703
4744
|
url: "https://docs.flashcat.cloud/en/flashduty/jira-integration-guide"
|
|
4704
4745
|
---
|
|
4705
4746
|
|
|
@@ -4908,7 +4949,7 @@ Once published, you can access the application via mobile/PC client. First-time
|
|
|
4908
4949
|
**Note:** Messages cannot be pushed normally when exceeding limits, please use notification channels reasonably`,Dingtalk:`---
|
|
4909
4950
|
title: "Dingtalk Integration"
|
|
4910
4951
|
description: "Integrate with Dingtalk custom application to receive and respond to alerts within Dingtalk"
|
|
4911
|
-
date: "
|
|
4952
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
4912
4953
|
url: "https://docs.flashcat.cloud/en/flashduty/dingtalk-integration-guide"
|
|
4913
4954
|
---
|
|
4914
4955
|
|
|
@@ -5064,7 +5105,7 @@ After the application is released, you can access it via mobile/PC client. First
|
|
|
5064
5105
|
`,Wecom:`---
|
|
5065
5106
|
title: "WeCom Integration"
|
|
5066
5107
|
description: "Integrate WeCom third-party application to receive and respond to alerts within WeCom"
|
|
5067
|
-
date: "
|
|
5108
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5068
5109
|
url: "https://docs.flashcat.cloud/en/flashduty/wecom-integration-guide"
|
|
5069
5110
|
---
|
|
5070
5111
|
|
|
@@ -5143,7 +5184,7 @@ Integrate WeCom third-party application to receive and respond to alerts within
|
|
|
5143
5184
|
`,Slack:`---
|
|
5144
5185
|
title: "Slack Integration"
|
|
5145
5186
|
description: "Integrate with Slack to receive and respond to alerts within Slack"
|
|
5146
|
-
date: "
|
|
5187
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5147
5188
|
url: "https://docs.flashcat.cloud/en/flashduty/slack-integration-guide"
|
|
5148
5189
|
---
|
|
5149
5190
|
|
|
@@ -5197,7 +5238,7 @@ Integrate with Slack to receive and respond to alerts within Slack.
|
|
|
5197
5238
|
- If the error persists, contact customer support`,MicrosoftTeams:`---
|
|
5198
5239
|
title: "Microsoft Teams Integration"
|
|
5199
5240
|
description: "Integrate Microsoft Teams as a third-party application to receive and respond to alerts within Microsoft Teams"
|
|
5200
|
-
date: "
|
|
5241
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5201
5242
|
url: "https://docs.flashcat.cloud/en/flashduty/microsoft-teams-integration-guide"
|
|
5202
5243
|
---
|
|
5203
5244
|
|
|
@@ -5926,25 +5967,42 @@ url: "https://docs.flashcat.cloud/en/flashduty/template-settings"
|
|
|
5926
5967
|
|
|
5927
5968
|
## When Are Templates Used?
|
|
5928
5969
|
---
|
|
5929
|
-
The system uses templates to render [Incident](#Incident)
|
|
5970
|
+
The system uses templates to render [Incident](#Incident) when assigning incidents, which may occur in the following scenarios:
|
|
5930
5971
|
|
|
5931
5972
|
1. Manually create and assign an incident
|
|
5932
5973
|
2. When an alert event is reported, the system automatically generates an incident and assigns it according to the matched escalation rule
|
|
5933
5974
|
3. After an incident is created, manually change the assignment (reassign)
|
|
5934
|
-
4.
|
|
5975
|
+
4. System automatically escalates according to escalation rule settings
|
|
5935
5976
|
5. When reopening a closed incident, reassign according to previous settings
|
|
5936
5977
|
|
|
5937
|
-
We use \`Golang template syntax\` [template/html](https://pkg.go.dev/html/template@go1.18.1) to parse data,
|
|
5978
|
+
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.
|
|
5979
|
+
|
|
5980
|
+
- 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;
|
|
5981
|
+
- 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;
|
|
5982
|
+
- If you wish to introduce more functions, feel free to submit a merge request
|
|
5983
|
+
|
|
5984
|
+
## How to Configure Notification Templates?
|
|
5985
|
+
---
|
|
5986
|
+
|
|
5987
|
+
### Configure Notification Templates
|
|
5988
|
+
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.
|
|
5989
|
+
|
|
5990
|
+
1. Enter the \`Templates\` page, click the \`Create Custom Template\` button or \`Copy Default Template\`, and enter the editing page.
|
|
5991
|
+
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?)
|
|
5992
|
+
3. After editing, click the \`Save\` button to save the template.
|
|
5993
|
+
|
|
5994
|
+
### Use Notification Templates
|
|
5995
|
+
1. Enter the \`Channel\` -> \`Escalation Rules\` page, click the \`Edit\` button, and enter the editing page.
|
|
5996
|
+
2. In the strategy configuration section, you can select the template to use **which template** for notification, and select the notification template to use.
|
|
5997
|
+
3. Other configurations can refer to [Escalation Rules Configuration](https://docs.flashcat.cloud/en/flashduty/escalate-rule-settings).
|
|
5998
|
+
4. After configuration, click the \`Save\` button to save the escalation policy.
|
|
5938
5999
|
|
|
5939
|
-
- 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
|
|
5940
|
-
- 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
|
|
5941
|
-
- If you want to introduce more functions, feel free to submit a merge request
|
|
5942
6000
|
|
|
5943
6001
|
## What Variables Can I Reference?
|
|
5944
6002
|
---
|
|
5945
6003
|
**Variable Reference Examples**:
|
|
5946
6004
|
|
|
5947
|
-
\`\`\`
|
|
6005
|
+
\`\`\`go
|
|
5948
6006
|
// Reference title
|
|
5949
6007
|
{{.Title}}
|
|
5950
6008
|
|
|
@@ -5966,7 +6024,7 @@ ID | string | Yes | Incident ID
|
|
|
5966
6024
|
\`Title\` | string | Yes | Incident title
|
|
5967
6025
|
\`Description\` | string | Yes | Incident description, can be empty
|
|
5968
6026
|
DetailUrl | string | Yes | Incident detail page URL
|
|
5969
|
-
Num | string | Yes | Short incident identifier, for easy visual recognition
|
|
6027
|
+
Num | string | Yes | Short incident identifier, for easy visual recognition, may be duplicate
|
|
5970
6028
|
\`IncidentSeverity\` | string | Yes | Severity level, enum values: Critical, Warning, Info
|
|
5971
6029
|
IncidentStatus | string | Yes | Incident status, enum values: Critical, Warning, Info, Ok
|
|
5972
6030
|
\`Progress\` | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
@@ -5975,19 +6033,19 @@ LastTime | int64 | No | Latest event time, latest incorporated event time in ass
|
|
|
5975
6033
|
EndTime | int64 | No | Recovery time, when all associated alerts recover, the incident will automatically recover and close. Unix timestamp in seconds, default 0
|
|
5976
6034
|
SnoozedBefore | int64 | No | Snooze end time, Unix timestamp in seconds, default 0
|
|
5977
6035
|
AckTime | int64 | No | First acknowledgment time, Unix timestamp in seconds, default 0
|
|
5978
|
-
CloseTime | int64 | No | Close time, end_time is incident recovery time, close_time is processing progress close time. Incident automatically closes
|
|
5979
|
-
Creator | [Person](#Person) | No | Creator information,
|
|
5980
|
-
Closer | [Person](#Person) | No | Closer information,
|
|
6036
|
+
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
|
|
6037
|
+
Creator | [Person](#Person) | No | Creator information, not present when automatically generated by system
|
|
6038
|
+
Closer | [Person](#Person) | No | Closer information, not present when incident recovers automatically
|
|
5981
6039
|
AssignedTo | [Assignment](Assignment) | No | Assignment configuration
|
|
5982
|
-
Responders | [][Responder](#Responder) | No |
|
|
6040
|
+
Responders | [][Responder](#Responder) | No | Responder list, initialized based on assignment configuration, also includes records if non-assigned personnel acknowledge the incident
|
|
5983
6041
|
ChannelID | int64 | No | Channel ID, value is 0 when manually creating global incident
|
|
5984
6042
|
ChannelName | string | No | Channel name
|
|
5985
6043
|
GroupMethod | string | No | Grouping method, enum values: n: no grouping, p: rule-based grouping, i: intelligent grouping
|
|
5986
|
-
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings. No information when manually created,
|
|
6044
|
+
\`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
|
|
5987
6045
|
AlertCnt | int64 | Yes | Number of associated alerts
|
|
5988
6046
|
Alerts | [][Alert](#Alert) | No | Associated alert details, no information when manually created
|
|
5989
6047
|
FireType | string | No | Notification type, enum values: fire: notify, refire: loop notification
|
|
5990
|
-
IsFlapping | bool | No | Whether in flapping state, i.e
|
|
6048
|
+
IsFlapping | bool | No | Whether in flapping state, i.e., frequent occurrence and recovery, related to convergence configuration
|
|
5991
6049
|
Impact | string | No | Incident impact, filled after incident closure
|
|
5992
6050
|
RootCause | string | No | Root cause, filled after incident closure
|
|
5993
6051
|
Resolution | string | No | Resolution, filled after incident closure
|
|
@@ -6004,11 +6062,11 @@ email | string | Yes | Email address
|
|
|
6004
6062
|
**Assignment** (Indirect Reference):
|
|
6005
6063
|
Field|Type|Required|Description
|
|
6006
6064
|
:-:|:-:|:-:|:---
|
|
6007
|
-
PersonIDs | []string| No |
|
|
6065
|
+
PersonIDs | []string| No | Person ID list, exists only when assigning by person
|
|
6008
6066
|
EscalateRuleID | string | No | Escalation rule ID, exists only when assigning by rule
|
|
6009
6067
|
EscalateRuleName | string | No | Escalation rule name
|
|
6010
6068
|
LayerIdx | string | No | Assignment level, corresponds to escalation rule level index, starts from 0
|
|
6011
|
-
Type | string | Yes | Assignment type, enum values: assign: assign, reassign: reassign, escalate:
|
|
6069
|
+
Type | string | Yes | Assignment type, enum values: assign: assign, reassign: reassign, escalate: escalation assign, reopen: reopen assign
|
|
6012
6070
|
|
|
6013
6071
|
<span id="Responder"></span>
|
|
6014
6072
|
**Responder** (Indirect Reference):
|
|
@@ -6031,44 +6089,44 @@ AlertStatus | string | Yes | Alert status, enum values: Critical, Warning, Info,
|
|
|
6031
6089
|
Progress | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
6032
6090
|
StartTime | int64 | Yes | Trigger time, Unix timestamp in seconds
|
|
6033
6091
|
EndTime | int64 | No | Recovery time, Unix timestamp in seconds, default 0
|
|
6034
|
-
CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime is processing progress close time. Alert automatically closes
|
|
6092
|
+
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
|
|
6035
6093
|
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings
|
|
6036
6094
|
|
|
6037
|
-
##
|
|
6095
|
+
## Common Questions
|
|
6038
6096
|
---
|
|
6039
|
-
1. **How do I know what label information is in \`Labels\`?**
|
|
6097
|
+
1. **How do I know what label information is available in \`Labels\`?**
|
|
6040
6098
|
|
|
6041
6099
|
- Manually created incidents have no labels
|
|
6042
|
-
- Automatically created incidents have labels,
|
|
6100
|
+
- 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
|
|
6043
6101
|
|
|
6044
6102
|
2. **Why is the \`default template\` used when I configured custom template rendering?**
|
|
6045
6103
|
|
|
6046
6104
|
- When creating a custom template, the system uses mock data to render the template to check for syntax errors
|
|
6047
|
-
- Mock data has limited coverage and may not match some
|
|
6048
|
-
-
|
|
6049
|
-
- When unsure if a referenced variable exists, it's recommended to use logical conditions to avoid rendering
|
|
6105
|
+
- Mock data has limited coverage and may not match some logic branches in your template during actual operation
|
|
6106
|
+
- If rendering fails, the system will use the default template as a fallback to ensure message delivery
|
|
6107
|
+
- When unsure if a referenced variable exists, it's recommended to use logical conditions to avoid rendering errors, e.g., for the \`resource\` label:
|
|
6050
6108
|
|
|
6051
|
-
\`\`\`
|
|
6109
|
+
\`\`\`go
|
|
6052
6110
|
// Wrong approach: directly read label
|
|
6053
6111
|
{{.Labels.resource}}
|
|
6054
6112
|
|
|
6055
|
-
// Recommended
|
|
6113
|
+
// Recommended: check first, then read label
|
|
6056
6114
|
{{if .Labels.resource}}{{.Labels.resource}}{{end}}
|
|
6057
6115
|
\`\`\`
|
|
6058
6116
|
|
|
6059
|
-
3. **Why are characters like ">" \`escaped\` in
|
|
6117
|
+
3. **Why are characters like ">" \`escaped\` in incident titles?**
|
|
6060
6118
|
|
|
6061
|
-
\`\`\`
|
|
6119
|
+
\`\`\`go
|
|
6062
6120
|
// Use toHtml function
|
|
6063
6121
|
{{toHtml .Title}}
|
|
6064
6122
|
|
|
6065
|
-
// Use first non-empty value for rendering,
|
|
6123
|
+
// Use first non-empty value for rendering, avoiding complex if logic
|
|
6066
6124
|
{{toHtml .Title .TitleEnglish}}
|
|
6067
6125
|
\`\`\`
|
|
6068
6126
|
|
|
6069
|
-
4. **Time variables are timestamps, how
|
|
6127
|
+
4. **Time variables are timestamps, how do I \`convert time formats\`?**
|
|
6070
6128
|
|
|
6071
|
-
\`\`\`
|
|
6129
|
+
\`\`\`go
|
|
6072
6130
|
// date function converts timestamp to readable format
|
|
6073
6131
|
// "2006-01-02 15:04:05" is a common format, search online for more formats
|
|
6074
6132
|
{{date "2006-01-02 15:04:05" .StartTime}}
|
|
@@ -6078,24 +6136,24 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6078
6136
|
\`\`\`
|
|
6079
6137
|
|
|
6080
6138
|
5. **How to reference external variables inside a for loop?**
|
|
6081
|
-
\`\`\`
|
|
6139
|
+
\`\`\`go
|
|
6082
6140
|
// Add "$" before external variables
|
|
6083
6141
|
{{range .Responders}}
|
|
6084
|
-
|
|
6085
|
-
|
|
6086
|
-
|
|
6142
|
+
{{if eq $.Progress "Triggered"}}
|
|
6143
|
+
[Pending]{{.Email}}
|
|
6144
|
+
{{end}}
|
|
6087
6145
|
{{end}}
|
|
6088
6146
|
\`\`\`
|
|
6089
|
-
6. **How
|
|
6147
|
+
6. **How do I extract field values with "." in names, like "obj.instance" in labels?**
|
|
6090
6148
|
|
|
6091
|
-
\`\`\`
|
|
6149
|
+
\`\`\`go
|
|
6092
6150
|
// Use index function
|
|
6093
6151
|
{{index .Labels "obj.instance"}}
|
|
6094
6152
|
\`\`\`
|
|
6095
6153
|
|
|
6096
|
-
7. **How
|
|
6154
|
+
7. **How do I extract and deduplicate label information from incident-associated alerts?**
|
|
6097
6155
|
|
|
6098
|
-
\`\`\`
|
|
6156
|
+
\`\`\`go
|
|
6099
6157
|
// Use alertLabels function to get deduplicated array
|
|
6100
6158
|
{{alertLabels . "resource"}}
|
|
6101
6159
|
|
|
@@ -6103,9 +6161,9 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6103
6161
|
{{joinAlertLabels . "resource" "sep"}}
|
|
6104
6162
|
\`\`\`
|
|
6105
6163
|
|
|
6106
|
-
8. **How
|
|
6164
|
+
8. **How do I iterate and print labels?**
|
|
6107
6165
|
|
|
6108
|
-
\`\`\`
|
|
6166
|
+
\`\`\`go
|
|
6109
6167
|
// Complete iteration
|
|
6110
6168
|
{{range $k, $v := .Labels}}
|
|
6111
6169
|
{{$k}} : {{toHtml $v}}
|
|
@@ -6125,38 +6183,70 @@ CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime i
|
|
|
6125
6183
|
{{end}}
|
|
6126
6184
|
{{end}}
|
|
6127
6185
|
|
|
6128
|
-
9. **How
|
|
6186
|
+
9. **How do I extract information from JSON fields?**
|
|
6129
6187
|
|
|
6130
|
-
-
|
|
6131
|
-
- Target data
|
|
6188
|
+
- jsonGet function helps extract values from JSON format data using path
|
|
6189
|
+
- Target data for jsonGet function must be valid JSON
|
|
6132
6190
|
- Basic usage: {{jsonGet .Labels.xxx "yyy"}}, where xxx must be valid JSON and yyy is a valid extraction path
|
|
6133
6191
|
- For JSON path syntax, refer to [gjson.dev](https://gjson.dev/), where you can input target data and extraction path for real-time preview
|
|
6134
6192
|
|
|
6135
|
-
\`\`\`
|
|
6193
|
+
\`\`\`go
|
|
6136
6194
|
// Extract detail_url field from rule_note label
|
|
6137
6195
|
{{jsonGet .Labels.rule_note "detail_url"}}
|
|
6138
6196
|
|
|
6139
6197
|
// Extract name field from first element in JSON array
|
|
6140
6198
|
{{jsonGet .Labels.slice "0.name"}}
|
|
6141
6199
|
|
|
6142
|
-
// Iterate
|
|
6200
|
+
// Iterate through JSON array elements, match instanceId field of object with userId==7777
|
|
6143
6201
|
{{jsonGet .Labels.rule_note "#(userId==7777)#.instanceId" }}
|
|
6144
6202
|
|
|
6145
6203
|
\`\`\`
|
|
6204
|
+
10. **如何使用逻辑与、或等条件进行内容显示判断?**
|
|
6146
6205
|
|
|
6147
|
-
|
|
6206
|
+
\`\`\`
|
|
6207
|
+
# Supported functions
|
|
6208
|
+
- Use \`and\` function for logical AND judgment
|
|
6209
|
+
- Use \`or\` function for logical OR judgment
|
|
6210
|
+
- Use \`not\` function for logical NOT judgment
|
|
6211
|
+
- Use \`eq\` function for logical equal judgment
|
|
6212
|
+
- Use \`ne\` function for logical not equal judgment
|
|
6213
|
+
- Use \`gt\` function for logical greater than judgment
|
|
6214
|
+
- Use \`ge\` function for logical greater than or equal judgment
|
|
6215
|
+
- Use \`lt\` function for logical less than judgment
|
|
6216
|
+
- Use \`le\` function for logical less than or equal judgment
|
|
6217
|
+
|
|
6218
|
+
# Example usage
|
|
6219
|
+
# Use and function for logical AND judgment
|
|
6220
|
+
|
|
6221
|
+
{{if and (eq .Labels.resource "cpu") (eq .Labels.metric "cpu_usage")}}
|
|
6222
|
+
{{.Labels.resource}} CPU usage exceeds 80%
|
|
6223
|
+
{{end}}
|
|
6224
|
+
|
|
6225
|
+
# Use or function for logical OR judgment
|
|
6226
|
+
{{if or (eq .Labels.resource "cpu") (eq .Labels.metric "cpu_usage")}}
|
|
6227
|
+
{{.Labels.resource}} CPU usage exceeds 80%
|
|
6228
|
+
{{end}}
|
|
6229
|
+
|
|
6230
|
+
# Use not function for logical NOT judgment
|
|
6231
|
+
{{if not (eq .Labels.metric "cpu_usage")}}
|
|
6232
|
+
{{.Labels.metric}} is not CPU usage
|
|
6233
|
+
{{end}}
|
|
6234
|
+
|
|
6235
|
+
\`\`\`
|
|
6236
|
+
|
|
6237
|
+
11. **How do I find more functions and their usage examples?**
|
|
6148
6238
|
- Function list: https://github.com/flashcatcloud/sprig/blob/master/functions.go#L97
|
|
6149
|
-
- Usage examples: Check corresponding _test.go files, e.g
|
|
6239
|
+
- Usage examples: Check corresponding _test.go files, e.g., date function test cases at https://github.com/flashcatcloud/sprig/blob/master/date_test.go
|
|
6150
6240
|
|
|
6151
|
-
Below are specific instructions for each notification channel.
|
|
6241
|
+
Below are specific instructions for each notification channel.
|
|
6152
6242
|
|
|
6153
6243
|
<div class="feishu_app hide">
|
|
6154
6244
|
|
|
6155
6245
|
## Feishu/Lark App
|
|
6156
6246
|
---
|
|
6157
|
-
You need to configure \`Integration Center
|
|
6247
|
+
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:
|
|
6158
6248
|
|
|
6159
|
-
\`\`\`
|
|
6249
|
+
\`\`\`go
|
|
6160
6250
|
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6161
6251
|
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6162
6252
|
{{range $k, $v := .Labels}}
|
|
@@ -6165,15 +6255,14 @@ You need to configure \`Integration Center - IM - Feishu/Lark\` integration firs
|
|
|
6165
6255
|
|
|
6166
6256
|
As shown below:
|
|
6167
6257
|
|
|
6168
|
-
<img src="https://download.flashcat.cloud/flashduty/
|
|
6169
|
-
|
|
6258
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/feishu_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6170
6259
|
|
|
6171
|
-
If you want to display only key label information, you can refer to the code
|
|
6260
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6172
6261
|
|
|
6173
|
-
- We've listed some common labels
|
|
6174
|
-
- In Feishu
|
|
6262
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6263
|
+
- In Feishu app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6175
6264
|
|
|
6176
|
-
\`\`\`
|
|
6265
|
+
\`\`\`go
|
|
6177
6266
|
{{if (index .Labels "resource")}}resource:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6178
6267
|
{{if (index .Labels "check")}}check:{{toHtml (index .Labels "check")}}{{end}}
|
|
6179
6268
|
{{if (index .Labels "metric")}}metric:{{index .Labels "metric"}}{{end}}
|
|
@@ -6201,9 +6290,9 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6201
6290
|
|
|
6202
6291
|
## Dingtalk App
|
|
6203
6292
|
---
|
|
6204
|
-
You need to configure \`Integration Center
|
|
6293
|
+
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:
|
|
6205
6294
|
|
|
6206
|
-
\`\`\`
|
|
6295
|
+
\`\`\`go
|
|
6207
6296
|
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6208
6297
|
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6209
6298
|
{{range $k, $v := .Labels}}
|
|
@@ -6211,15 +6300,15 @@ You need to configure \`Integration Center - IM - Dingtalk\` integration first t
|
|
|
6211
6300
|
\`\`\`
|
|
6212
6301
|
|
|
6213
6302
|
As shown below:
|
|
6214
|
-
<img src="https://download.flashcat.cloud/flashduty/doc/en/fd/template-ding-1.png" width="800">
|
|
6215
6303
|
|
|
6304
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/dingtalk_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6216
6305
|
|
|
6217
|
-
If you want to display only key label information, you can refer to the code
|
|
6306
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6218
6307
|
|
|
6219
|
-
- We've listed some common labels
|
|
6220
|
-
- In Dingtalk app, the system will automatically remove empty lines (
|
|
6308
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6309
|
+
- In Dingtalk app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6221
6310
|
|
|
6222
|
-
\`\`\`
|
|
6311
|
+
\`\`\`go
|
|
6223
6312
|
{{if (index .Labels "resource")}}**resource**:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6224
6313
|
{{if (index .Labels "metric")}}**metric**:{{index .Labels "metric"}}{{end}}
|
|
6225
6314
|
{{if (index .Labels "prom_ql")}}**prom_ql**:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
@@ -6246,12 +6335,13 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6246
6335
|
|
|
6247
6336
|
## WeCom App
|
|
6248
6337
|
---
|
|
6249
|
-
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:
|
|
6250
6338
|
|
|
6251
|
-
-
|
|
6252
|
-
- In WeCom app, the system will automatically remove empty lines (caused by non-existent labels) during rendering, so you can configure freely
|
|
6339
|
+
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:
|
|
6253
6340
|
|
|
6254
|
-
|
|
6341
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6342
|
+
- In WeCom app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6343
|
+
|
|
6344
|
+
\`\`\`go
|
|
6255
6345
|
{{if (index .Labels "resource")}}resource:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6256
6346
|
{{if (index .Labels "metric")}}metric:{{index .Labels "metric"}}{{end}}
|
|
6257
6347
|
{{if (index .Labels "prom_ql")}}prom_ql:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
@@ -6275,19 +6365,19 @@ You need to configure \`Integration Center - IM - WeCom\` integration first to s
|
|
|
6275
6365
|
|
|
6276
6366
|
As shown below:
|
|
6277
6367
|
|
|
6278
|
-
<img src="https://download.flashcat.cloud/flashduty/
|
|
6368
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/wecom_app_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6279
6369
|
|
|
6370
|
+
**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**
|
|
6280
6371
|
|
|
6281
|
-
**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**
|
|
6282
6372
|
</div>
|
|
6283
6373
|
|
|
6284
6374
|
<div class="slack_app hide">
|
|
6285
6375
|
|
|
6286
6376
|
## Slack App
|
|
6287
6377
|
---
|
|
6288
|
-
You need to configure \`Integration Center
|
|
6378
|
+
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:
|
|
6289
6379
|
|
|
6290
|
-
\`\`\`
|
|
6380
|
+
\`\`\`go
|
|
6291
6381
|
{{if .Description}}*description* :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6292
6382
|
{{if .Labels.resource}}*resource* : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6293
6383
|
{{range $k, $v := .Labels}}
|
|
@@ -6298,18 +6388,18 @@ As shown below:
|
|
|
6298
6388
|
|
|
6299
6389
|
<img src="https://download.flashcat.cloud/flashduty/integration/slack/slack_app_message.png" alt="drawing" style="display: block; margin: 0 auto;" width="600"/>
|
|
6300
6390
|
|
|
6301
|
-
If you want to display only key label information, you can refer to the code
|
|
6391
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6302
6392
|
|
|
6303
|
-
- We've listed some common labels
|
|
6304
|
-
- Messages can be around 15000 characters long, content beyond
|
|
6305
|
-
- In Slack app, the system will automatically remove empty lines (
|
|
6393
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6394
|
+
- Messages can be around 15000 characters long, content beyond this will be truncated
|
|
6395
|
+
- In Slack app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6306
6396
|
|
|
6307
|
-
\`\`\`
|
|
6397
|
+
\`\`\`go
|
|
6308
6398
|
{{if (index .Labels "resource")}}*resource*:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6309
6399
|
{{if (index .Labels "metric")}}*metric*:{{index .Labels "metric"}}{{end}}
|
|
6310
6400
|
{{if (index .Labels "prom_ql")}}*prom_ql*:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
6311
6401
|
{{if (index .Labels "trigger_value")}}*trigger_value*:{{index .Labels "trigger_value"}}{{end}}
|
|
6312
|
-
{{if (index .Labels "host_ql")}}*host_ql*:{{
|
|
6402
|
+
{{if (index .Labels "host_ql")}}*host_ql*:{{index .Labels "host_ql"}}{{end}}
|
|
6313
6403
|
{{if (index .Labels "region")}}*region*:{{index .Labels "region"}}{{end}}
|
|
6314
6404
|
{{if (index .Labels "cluster")}}*cluster*:{{index .Labels "cluster"}}{{end}}
|
|
6315
6405
|
{{if (index .Labels "business")}}*business*:{{index .Labels "business"}}{{end}}
|
|
@@ -6324,19 +6414,392 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6324
6414
|
{{if (index .Labels "name")}}*name*:{{index .Labels "name"}}{{end}}
|
|
6325
6415
|
{{if (index .Labels "mode")}}*mode*:{{index .Labels "mode"}}{{end}}
|
|
6326
6416
|
{{if (index .Labels "runbook_url")}}*runbook_url*:{{index .Labels "runbook_url"}}{{end}}
|
|
6327
|
-
\`\`\`
|
|
6417
|
+
\`\`\`
|
|
6418
|
+
</div>
|
|
6419
|
+
|
|
6420
|
+
<div class="teams_app hide">
|
|
6421
|
+
|
|
6422
|
+
## Microsoft Teams App
|
|
6423
|
+
---
|
|
6424
|
+
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:
|
|
6425
|
+
|
|
6426
|
+
\`\`\`
|
|
6427
|
+
{{if .Description}}**description** :{{toHtml .Labels.body_text .Description}}{{end}}
|
|
6428
|
+
{{if .Labels.resource}}**resource** : {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6429
|
+
{{range $k, $v := .Labels}}
|
|
6430
|
+
{{if not (in $k "resource" "body_text" "body_text_with_table")}}**{{$k}}** : {{toHtml $v}}{{end}}{{end}}
|
|
6431
|
+
\`\`\`
|
|
6432
|
+
|
|
6433
|
+
As shown below:
|
|
6434
|
+
|
|
6435
|
+
<img src="https://download.flashcat.cloud/flashduty/integration/microsoft-teams/teams_app_message.png" alt="drawing" style="display: block; margin: 0 auto;" width="300"/>
|
|
6436
|
+
|
|
6437
|
+
If you want to display only key label information, you can refer to the code segment below:
|
|
6438
|
+
|
|
6439
|
+
- We've listed some common labels, you can add or remove as needed
|
|
6440
|
+
- Messages can be around 28KB in size, content beyond this will result in an error
|
|
6441
|
+
- In Microsoft Teams app, the system will automatically remove empty rendered lines (due to non-existent labels), so you can configure freely
|
|
6442
|
+
|
|
6443
|
+
\`\`\`
|
|
6444
|
+
{{if (index .Labels "resource")}}**resource**:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}
|
|
6445
|
+
{{if (index .Labels "metric")}}**metric**:{{index .Labels "metric"}}{{end}}
|
|
6446
|
+
{{if (index .Labels "prom_ql")}}**prom_ql**:{{toHtml (index .Labels "prom_ql")}}{{end}}
|
|
6447
|
+
{{if (index .Labels "trigger_value")}}**trigger_value**:{{index .Labels "trigger_value"}}{{end}}
|
|
6448
|
+
{{if (index .Labels "host_ql")}}**host_ql**:{{index .Labels "host_ql"}}{{end}}
|
|
6449
|
+
{{if (index .Labels "region")}}**region**:{{index .Labels "region"}}{{end}}
|
|
6450
|
+
{{if (index .Labels "cluster")}}**cluster**:{{index .Labels "cluster"}}{{end}}
|
|
6451
|
+
{{if (index .Labels "business")}}**business**:{{index .Labels "business"}}{{end}}
|
|
6452
|
+
{{if (index .Labels "service")}}**service**:{{index .Labels "service"}}{{end}}
|
|
6453
|
+
{{if (index .Labels "env")}}**env**:{{index .Labels "env"}}{{end}}
|
|
6454
|
+
{{if (index .Labels "type")}}**type**:{{index .Labels "type"}}{{end}}
|
|
6455
|
+
{{if (index .Labels "topic")}}**topic**:{{index .Labels "topic"}}{{end}}
|
|
6456
|
+
{{if (index .Labels "cpu")}}**cpu**:{{index .Labels "cpu"}}{{end}}
|
|
6457
|
+
{{if (index .Labels "device")}}**device**:{{index .Labels "device"}}{{end}}
|
|
6458
|
+
{{if (index .Labels "path")}}**path**:{{index .Labels "path"}}{{end}}
|
|
6459
|
+
{{if (index .Labels "fstype")}}**fstype**:{{index .Labels "fstype"}}{{end}}
|
|
6460
|
+
{{if (index .Labels "name")}}**name**:{{index .Labels "name"}}{{end}}
|
|
6461
|
+
{{if (index .Labels "mode")}}**mode**:{{index .Labels "mode"}}{{end}}
|
|
6462
|
+
{{if (index .Labels "runbook_url")}}**runbook_url**:{{index .Labels "runbook_url"}}{{end}}
|
|
6463
|
+
\`\`\`
|
|
6464
|
+
</div>
|
|
6465
|
+
|
|
6466
|
+
<div class="sms hide">
|
|
6467
|
+
|
|
6468
|
+
## Feishu/Lark Bot
|
|
6469
|
+
---
|
|
6470
|
+
Feishu/Lark bot supports message cards, rich text, and plain text formats. The default template is in message card format.
|
|
6471
|
+
|
|
6472
|
+
- The msg_type field is required for message cards and rich text, otherwise it will be sent as plain text format
|
|
6473
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
6474
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6475
|
+
|
|
6476
|
+
1. Message Card
|
|
6477
|
+
msg_type is required, value should be interactive
|
|
6478
|
+
\`\`\`
|
|
6479
|
+
{
|
|
6480
|
+
"msg_type": "interactive",
|
|
6481
|
+
"card": {
|
|
6482
|
+
"config": {
|
|
6483
|
+
"wide_screen_mode": true,
|
|
6484
|
+
"enable_forward": true
|
|
6485
|
+
},
|
|
6486
|
+
"header": {
|
|
6487
|
+
"template": "{{if eq .IncidentSeverity "Critical"}}red{{else if eq .IncidentSeverity "Warning"}}orange{{else}}yellow{{end}}",
|
|
6488
|
+
"title": {
|
|
6489
|
+
"content": "{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
|
|
6490
|
+
"tag": "plain_text"
|
|
6491
|
+
}
|
|
6492
|
+
},
|
|
6493
|
+
"elements": [{
|
|
6494
|
+
"tag": "div",
|
|
6495
|
+
"fields": [{
|
|
6496
|
+
"text": {
|
|
6497
|
+
"tag": "lark_md",
|
|
6498
|
+
"content": "**🏢 Channel:**{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}"
|
|
6499
|
+
}
|
|
6500
|
+
},
|
|
6501
|
+
{
|
|
6502
|
+
"text": {
|
|
6503
|
+
"tag": "lark_md",
|
|
6504
|
+
"content": "**{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} Severity:**{{.IncidentSeverity}}"
|
|
6505
|
+
}
|
|
6506
|
+
},
|
|
6507
|
+
{
|
|
6508
|
+
"text": {
|
|
6509
|
+
"tag": "lark_md",
|
|
6510
|
+
"content": "**⏰ Triggered at:**{{date "2006-01-02 15:04:05" .StartTime}}{{if gt .AlertCnt 1}}"
|
|
6511
|
+
}
|
|
6512
|
+
},
|
|
6513
|
+
{
|
|
6514
|
+
"text": {
|
|
6515
|
+
"tag": "lark_md",
|
|
6516
|
+
"content": "**🔔 Grouped alerts:**{{.AlertCnt}} {{end}}{{if .Labels.resource}}"
|
|
6517
|
+
}
|
|
6518
|
+
},
|
|
6519
|
+
{
|
|
6520
|
+
"tag": "div",
|
|
6521
|
+
"text": {
|
|
6522
|
+
"tag": "lark_md",
|
|
6523
|
+
"content": "**📌 Alert targets:**{{toHtml (joinAlertLabels . "resource" ",")}} {{end}}{{if .Description}}"
|
|
6524
|
+
}
|
|
6525
|
+
},
|
|
6526
|
+
{
|
|
6527
|
+
"tag": "div",
|
|
6528
|
+
"text": {
|
|
6529
|
+
"tag": "lark_md",
|
|
6530
|
+
"content": "**🔍 Description:**{{.Description}}{{end}}{{if gt (len .Responders) 0}}"
|
|
6531
|
+
}
|
|
6532
|
+
},
|
|
6533
|
+
{
|
|
6534
|
+
"tag": "div",
|
|
6535
|
+
"text": {
|
|
6536
|
+
"tag": "lark_md",
|
|
6537
|
+
"content": "**👨💻 Responders:**{{range .Responders}}@{{.PersonName}} {{end}}{{end}}"
|
|
6538
|
+
}
|
|
6539
|
+
}
|
|
6540
|
+
]
|
|
6541
|
+
},
|
|
6542
|
+
{
|
|
6543
|
+
"tag": "hr"
|
|
6544
|
+
},
|
|
6545
|
+
{
|
|
6546
|
+
"tag": "action",
|
|
6547
|
+
"actions": [{
|
|
6548
|
+
"tag": "button",
|
|
6549
|
+
"text": {
|
|
6550
|
+
"tag": "plain_text",
|
|
6551
|
+
"content": "Details"
|
|
6552
|
+
},
|
|
6553
|
+
"type": "primary",
|
|
6554
|
+
"url": "{{.DetailUrl}}"
|
|
6555
|
+
},
|
|
6556
|
+
{
|
|
6557
|
+
"tag": "button",
|
|
6558
|
+
"text": {
|
|
6559
|
+
"tag": "plain_text",
|
|
6560
|
+
"content": "Acknowledge"
|
|
6561
|
+
},
|
|
6562
|
+
"type": "primary",
|
|
6563
|
+
"url": "{{.DetailUrl}}?ack=1"
|
|
6564
|
+
}
|
|
6565
|
+
]
|
|
6566
|
+
}]
|
|
6567
|
+
}
|
|
6568
|
+
}
|
|
6569
|
+
\`\`\`
|
|
6570
|
+
|
|
6571
|
+
2. Rich Text
|
|
6572
|
+
msg_type is required, value should be post
|
|
6573
|
+
\`\`\`
|
|
6574
|
+
{
|
|
6575
|
+
"msg_type": "post",
|
|
6576
|
+
"post": {
|
|
6577
|
+
"zh_cn": {
|
|
6578
|
+
"title": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
|
|
6579
|
+
"content": [
|
|
6580
|
+
[{
|
|
6581
|
+
"tag": "text",
|
|
6582
|
+
"text": "🏢 "
|
|
6583
|
+
}, {
|
|
6584
|
+
"tag": "text",
|
|
6585
|
+
"text": "Channel:",
|
|
6586
|
+
"text_type": "bold"
|
|
6587
|
+
}, {
|
|
6588
|
+
"tag": "text",
|
|
6589
|
+
"text": "{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}\\n"
|
|
6590
|
+
}],
|
|
6591
|
+
[{
|
|
6592
|
+
"tag": "text",
|
|
6593
|
+
"text": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} "
|
|
6594
|
+
}, {
|
|
6595
|
+
"tag": "text",
|
|
6596
|
+
"text": "Severity:",
|
|
6597
|
+
"text_type": "bold"
|
|
6598
|
+
}, {
|
|
6599
|
+
"tag": "text",
|
|
6600
|
+
"text": "{{.IncidentSeverity}}\\n",
|
|
6601
|
+
"text_type": "{{if eq .IncidentSeverity "Critical"}}bold{{end}}"
|
|
6602
|
+
}],
|
|
6603
|
+
[{
|
|
6604
|
+
"tag": "text",
|
|
6605
|
+
"text": "⏰ "
|
|
6606
|
+
}, {
|
|
6607
|
+
"tag": "text",
|
|
6608
|
+
"text": "Triggered at:",
|
|
6609
|
+
"text_type": "bold"
|
|
6610
|
+
}, {
|
|
6611
|
+
"tag": "text",
|
|
6612
|
+
"text": "{{date "2006-01-02 15:04:05" .StartTime}}\\n"
|
|
6613
|
+
}],
|
|
6614
|
+
{{if gt .AlertCnt 1}}[{
|
|
6615
|
+
"tag": "text",
|
|
6616
|
+
"text": "🔔 "
|
|
6617
|
+
}, {
|
|
6618
|
+
"tag": "text",
|
|
6619
|
+
"text": "Grouped alerts:",
|
|
6620
|
+
"text_type": "bold"
|
|
6621
|
+
}, {
|
|
6622
|
+
"tag": "text",
|
|
6623
|
+
"text": "{{.AlertCnt}}\\n"
|
|
6624
|
+
}],{{end}}
|
|
6625
|
+
{{if .Labels.resource}}[{
|
|
6626
|
+
"tag": "text",
|
|
6627
|
+
"text": "📋 "
|
|
6628
|
+
}, {
|
|
6629
|
+
"tag": "text",
|
|
6630
|
+
"text": "Alert targets:",
|
|
6631
|
+
"text_type": "bold"
|
|
6632
|
+
}, {
|
|
6633
|
+
"tag": "text",
|
|
6634
|
+
"text": "{{toHtml (joinAlertLabels . "resource" ", ")}}\\n"
|
|
6635
|
+
}],{{end}}
|
|
6636
|
+
{{if .Description}}[{
|
|
6637
|
+
"tag": "text",
|
|
6638
|
+
"text": "📝 "
|
|
6639
|
+
}, {
|
|
6640
|
+
"tag": "text",
|
|
6641
|
+
"text": "Description:",
|
|
6642
|
+
"text_type": "bold"
|
|
6643
|
+
}, {
|
|
6644
|
+
"tag": "text",
|
|
6645
|
+
"text": "{{toHtml .Description}}\\n"
|
|
6646
|
+
}],{{end}}
|
|
6647
|
+
{{if gt (len .Responders) 0}}[{
|
|
6648
|
+
"tag": "text",
|
|
6649
|
+
"text": "👨💻 "
|
|
6650
|
+
}, {
|
|
6651
|
+
"tag": "text",
|
|
6652
|
+
"text": "Responders:",
|
|
6653
|
+
"text_type": "bold"
|
|
6654
|
+
}, {
|
|
6655
|
+
"tag": "text",
|
|
6656
|
+
"text": "{{range .Responders}}@{{.PersonName}} {{end}}\\n"
|
|
6657
|
+
}],{{end}}
|
|
6658
|
+
[{
|
|
6659
|
+
"tag": "a",
|
|
6660
|
+
"href": "{{.DetailUrl}}",
|
|
6661
|
+
"text": "Details"
|
|
6662
|
+
},{
|
|
6663
|
+
"tag": "text",
|
|
6664
|
+
"text": " "
|
|
6665
|
+
},{
|
|
6666
|
+
"tag": "a",
|
|
6667
|
+
"href": "{{.DetailUrl}}?ack=1",
|
|
6668
|
+
"text": "Acknowledge"
|
|
6669
|
+
}]
|
|
6670
|
+
]
|
|
6671
|
+
}
|
|
6672
|
+
}
|
|
6673
|
+
}
|
|
6674
|
+
\`\`\`
|
|
6675
|
+
|
|
6676
|
+
3. Plain Text
|
|
6677
|
+
\`\`\`
|
|
6678
|
+
{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}
|
|
6679
|
+
-----
|
|
6680
|
+
Channel:{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
6681
|
+
Severity:{{.IncidentSeverity}}
|
|
6682
|
+
Triggered at:{{date "2006-01-02 15:04:05" .StartTime}}
|
|
6683
|
+
Duration:{{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
6684
|
+
Grouped alerts:{{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
6685
|
+
Alert targets:{{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
6686
|
+
Description:{{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
6687
|
+
Responders:{{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
6688
|
+
<br>Details:{{.DetailUrl}}
|
|
6689
|
+
\`\`\`
|
|
6690
|
+
</div>
|
|
6691
|
+
|
|
6692
|
+
<div class="dingtalk hide">
|
|
6693
|
+
|
|
6694
|
+
## Dingtalk Bot
|
|
6695
|
+
---
|
|
6696
|
+
Dingtalk bot only supports sending Markdown messages ([syntax restrictions](https://open.dingtalk.com/document/robots/custom-robot-access#title-7ur-3ok-s1a)).
|
|
6697
|
+
|
|
6698
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
6699
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
6700
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6701
|
+
|
|
6702
|
+
\`\`\`
|
|
6703
|
+
{{fireReason .}}INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}
|
|
6704
|
+
|
|
6705
|
+
---
|
|
6706
|
+
- Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
6707
|
+
- Severity: {{$s := colorSeverity .IncidentSeverity}}{{toHtml $s}}
|
|
6708
|
+
- Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
6709
|
+
- Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
6710
|
+
- Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
6711
|
+
- Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
6712
|
+
- Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
6713
|
+
- Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
6714
|
+
---
|
|
6715
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
6716
|
+
\`\`\`
|
|
6717
|
+
</div>
|
|
6718
|
+
|
|
6719
|
+
<div class="wecom hide">
|
|
6720
|
+
|
|
6721
|
+
## WeCom Bot
|
|
6722
|
+
---
|
|
6723
|
+
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)).
|
|
6724
|
+
|
|
6725
|
+
- The maximum message length is \`4000 bytes, content exceeding this limit will be truncated\`
|
|
6726
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
6727
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6728
|
+
|
|
6729
|
+
\`\`\`
|
|
6730
|
+
{{fireReason .}}**INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}**
|
|
6731
|
+
> Channel: <font color="warning">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</font>
|
|
6732
|
+
> Severity: <font color="warning">{{.IncidentSeverity}}</font>
|
|
6733
|
+
> Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
6734
|
+
> Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
6735
|
+
> Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
6736
|
+
> Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
6737
|
+
> Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
6738
|
+
> Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
6739
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
6740
|
+
\`\`\`
|
|
6741
|
+
</div>
|
|
6742
|
+
|
|
6743
|
+
<div class="telegram hide">
|
|
6744
|
+
|
|
6745
|
+
## Telegram Bot
|
|
6746
|
+
---
|
|
6747
|
+
|
|
6748
|
+
- Configure a Telegram service address accessible in mainland China
|
|
6749
|
+
- The maximum message length is \`4096 characters, content exceeding this limit will not be sent\`
|
|
6750
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
6751
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6752
|
+
|
|
6753
|
+
\`\`\`
|
|
6754
|
+
{{fireReason .}}INC [#{{.Num}}]({{.DetailUrl}}) {{toHtml .Title}}
|
|
6755
|
+
-----
|
|
6756
|
+
Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
6757
|
+
Severity: {{.IncidentSeverity}}
|
|
6758
|
+
Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
6759
|
+
Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
6760
|
+
Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
6761
|
+
Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}({{.Labels.resource}}){{end}}{{if .Description}}
|
|
6762
|
+
Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
6763
|
+
Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
6764
|
+
|
|
6765
|
+
<br>[Details]({{.DetailUrl}})|[Acknowledge]({{.DetailUrl}}?ack=1)
|
|
6766
|
+
\`\`\`
|
|
6767
|
+
</div>
|
|
6768
|
+
|
|
6769
|
+
<div class="slack hide">
|
|
6770
|
+
|
|
6771
|
+
## Slack Bot
|
|
6772
|
+
---
|
|
6773
|
+
- Messages can be \`approximately 15000 characters long, content exceeding this limit will be truncated\`
|
|
6774
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
6775
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6776
|
+
|
|
6777
|
+
\`\`\`
|
|
6778
|
+
{{fireReason .}}INC <{{.DetailUrl}}|#{{.Num}}> {{toHtml .Title}}
|
|
6779
|
+
-----
|
|
6780
|
+
Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}
|
|
6781
|
+
Severity: {{.IncidentSeverity}}
|
|
6782
|
+
Triggered at: {{date "2006-01-02 15:04:05" .StartTime}}
|
|
6783
|
+
Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}
|
|
6784
|
+
Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}
|
|
6785
|
+
Alert targets: {{toHtml (joinAlertLabels . "resource" ", ")}}{{end}}{{if .Description}}
|
|
6786
|
+
Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
|
|
6787
|
+
Responders: {{range .Responders}}@{{.PersonName}} {{end}}{{end}}
|
|
6788
|
+
-----
|
|
6789
|
+
<br><{{.DetailUrl}}|Details>|<{{.DetailUrl}}?ack=1|Acknowledge>
|
|
6790
|
+
\`\`\`
|
|
6328
6791
|
</div>
|
|
6329
6792
|
|
|
6330
6793
|
<div class="zoom hide">
|
|
6331
6794
|
|
|
6332
6795
|
## Zoom Bot
|
|
6333
6796
|
---
|
|
6334
|
-
- Messages
|
|
6335
|
-
- If text contains \`<br>\`,
|
|
6336
|
-
- Message format \`follows Zoom message format\`.
|
|
6337
|
-
- If custom content is
|
|
6797
|
+
- Messages can be \`approximately 4000 characters long, content exceeding this limit will be truncated\`
|
|
6798
|
+
- If the text contains \`<br>\`, when rendering, the system will \`first remove empty lines, then replace <br> with line breaks\`
|
|
6799
|
+
- 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/
|
|
6800
|
+
- If no custom content is set, the system default template will be used to display key information:
|
|
6338
6801
|
|
|
6339
|
-
\`\`\`
|
|
6802
|
+
\`\`\`json
|
|
6340
6803
|
{"head": {
|
|
6341
6804
|
"text": "{{fireReason .}}INC [#{{.Num}}] {{toHtml .Title}}",
|
|
6342
6805
|
"style": {
|
|
@@ -6348,7 +6811,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6348
6811
|
"body": [
|
|
6349
6812
|
{
|
|
6350
6813
|
"type": "message",
|
|
6351
|
-
"text": "Channel
|
|
6814
|
+
"text": "Channel: {{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}",
|
|
6352
6815
|
"style": {
|
|
6353
6816
|
"bold": false,
|
|
6354
6817
|
"italic": false
|
|
@@ -6356,7 +6819,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6356
6819
|
},
|
|
6357
6820
|
{
|
|
6358
6821
|
"type": "message",
|
|
6359
|
-
"text": "Severity
|
|
6822
|
+
"text": "Severity: {{.IncidentSeverity}}",
|
|
6360
6823
|
"style": {
|
|
6361
6824
|
"bold": false,
|
|
6362
6825
|
"italic": false,
|
|
@@ -6365,7 +6828,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6365
6828
|
},
|
|
6366
6829
|
{
|
|
6367
6830
|
"type": "message",
|
|
6368
|
-
"text": "Duration
|
|
6831
|
+
"text": "Duration: {{ago .StartTime}}{{if gt .AlertCnt 1}}",
|
|
6369
6832
|
"style": {
|
|
6370
6833
|
"bold": false,
|
|
6371
6834
|
"italic": false
|
|
@@ -6373,7 +6836,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6373
6836
|
},
|
|
6374
6837
|
{
|
|
6375
6838
|
"type": "message",
|
|
6376
|
-
"text": "Grouped alerts
|
|
6839
|
+
"text": "Grouped alerts: {{.AlertCnt}}{{end}}{{if .Labels.resource}}",
|
|
6377
6840
|
"style": {
|
|
6378
6841
|
"bold": false,
|
|
6379
6842
|
"italic": false
|
|
@@ -6381,7 +6844,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6381
6844
|
},
|
|
6382
6845
|
{
|
|
6383
6846
|
"type": "message",
|
|
6384
|
-
"text": "
|
|
6847
|
+
"text": "Alert targets: {{.Labels.resource}}{{end}}{{if .Description}}",
|
|
6385
6848
|
"style": {
|
|
6386
6849
|
"bold": false,
|
|
6387
6850
|
"italic": false
|
|
@@ -6389,7 +6852,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6389
6852
|
},
|
|
6390
6853
|
{
|
|
6391
6854
|
"type": "message",
|
|
6392
|
-
"text": "Description
|
|
6855
|
+
"text": "Description: {{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}",
|
|
6393
6856
|
"style": {
|
|
6394
6857
|
"bold": false,
|
|
6395
6858
|
"italic": false
|
|
@@ -6397,7 +6860,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6397
6860
|
},
|
|
6398
6861
|
{
|
|
6399
6862
|
"type": "message",
|
|
6400
|
-
"text": "Responders
|
|
6863
|
+
"text": "Responders: {{range .Responders}}@{{.PersonName}}{{end}}{{end}}",
|
|
6401
6864
|
"style": {
|
|
6402
6865
|
"bold": false,
|
|
6403
6866
|
"italic": false
|
|
@@ -6405,12 +6868,12 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6405
6868
|
},
|
|
6406
6869
|
{
|
|
6407
6870
|
"type": "message",
|
|
6408
|
-
"text": "View
|
|
6871
|
+
"text": "View Details",
|
|
6409
6872
|
"link": "{{.DetailUrl}}{{if .IsFlapping}}"
|
|
6410
6873
|
},
|
|
6411
6874
|
{
|
|
6412
6875
|
"type": "message",
|
|
6413
|
-
"text": "Note:
|
|
6876
|
+
"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}}",
|
|
6414
6877
|
"style": {
|
|
6415
6878
|
"bold": true,
|
|
6416
6879
|
"italic": false
|
|
@@ -6418,7 +6881,7 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6418
6881
|
},
|
|
6419
6882
|
{
|
|
6420
6883
|
"type": "message",
|
|
6421
|
-
"text": "Note:
|
|
6884
|
+
"text": "Note: The current incident has grouped {{.AlertCnt}} alerts, triggering an alert storm. Please handle with urgency!{{end}}",
|
|
6422
6885
|
"style": {
|
|
6423
6886
|
"bold": true,
|
|
6424
6887
|
"italic": false
|
|
@@ -6429,14 +6892,13 @@ If you want to display only key label information, you can refer to the code sni
|
|
|
6429
6892
|
\`\`\`
|
|
6430
6893
|
</div>
|
|
6431
6894
|
|
|
6432
|
-
|
|
6433
6895
|
<div class="sms hide">
|
|
6434
6896
|
|
|
6435
6897
|
## SMS
|
|
6436
6898
|
---
|
|
6437
|
-
If custom content is
|
|
6899
|
+
If no custom content is set, the system default template will be used for notifications:
|
|
6438
6900
|
|
|
6439
|
-
\`\`\`
|
|
6901
|
+
\`\`\`go
|
|
6440
6902
|
You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Severity: {{.IncidentSeverity}}{{if gt .AlertCnt 1}}, Grouped {{.AlertCnt}} alerts{{end}}
|
|
6441
6903
|
\`\`\`
|
|
6442
6904
|
</div>
|
|
@@ -6445,97 +6907,98 @@ You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Sever
|
|
|
6445
6907
|
|
|
6446
6908
|
## Email
|
|
6447
6909
|
---
|
|
6448
|
-
If custom content is
|
|
6910
|
+
If no custom content is set, the system default template will be used for notifications:
|
|
6449
6911
|
|
|
6450
|
-
\`\`\`
|
|
6912
|
+
\`\`\`html
|
|
6451
6913
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
6452
6914
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
6453
6915
|
<title>{{.Title}}</title>
|
|
6454
6916
|
<html lang="en">
|
|
6455
6917
|
|
|
6456
6918
|
<head data-id="__react-email-head">
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
|
|
6467
|
-
|
|
6468
|
-
|
|
6919
|
+
<style>
|
|
6920
|
+
.bg-Critical { background-color: #C80000; }
|
|
6921
|
+
.bg-Warning { background-color: #FA7D00; }
|
|
6922
|
+
.bg-Info { background-color: #FABE00; }
|
|
6923
|
+
.bg-Ok { background-color: rgb(132 204 22); }
|
|
6924
|
+
.text-Critical { color: #C80000; }
|
|
6925
|
+
.text-Warning { color: #FA7D00; }
|
|
6926
|
+
.text-Info { color: #FABE00; }
|
|
6927
|
+
.text-Ok { color: rgb(132 204 22); }
|
|
6928
|
+
.text-title {font-weight:500;width:6rem;flex-shrink:0}
|
|
6929
|
+
.text-content {color:rgb(55,65,81)}
|
|
6930
|
+
</style>
|
|
6469
6931
|
</head>
|
|
6470
6932
|
|
|
6471
6933
|
<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">
|
|
6472
|
-
|
|
6473
|
-
|
|
6474
|
-
|
|
6475
|
-
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
|
|
6495
|
-
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
|
|
6520
|
-
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
|
|
6524
|
-
|
|
6525
|
-
|
|
6526
|
-
|
|
6527
|
-
|
|
6528
|
-
|
|
6529
|
-
|
|
6934
|
+
<div style="width:100%;height:0.375rem;margin-bottom:2rem" class="bg-{{.IncidentSeverity}}"></div>
|
|
6935
|
+
<div style="display:flex;align-items:center;margin-bottom:1.5rem">
|
|
6936
|
+
<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>
|
|
6937
|
+
</div>
|
|
6938
|
+
<div style="background-color:rgb(243,244,246);padding:2rem;margin-top:1rem;border-radius:0.5rem">
|
|
6939
|
+
<div style="display:flex;flex-direction:column;gap:0.75rem">
|
|
6940
|
+
<div style="display:flex">
|
|
6941
|
+
<div class="text-title">Title</div>
|
|
6942
|
+
<div class="text-content">{{.Title}}</div>
|
|
6943
|
+
</div>
|
|
6944
|
+
<div style="display:flex">
|
|
6945
|
+
<div class="text-title">Severity</div>
|
|
6946
|
+
<div class="text-{{.IncidentSeverity}}">{{.IncidentSeverity}}</div>
|
|
6947
|
+
</div>
|
|
6948
|
+
<div style="display:flex">
|
|
6949
|
+
<div class="text-title">Channel</div>
|
|
6950
|
+
<div class="text-content">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</div>
|
|
6951
|
+
</div>
|
|
6952
|
+
<div style="display:flex">
|
|
6953
|
+
<div class="text-title">Triggered at</div>
|
|
6954
|
+
<div class="text-content">{{date "2006-01-02 15:04:05" .StartTime}}</div>
|
|
6955
|
+
</div>
|
|
6956
|
+
{{if .CreatorID}}
|
|
6957
|
+
<div style="display:flex">
|
|
6958
|
+
<div class="text-title">Creator</div>
|
|
6959
|
+
<div class="text-content">{{.Creator.PersonName}}</div>
|
|
6960
|
+
</div>
|
|
6961
|
+
{{end}}
|
|
6962
|
+
{{if gt (len .Responders) 0}}
|
|
6963
|
+
<div style="display:flex">
|
|
6964
|
+
<div class="text-title">Responders</div>
|
|
6965
|
+
<div class="text-content">{{range .Responders}}@{{.PersonName}} {{end}}</div>
|
|
6966
|
+
</div>
|
|
6967
|
+
{{end}}
|
|
6968
|
+
<div style="display:flex">
|
|
6969
|
+
<div class="text-title">Progress</div>
|
|
6970
|
+
<div class="text-content">{{.Progress}}</div>
|
|
6971
|
+
</div>
|
|
6972
|
+
<div style="display:flex">
|
|
6973
|
+
<div class="text-title">Description</div>
|
|
6974
|
+
<div style="color:rgb(55,65,81);margin-top:0.125rem">
|
|
6975
|
+
<div data-id="react-email-markdown">{{toHtml .Description}}</div>
|
|
6976
|
+
</div>
|
|
6977
|
+
</div>
|
|
6978
|
+
{{if .Labels.resource}}
|
|
6979
|
+
<div style="display:flex;margin-bottom:0.5rem;">
|
|
6980
|
+
<div style="color:#000;font-weight:500;width:6rem;margin-right:1rem;">Alert targets</div>
|
|
6981
|
+
<div style="color:rgb(55,65,81);margin-top:0.125rem">
|
|
6982
|
+
<div data-id="react-email-markdown">{{toHtml (joinAlertLabels . "resource" ", ")}}</div>
|
|
6983
|
+
</div>
|
|
6984
|
+
</div>
|
|
6985
|
+
{{end}}
|
|
6986
|
+
</div>
|
|
6987
|
+
<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>
|
|
6988
|
+
</div>
|
|
6989
|
+
<div style="display:flex;justify-content:flex-end;align-items:flex-end;margin-top:2rem">
|
|
6990
|
+
<div style="font-size:0.875rem;line-height:1.25rem;font-weight:500">ALL RIGHTS RESERVED © Beijing Flashcat Cloud Technology Co.,Ltd.</div>
|
|
6991
|
+
</div>
|
|
6530
6992
|
</body>
|
|
6531
6993
|
|
|
6532
6994
|
</html>
|
|
6533
6995
|
\`\`\`
|
|
6534
6996
|
|
|
6535
|
-
As shown below:
|
|
6536
|
-
|
|
6997
|
+
As shown in the image below:
|
|
6998
|
+
|
|
6999
|
+
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/email_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6537
7000
|
|
|
6538
|
-
|
|
7001
|
+
</div>`,HuaweiyunAPM:`---
|
|
6539
7002
|
title: "Huawei Cloud APM Alerts"
|
|
6540
7003
|
description: "Sync Huawei Cloud APM alerts to Flashduty through webhook to achieve automatic alert noise reduction"
|
|
6541
7004
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -6574,8 +7037,8 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
6574
7037
|
1. Go to Flashduty console, select **Integration Center=>Alerts** to enter the integration selection page
|
|
6575
7038
|
2. Select **Huawei Cloud APM** integration:
|
|
6576
7039
|
- **Integration Name**: Define a name for the current integration
|
|
6577
|
-
3.
|
|
6578
|
-
4. Click **
|
|
7040
|
+
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)
|
|
7041
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
6579
7042
|
5. Done.
|
|
6580
7043
|
|
|
6581
7044
|
</details>
|
|
@@ -6644,7 +7107,7 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
6644
7107
|
`,JiraSync:`---
|
|
6645
7108
|
title: "Jira Sync"
|
|
6646
7109
|
description: "Sync incidents with Jira issues through Jira Sync Webhook."
|
|
6647
|
-
date: "
|
|
7110
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
6648
7111
|
url: "https://docs.flashcat.cloud/en/flashduty/jira-sync"
|
|
6649
7112
|
---
|
|
6650
7113
|
|
|
@@ -6723,4 +7186,377 @@ In the Integration Center, select **Webhook**, choose **Jira Sync** integration,
|
|
|
6723
7186
|
|
|
6724
7187
|
- 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.
|
|
6725
7188
|
- 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.
|
|
7189
|
+
`,ZStack:`---
|
|
7190
|
+
title: "zstack integration"
|
|
7191
|
+
description: "Push ZStack alerts to Flashduty via webhook, to achieve automatic alert noise reduction."
|
|
7192
|
+
date: "2024-07-05T10:00:00+08:00"
|
|
7193
|
+
url: "https://docs.flashcat.cloud/en/flashduty/zstack-integration-guide"
|
|
7194
|
+
---
|
|
7195
|
+
|
|
7196
|
+
Push ZStack alerts to Flashduty via webhook, to achieve automatic alert noise reduction.
|
|
7197
|
+
|
|
7198
|
+
<div class="hide">
|
|
7199
|
+
|
|
7200
|
+
## In Flashduty
|
|
7201
|
+
---
|
|
7202
|
+
You can obtain an integration push URL through either of these two methods:
|
|
7203
|
+
|
|
7204
|
+
### Using Dedicated Integration
|
|
7205
|
+
|
|
7206
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
7207
|
+
|
|
7208
|
+
<details>
|
|
7209
|
+
<summary>Expand</summary>
|
|
7210
|
+
|
|
7211
|
+
1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
|
|
7212
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
7213
|
+
3. Choose **ZStack** integration and click **Save** to generate a card
|
|
7214
|
+
4. Click the generated card to view the **push URL**, copy it for later use, and you're done
|
|
7215
|
+
|
|
7216
|
+
</details>
|
|
7217
|
+
|
|
7218
|
+
### Using Shared Integration
|
|
7219
|
+
|
|
7220
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
7221
|
+
|
|
7222
|
+
<details>
|
|
7223
|
+
<summary>Expand</summary>
|
|
7224
|
+
|
|
7225
|
+
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
7226
|
+
2. Select **ZStack** integration:
|
|
7227
|
+
- **Integration Name**: Define a name for this integration
|
|
7228
|
+
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)
|
|
7229
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
7230
|
+
5. Done
|
|
7231
|
+
|
|
7232
|
+
</details>
|
|
7233
|
+
</div>
|
|
7234
|
+
|
|
7235
|
+
|
|
7236
|
+
## In ZStack
|
|
7237
|
+
---
|
|
7238
|
+
|
|
7239
|
+
<div class="md-block">
|
|
7240
|
+
|
|
7241
|
+
## 一、Create Notification Object
|
|
7242
|
+
|
|
7243
|
+
### Step 1: Create Notification Object
|
|
7244
|
+
1. Login to your \`ZStack\` console, find \`Cloud Monitoring\` in the \`Platform O&M\` menu
|
|
7245
|
+
2. Click \`Endpoint\`, click \`Create Endpoint\` or edit the existing endpoint
|
|
7246
|
+
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
|
|
7247
|
+
4. Click \`Send Test Message\`, if the message is sent successfully, it means the configuration is successful
|
|
7248
|
+
5. Click \`OK\` to complete the configuration
|
|
7249
|
+
|
|
7250
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/zstack-1.png" />
|
|
7251
|
+
|
|
7252
|
+
### Step 2: Use Notification Object in Alert Policy
|
|
7253
|
+
|
|
7254
|
+
1. Login to your \`ZStack\` console, find \`Cloud Monitoring\` in the \`Platform O&M\` menu
|
|
7255
|
+
2. Click \`Alarm\`, click \`Create Resource Alarm\` or \`Create Event Alarm\`, or edit the existing alarm object
|
|
7256
|
+
3. In the edit page, select the created \`Flashduty\` Endpoint (\`Resource Alarm\` is recommended to open the recovery notification)
|
|
7257
|
+
4. Configure other settings as needed, and click \`OK\` to complete the configuration
|
|
7258
|
+
|
|
7259
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/zstack-2.png" />
|
|
7260
|
+
|
|
7261
|
+
|
|
7262
|
+
|
|
7263
|
+
</dev>
|
|
7264
|
+
|
|
7265
|
+
## 二、Status Mapping
|
|
7266
|
+
|
|
7267
|
+
<div class="md-block">
|
|
7268
|
+
|
|
7269
|
+
| ZStack | Flashduty | Status |
|
|
7270
|
+
| ---------- | -------- | ---- |
|
|
7271
|
+
| Emergent | Critical | Critical |
|
|
7272
|
+
| Major | Warning | Warning |
|
|
7273
|
+
| Info | Info | Info |
|
|
7274
|
+
|
|
7275
|
+
</div>
|
|
7276
|
+
|
|
7277
|
+
`,Keep:`---
|
|
7278
|
+
title: "Keep Alert Integration Guide"
|
|
7279
|
+
description: "Push alert events to Flashduty through Keep's Provider to achieve automated alert noise reduction."
|
|
7280
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
7281
|
+
url: "https://docs.flashcat.cloud/en/flashduty/keep-alert-integration-guide"
|
|
7282
|
+
---
|
|
7283
|
+
|
|
7284
|
+
Push alert events to Flashduty through Keep's Flashduty Provider to achieve automated alert noise reduction.
|
|
7285
|
+
|
|
7286
|
+
<div class="hide">
|
|
7287
|
+
|
|
7288
|
+
## In Flashduty
|
|
7289
|
+
|
|
7290
|
+
You can obtain an integration key through either of these 2 methods:
|
|
7291
|
+
|
|
7292
|
+
#### Using Dedicated Integration
|
|
7293
|
+
|
|
7294
|
+
Choose this method when you don't need to route alert events to different channels - it's simpler.
|
|
7295
|
+
|
|
7296
|
+
<details>
|
|
7297
|
+
<summary>Expand</summary>
|
|
7298
|
+
|
|
7299
|
+
1. Enter the Flashduty console, select **Channel**, and go to a specific channel's details page
|
|
7300
|
+
2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
|
|
7301
|
+
3. Choose **Keep** integration, click **Save** to generate a card
|
|
7302
|
+
4. Click the generated card to view the **Integration Key**, copy it for later use, and you're done
|
|
7303
|
+
|
|
7304
|
+
</details>
|
|
7305
|
+
|
|
7306
|
+
#### Using Shared Integration
|
|
7307
|
+
|
|
7308
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
7309
|
+
|
|
7310
|
+
<details>
|
|
7311
|
+
<summary>Expand</summary>
|
|
7312
|
+
|
|
7313
|
+
1. Enter the Flashduty console, select **Integration Center=>Alert Events** to access the integration selection page
|
|
7314
|
+
2. Select **Keep** integration:
|
|
7315
|
+
- **Integration Name**: Define a name for this integration
|
|
7316
|
+
3. Configure default routing and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
7317
|
+
4. Click **Save** and copy the newly generated **Integration Key** for later use
|
|
7318
|
+
5. Done
|
|
7319
|
+
|
|
7320
|
+
</details>
|
|
7321
|
+
</div>
|
|
7322
|
+
|
|
7323
|
+
|
|
7324
|
+
## In Keep
|
|
7325
|
+
---
|
|
7326
|
+
|
|
7327
|
+
### Field Definitions
|
|
7328
|
+
|
|
7329
|
+
Field|Required|Type|Definition
|
|
7330
|
+
:-:|:-:|:-:|:---
|
|
7331
|
+
| title | Yes | string | Alert title, maximum \`512\` characters, will be truncated if exceeded
|
|
7332
|
+
| 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
|
|
7333
|
+
| 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
|
|
7334
|
+
| description | No | string | Alert description, maximum \`2048\` characters, will be truncated if exceeded
|
|
7335
|
+
| 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"
|
|
7336
|
+
|
|
7337
|
+
|
|
7338
|
+
|
|
7339
|
+
### Configuration Method
|
|
7340
|
+
|
|
7341
|
+
#### Step 1: Configure Flashduty Provider
|
|
7342
|
+
1. Login to Keep console, enter \`Providers\` list, select and click \`Flashduty\`.
|
|
7343
|
+
2. Fill in the \`Flashduty Integration Key\` field with the \`Integration Key\` of Flashduty.
|
|
7344
|
+
3. Click \`Save\` to save the configuration.
|
|
7345
|
+
|
|
7346
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/keep-1.png" />
|
|
7347
|
+
|
|
7348
|
+
#### Step 2: Configure WorkFlows
|
|
7349
|
+
1. Login to Keep console, enter \`WorkFlows\` , create or edit an existing Workflow.
|
|
7350
|
+
2. Configure the \`Trigger\` section as needed.
|
|
7351
|
+
3. In the \`Steps\` section, select \`flashduty-action\` and select the \`Flashduty Provider\` configured in the previous step.
|
|
7352
|
+
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)).
|
|
7353
|
+
5. Click \`Save\` to save the configuration.
|
|
7354
|
+
|
|
7355
|
+
|
|
7356
|
+
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/keep-2.png" />
|
|
7357
|
+
|
|
7358
|
+
`,ElastAlert2:`---
|
|
7359
|
+
title: "ElastAlert2 Alert Integration Guide"
|
|
7360
|
+
description: "Push alert events to Flashduty through ElastAlert2's Provider to achieve automated alert noise reduction."
|
|
7361
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
7362
|
+
url: "https://docs.flashcat.cloud/en/flashduty/elastalert2-alert-integration-guide"
|
|
7363
|
+
---
|
|
7364
|
+
|
|
7365
|
+
Push ElastAlert2 alerts to Flashduty via webhook, to achieve automatic alert noise reduction.
|
|
7366
|
+
|
|
7367
|
+
<div class="hide">
|
|
7368
|
+
|
|
7369
|
+
## In Flashduty
|
|
7370
|
+
---
|
|
7371
|
+
You can obtain an integration push URL through either of these two methods:
|
|
7372
|
+
|
|
7373
|
+
### Using Dedicated Integration
|
|
7374
|
+
|
|
7375
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
7376
|
+
|
|
7377
|
+
<details>
|
|
7378
|
+
<summary>Expand</summary>
|
|
7379
|
+
|
|
7380
|
+
1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
|
|
7381
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
7382
|
+
3. Choose **ElastAlert 2** integration and click **Save** to generate a card
|
|
7383
|
+
4. Click the generated card to view the **Integration Key**, copy it for later use, and you're done
|
|
7384
|
+
|
|
7385
|
+
</details>
|
|
7386
|
+
|
|
7387
|
+
### Using Shared Integration
|
|
7388
|
+
|
|
7389
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
7390
|
+
|
|
7391
|
+
<details>
|
|
7392
|
+
<summary>Expand</summary>
|
|
7393
|
+
|
|
7394
|
+
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
7395
|
+
2. Select **ElastAlert 2** integration:
|
|
7396
|
+
- **Integration Name**: Define a name for this integration
|
|
7397
|
+
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)
|
|
7398
|
+
4. Click **Save** and copy the newly generated **Integration Key** for later use
|
|
7399
|
+
5. Done
|
|
7400
|
+
|
|
7401
|
+
</details>
|
|
7402
|
+
</div>
|
|
7403
|
+
|
|
7404
|
+
|
|
7405
|
+
## In ElastAlert 2
|
|
7406
|
+
---
|
|
7407
|
+
|
|
7408
|
+
### Configure ElastAlert 2 Alerts
|
|
7409
|
+
Follow the [ElastAlert FlashDuty](https://elastalert2.readthedocs.io/en/latest/alerts.html#flashduty) push configuration document
|
|
7410
|
+
|
|
7411
|
+
1. Create or edit the alert rule file, for example \`rules/elastalert2_alert.yaml\`.
|
|
7412
|
+
2. Fill in the \`flashduty\` alert type in the \`alert\` field.
|
|
7413
|
+
3. Fill in the integrated \`integration key\` in the \`flashduty_integration_key\` field.
|
|
7414
|
+
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.
|
|
7415
|
+
|
|
7416
|
+
Field|Required|Type|Definition
|
|
7417
|
+
:-:|:-:|:-:|:---
|
|
7418
|
+
| title | 是 | string | The alert title, it cannot exceed \`512\` characters.
|
|
7419
|
+
| 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.
|
|
7420
|
+
| 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.
|
|
7421
|
+
| description | 否 | string | The alert description
|
|
7422
|
+
| check | 否 | string | The alert check item
|
|
7423
|
+
| resource | 否 | string | The alert resource
|
|
7424
|
+
| service | 否 | string | The alert service name
|
|
7425
|
+
| metric | 否 | string | The alert metric name
|
|
7426
|
+
| group | 否 | string | The alert group
|
|
7427
|
+
| cluster | 否 | string | The alert cluster
|
|
7428
|
+
| app | 否 | string | The alert application
|
|
7429
|
+
| env | 否 | string | The alert environment
|
|
7430
|
+
|
|
7431
|
+
|
|
7432
|
+
\`\`\`yaml
|
|
7433
|
+
|
|
7434
|
+
name: "elastalert2 alert"
|
|
7435
|
+
type: "frequency"
|
|
7436
|
+
index: "pgy_audit*"
|
|
7437
|
+
is_enabled: true
|
|
7438
|
+
num_events: 1
|
|
7439
|
+
realert:
|
|
7440
|
+
minutes: 1
|
|
7441
|
+
terms_size: 50
|
|
7442
|
+
scan_entire_timeframe: true
|
|
7443
|
+
timeframe:
|
|
7444
|
+
minutes: 60
|
|
7445
|
+
timestamp_field: "created_at"
|
|
7446
|
+
timestamp_type: "unix_ms"
|
|
7447
|
+
use_strftime_index: false
|
|
7448
|
+
alert_subject: "Test {0} 123 aa☃ {1}"
|
|
7449
|
+
alert_subject_args:
|
|
7450
|
+
- "account_id"
|
|
7451
|
+
- "operation"
|
|
7452
|
+
alert_text: "Test {0} 123 bb☃ {1}"
|
|
7453
|
+
alert_text_args:
|
|
7454
|
+
- "request_id"
|
|
7455
|
+
- "operation_name"
|
|
7456
|
+
filter:
|
|
7457
|
+
- query:
|
|
7458
|
+
query_string:
|
|
7459
|
+
query: "created_at:*"
|
|
7460
|
+
|
|
7461
|
+
# ------- FlashDuty ----------------
|
|
7462
|
+
alert: flashduty
|
|
7463
|
+
flashduty_integration_key: "xxxx"
|
|
7464
|
+
flashduty_title: "elastalert2 alert"
|
|
7465
|
+
flashduty_event_status: "Warning"
|
|
7466
|
+
flashduty_alert_key: "abc"
|
|
7467
|
+
flashduty_description: "log error"
|
|
7468
|
+
flashduty_check: "log error"
|
|
7469
|
+
flashduty_resource: "10.1.1.1"
|
|
7470
|
+
flashduty_service: "service1"
|
|
7471
|
+
flashduty_metric: "error"
|
|
7472
|
+
flashduty_group: "group1"
|
|
7473
|
+
flashduty_cluster: "bj"
|
|
7474
|
+
flashduty_app: "app1"
|
|
7475
|
+
flashduty_env: "dev"
|
|
7476
|
+
# ------- FlashDuty ----------------
|
|
7477
|
+
\`\`\`
|
|
7478
|
+
|
|
7479
|
+
5. Restart ElastAlert and wait for the alert to trigger.`,DingtalkAlert:`---
|
|
7480
|
+
title: "Dingtalk Alert Integration"
|
|
7481
|
+
description: "Generate a unique Dingtalk robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Dingtalk"
|
|
7482
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
7483
|
+
url: "https://docs.flashcat.cloud/en/flashduty/dingtalk-alert-integration-guide"
|
|
7484
|
+
---
|
|
7485
|
+
|
|
7486
|
+
Generate a unique Dingtalk robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Dingtalk.
|
|
7487
|
+
|
|
7488
|
+
<div class="hide">
|
|
7489
|
+
|
|
7490
|
+
## Operation Steps
|
|
7491
|
+
---
|
|
7492
|
+
|
|
7493
|
+
### Create Dingtalk Alert Integration
|
|
7494
|
+
|
|
7495
|
+
You can obtain a Dingtalk alert integration address through either of these two methods:
|
|
7496
|
+
|
|
7497
|
+
#### Using Dedicated Integration
|
|
7498
|
+
|
|
7499
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
7500
|
+
|
|
7501
|
+
<details>
|
|
7502
|
+
<summary>Expand</summary>
|
|
7503
|
+
|
|
7504
|
+
1. Go to the Flashduty console, select **Channel**, and enter a specific channel's details page
|
|
7505
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
7506
|
+
3. Choose **Dingtalk Alert** integration and click **Save** to generate a card
|
|
7507
|
+
4. Click the generated card to view the **Dingtalk Alert Integration URL**, copy it for later use, and you're done
|
|
7508
|
+
|
|
7509
|
+
</details>
|
|
7510
|
+
|
|
7511
|
+
#### Using Shared Integration
|
|
7512
|
+
|
|
7513
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
7514
|
+
|
|
7515
|
+
<details>
|
|
7516
|
+
<summary>Expand</summary>
|
|
7517
|
+
|
|
7518
|
+
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
7519
|
+
2. Select **Dingtalk Alert** integration:
|
|
7520
|
+
- **Integration Name**: Define a name for the current integration
|
|
7521
|
+
- **Message Type**: Select Dingtalk alert message type, currently only Text and Markdown are supported
|
|
7522
|
+
- **Push Mode**: Choose when to trigger or recover alerts for Dingtalk notifications
|
|
7523
|
+
3. Copy the **Dingtalk Alert Integration URL** for later use
|
|
7524
|
+
4. Configure the default route and select the corresponding channel (after integration creation, you can go to \`Routes\` to configure more routing rules)
|
|
7525
|
+
5. Done
|
|
7526
|
+
|
|
7527
|
+
</details>
|
|
7528
|
+
</div>
|
|
7529
|
+
|
|
7530
|
+
### Customize Dingtalk Alert Integration
|
|
7531
|
+
|
|
7532
|
+
#### Dingtalk Alert Integration URL
|
|
7533
|
+
|
|
7534
|
+
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.
|
|
7535
|
+
|
|
7536
|
+
#### Push Mode
|
|
7537
|
+
|
|
7538
|
+
By default, the system always creates new alerts for each message, but you can switch to these modes:
|
|
7539
|
+
|
|
7540
|
+
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.
|
|
7541
|
+
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.
|
|
7542
|
+
|
|
7543
|
+
- You need to fill in at least one **trigger** rule
|
|
7544
|
+
- 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
|
|
7545
|
+
- You can choose whether to discard messages when none of the rules match
|
|
7546
|
+
|
|
7547
|
+
Configuration example:
|
|
7548
|
+
|
|
7549
|
+
- Receive all messages, close the alert when the message content contains **RESOLVED**, otherwise trigger a new alert
|
|
7550
|
+
- Extract Alert Key from message title using the rule **/(.*)/**.
|
|
7551
|
+
|
|
7552
|
+
|
|
7553
|
+
### Notes
|
|
7554
|
+
- Dingtalk alert integration URL only supports Text and Markdown message types; other message types cannot be received
|
|
7555
|
+
- When Dingtalk message type is Text, Flashduty will generate a default alert title "Dingtalk Alert"
|
|
7556
|
+
|
|
7557
|
+
## Severity Mapping
|
|
7558
|
+
---
|
|
7559
|
+
|
|
7560
|
+
Currently, all alerts pushed to Flashduty through email integration are set to Warning severity.
|
|
7561
|
+
|
|
6726
7562
|
`};n.FlashDocsEn=u})(window);
|