flashduty-knowledge-base 1.3.5 → 1.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/iife/en.js CHANGED
@@ -77,11 +77,20 @@ Field|Required|Type|Description
77
77
 
78
78
  Field|Required|Type|Description
79
79
  :-:|:-:|:-:|:---
80
- | title_rule | Yes | string | Alert title, no more than \`512\` characters, will be truncated if exceeded.<br><br>Supports dynamic title generation based on alert content, see [Customizing Incidents](https://docs.flashcat.cloud/en/flashduty/customize-incident-attrs) for generation rules.
80
+ | title_rule | Yes | string | Alert title, no more than \`512\` characters, will be truncated if exceeded.<br><br>Supports dynamic title generation based on alert content, see [Customizing Incidents](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines) for generation rules.
81
81
  | event_status | Yes | string | Alert status.<br><br>Enumerated values (case-sensitive): *Critical*, *Warning*, *Info*, *Ok*.<br><br>When specified as Ok, it means automatic recovery of the alert.
82
82
  | alert_key | No | string | Alert identifier, used to update or automatically recover existing alerts.<br><br>You can customize this value, but it cannot exceed \`255\` characters. You can also rely on system auto-generation, this value will be returned in the response.<br><br>If you're reporting a recovery event, this value must exist.
83
83
  | description | No | string | Alert description, no more than \`2048\` characters, will be truncated if exceeded.
84
84
  | labels | No | map | Alert label collection, key is the label name, value is the label value:<br><br>1. Both key and value of labels are string type, case-sensitive.<br>2. Label key should not exceed \`128\` characters, following Prometheus label naming conventions. Value should not exceed \`2048\` characters, will be truncated if exceeded.<br>3. Maximum of \`50\` labels. See \`Label Content Reference\` in [Best Practices](#best-practices).<br><br>Example: "resource": "171.26.23.22", "check": "api latency > 500ms"
85
+ | images | No | [][image](#image) | Array of images, used for image display in frontend or Feishu/DingTalk application notifications.The system merged/overwritten based on alt, for the same alt (including empty strings), only one is retained
86
+
87
+ #### image Structure <span id="image"></span>
88
+
89
+ Field|Required|Type|Description
90
+ :-:|:-:|:-:|:---
91
+ | alt | No | string | Image alternative text, limit 128 characters, truncated if exceeded.
92
+ | src | Yes | string | Image source, value: http/https URL or image_key returned by [Image Upload API](https://developer.flashcat.cloud/api-344943718). Limit 256 characters, discarded if exceeded
93
+ | href | No | string | Hyperlink reference path, limit 256 characters, truncated if exceeded
85
94
 
86
95
  </div>
87
96
 
@@ -209,7 +218,7 @@ Failed Response:
209
218
  3. The new event might be discarded due to matching exclusion, discard, suppression, or silence rules.
210
219
  4. When a new event triggers a new alert, the system enters the second layer of noise reduction check, determining if the new alert can be merged into an active incident. If possible, it will only merge into the existing incident without generating a new one.
211
220
 
212
- For more information, please refer to [Alert Noise Reduction](https://docs.flashcat.cloud/en/flashduty/what-is-noise-reduction).
221
+ For more information, please refer to [Alert Noise Reduction](https://docs.flashcat.cloud/en/on-call/channel/noise-reduction).
213
222
  </details> `,a=`---
214
223
  title: "Email Integration"
215
224
  description: "Generate a unique email address in Flashduty to synchronize alert triggers and recoveries through email"
@@ -309,8 +318,9 @@ attachment_stripped = true
309
318
  ## Severity Mapping
310
319
  ---
311
320
 
312
- Currently, all alerts pushed to Flashduty through the email integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
313
- `,i=`---
321
+ Currently, all alerts pushed to Flashduty through the email integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).
322
+
323
+ `,o=`---
314
324
  title: "Nightingale/Flashcat Integration"
315
325
  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"
316
326
  date: "2025-05-19T10:00:00+08:00"
@@ -387,7 +397,7 @@ In the new version, although you can configure the collaboration space directly
387
397
  #### Step 1: Add Notification Media
388
398
 
389
399
  1. Log in to your n9e console, select Alerting > Media types and click **Add**
390
- 2. Fill in the media name and identifier, select **FlashDuty** type, and enter the integration push URL in the \`URL\` section
400
+ 2. Fill in the media name and identifier, select **Flashduty** type, and enter the integration push URL in the \`URL\` section
391
401
  3. Click **Save** and complete
392
402
 
393
403
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-1.png" />
@@ -396,7 +406,7 @@ In the new version, although you can configure the collaboration space directly
396
406
 
397
407
  1. Log in to your n9e console, select Alerting > Rules and click **Add** or edit the existing alert rules
398
408
  2. Configure the basic information as needed
399
- 3. Select the \`FlashDuty\` notification media added in the previous step
409
+ 3. Select the \`Flashduty\` notification media added in the previous step
400
410
  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
401
411
  5. Click **Save** and complete
402
412
 
@@ -405,7 +415,7 @@ In the new version, although you can configure the collaboration space directly
405
415
  #### Step 3: Select Notification Rules in Alert Rules
406
416
 
407
417
  1. Log in to your n9e console, select Alerting > Alert Rules and click **Add** or edit the existing alert rules
408
- 2. Select the \`FlashDuty\` notification rule added in the previous step, and select other options as needed
418
+ 2. Select the \`Flashduty\` notification rule added in the previous step, and select other options as needed
409
419
  3. Click **Save** and complete
410
420
 
411
421
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-3.png" />
@@ -506,7 +516,7 @@ Nightingale/Flashcat to Flashduty alert severity mapping:
506
516
 
507
517
  </details>
508
518
 
509
- `,o=`---
519
+ `,i=`---
510
520
  title: "Prometheus Integration Guide"
511
521
  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."
512
522
  date: "2025-05-19T10:00:00+08:00"
@@ -890,7 +900,7 @@ The media type must be associated with a user to send events. The user must have
890
900
  1. Log in to the Zabbix console, select \`Users > Users\`, select Admin user, select media, select Add to enter the editing window:
891
901
 
892
902
  - Type: Select the Flashduty media type created above
893
- - Send To: Fill in FlashDuty
903
+ - Send To: Fill in Flashduty
894
904
  - Keep other configurations unchanged using default settings
895
905
 
896
906
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/zabbix-3.png" />
@@ -904,7 +914,7 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
904
914
 
905
915
  1. Click \`Create action\` to enter the action editing page
906
916
 
907
- - Name: Fill in "Send To FlashDuty"
917
+ - Name: Fill in "Send To Flashduty"
908
918
 
909
919
  2. Select \`Operations\`, add notification sending configurations for three scenarios respectively:
910
920
 
@@ -978,7 +988,7 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
978
988
 
979
989
  1. Click \`Create action\` to enter the action editing page
980
990
 
981
- - Name: Fill in "Send To FlashDuty"
991
+ - Name: Fill in "Send To Flashduty"
982
992
 
983
993
  2. Select \`Operations\`, add notification sending configurations for three scenarios respectively:
984
994
 
@@ -1015,7 +1025,7 @@ Log in to the Zabbix console, select \`Monitoring > Problems\` to view the lates
1015
1025
 
1016
1026
  - \`{ALERT.SUBJECT}\`: Alert title, keep as first parameter
1017
1027
  - \`{ALERT.MESSAGE}\`: Alert message, keep as second parameter
1018
- - \`FlashDuty webhook push URL\`, simply copy the integration push URL, keep as third parameter
1028
+ - \`Flashduty webhook push URL\`, simply copy the integration push URL, keep as third parameter
1019
1029
  - \`Zabbix console address\`, copy directly (if your page is configured with tomcat/nginx forwarding path, please include it), used to generate alert detail page links. Leave empty if none, keep as fourth parameter
1020
1030
  - \`HTTPProxy\`: If your Zabbix Server cannot directly access Flashduty services, you can set this parameter to a proxy address. Leave empty if none, keep as fifth parameter
1021
1031
 
@@ -1059,7 +1069,7 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
1059
1069
 
1060
1070
  1. Click \`Create action\` to enter the action editing page
1061
1071
 
1062
- - Name: Fill in "Send To FlashDuty"
1072
+ - Name: Fill in "Send To Flashduty"
1063
1073
 
1064
1074
  2. Select \`Operations\`, update notification user configurations for three scenarios respectively:
1065
1075
 
@@ -1074,10 +1084,10 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
1074
1084
 
1075
1085
  3. Select \`Operations\`, update notification content configurations for three scenarios respectively:
1076
1086
 
1077
- - **In the Default Message configuration item, completely copy the following content and paste it after the default content**. FlashDuty will parse corresponding text after receiving events to find alert attribute information:
1087
+ - **In the Default Message configuration item, completely copy the following content and paste it after the default content**. Flashduty will parse corresponding text after receiving events to find alert attribute information:
1078
1088
 
1079
1089
  \`\`\`
1080
- -----FlashDuty Required Starts-----event_severity={TRIGGER.SEVERITY}||event_name={TRIGGER.NAME}||event_id={EVENT.ID}||event_tags={EVENT.TAGS}||event_ack={EVENT.ACK.STATUS}||event_value={EVENT.VALUE}||trigger_id={TRIGGER.ID}||trigger_desc={TRIGGER.DESCRIPTION}||trigger_expr={TRIGGER.EXPRESSION}||host_group={TRIGGER.HOSTGROUP.NAME}||host_ip={HOST.IP}||host_name={HOST.NAME}||item_name={ITEM.NAME}||item_value={ITEM.VALUE}-----FlashDuty Required Ends-----
1090
+ -----Flashduty Required Starts-----event_severity={TRIGGER.SEVERITY}||event_name={TRIGGER.NAME}||event_id={EVENT.ID}||event_tags={EVENT.TAGS}||event_ack={EVENT.ACK.STATUS}||event_value={EVENT.VALUE}||trigger_id={TRIGGER.ID}||trigger_desc={TRIGGER.DESCRIPTION}||trigger_expr={TRIGGER.EXPRESSION}||host_group={TRIGGER.HOSTGROUP.NAME}||host_ip={HOST.IP}||host_name={HOST.NAME}||item_name={ITEM.NAME}||item_value={ITEM.VALUE}-----Flashduty Required Ends-----
1081
1091
  \`\`\`
1082
1092
 
1083
1093
  - Repeat the above steps to complete the configuration of \`Recovery operations\` and \`Update operations\`
@@ -1163,7 +1173,7 @@ Choose this option when you need to route alerts to different channels based on
1163
1173
  **Step 1: Set up Notification Channel**
1164
1174
 
1165
1175
  1. Go to \`Settings -> Notifications\` page, click Setup to edit, as shown below;
1166
- 2. Select \`FlashDuty (Flashduty)\` as the \`Notification Type\`;
1176
+ 2. Select \`Flashduty (Flashduty)\` as the \`Notification Type\`;
1167
1177
  3. Copy and paste the integration_key parameter value from the integration push URL into \`Integration Key\`;
1168
1178
  4. Select \`Severity\` as needed;
1169
1179
  5. Submit and save
@@ -1176,7 +1186,7 @@ Choose this option when you need to route alerts to different channels based on
1176
1186
 
1177
1187
  1. Click \`Add New Monitor\` or edit existing monitors, configure monitoring settings as needed;
1178
1188
  2. As shown, enable the notification method created in the previous step in the \`Notifications\` section;
1179
- 3. If needed, add \`Tags\`. Note that only tags with both Key/Value will be pushed to FlashDuty;
1189
+ 3. If needed, add \`Tags\`. Note that only tags with both Key/Value will be pushed to Flashduty;
1180
1190
  4. Submit and save, then wait for alerts to trigger.
1181
1191
 
1182
1192
  <img src="https://download.flashcat.cloud/flashduty/doc/en/upk/upk-2.png" alt="drawing" width="500"/>
@@ -1575,7 +1585,7 @@ Choose this option when you need to route alerts to different channels based on
1575
1585
  <img src="https://download.flashcat.cloud/flashduty/doc/en/aliyun/sls-5.png" alt="drawing" width="500"/>
1576
1586
 
1577
1587
  4. Click the \`Confirm\` button to save
1578
- 5. Repeat these steps for all other rules to push all alerts to FlashDuty
1588
+ 5. Repeat these steps for all other rules to push all alerts to Flashduty
1579
1589
 
1580
1590
  </div>
1581
1591
 
@@ -1594,7 +1604,7 @@ Alibaba Cloud SLS monitoring to Flashduty alert severity mapping:
1594
1604
  | 2 | Info | Info |
1595
1605
 
1596
1606
  </div>
1597
- `,h={CustomAlert:t,Email:a,N9e:i,Prometheus:o,Grafana:s,Zabbix:r,UptimeKuma:l,AliyunARMS:d,AliyunCmEvent:c,AliyunCm:u,AliyunSLS:e,AWSCW:e,AzureMonitor:`---
1607
+ `,h={CustomAlert:t,Email:a,N9e:o,Prometheus:i,Grafana:s,Zabbix:r,UptimeKuma:l,AliyunARMS:d,AliyunCmEvent:c,AliyunCm:u,AliyunSLS:e,AWSCW:e,AzureMonitor:`---
1598
1608
  title: "AWS CloudWatch Integration"
1599
1609
  description: "Sync AWS CloudWatch alert events to Flashduty via webhook to achieve automated alert noise reduction"
1600
1610
  date: "2025-05-19T10:00:00+08:00"
@@ -1646,10 +1656,10 @@ Choose this method when you need to route alerts to different channels based on
1646
1656
 
1647
1657
  1. Log in to your AWS Console, search for \`Simple Notification Service\` product and enter its console
1648
1658
  2. Go to the \`Topics\` page, click the \`Create topic\` button to start creating a topic
1649
- 3. Select \`Standard\` for \`Type\`, enter \`FlashDuty\` as the name
1659
+ 3. Select \`Standard\` for \`Type\`, enter \`Flashduty\` as the name
1650
1660
  4. Click the \`Create Topic\` button to complete topic creation
1651
1661
  5. Go to the \`Subscriptions\` page, click the \`Create subscription\` button to create a subscription for the topic
1652
- 6. Select \`FlashDuty\` for \`Topic ARN\`, choose \`HTTPS\` for \`Protocol\`, enter the integration push URL for \`Endpoint\` (enter the integration name on the current page, the URL will be generated after saving)
1662
+ 6. Select \`Flashduty\` for \`Topic ARN\`, choose \`HTTPS\` for \`Protocol\`, enter the integration push URL for \`Endpoint\` (enter the integration name on the current page, the URL will be generated after saving)
1653
1663
  7. Click the \`Create subscription\` button to complete subscription creation
1654
1664
 
1655
1665
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/aws-cloudwatch-subscribe.png" />
@@ -1657,7 +1667,7 @@ Choose this method when you need to route alerts to different channels based on
1657
1667
  8. Return to the \`Subscriptions\` page. When the subscription status shows \`Confirmed\`, the subscription URL verification is successful; otherwise, please contact Flashduty
1658
1668
  9. Search for the \`CloudWatch\` product and enter its console
1659
1669
  10. Go to the \`All alarms\` page, choose to create or edit existing alarm policies
1660
- 11. For the \`Notification\` step, select \`FlashDuty\` as the \`SNS topic\` for all three states: \`In alarm\`, \`OK\`, and \`Insufficient data\`, as shown below:
1670
+ 11. For the \`Notification\` step, select \`Flashduty\` as the \`SNS topic\` for all three states: \`In alarm\`, \`OK\`, and \`Insufficient data\`, as shown below:
1661
1671
 
1662
1672
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/aws-cloudwatch-alram.png" />
1663
1673
 
@@ -1806,7 +1816,7 @@ Choose this method when you need to route alerts to different channels based on
1806
1816
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-1.png" alt="drawing" width="500"/>
1807
1817
 
1808
1818
  5. Go to \`Alarm-Alarm Notifications-Notification Groups\` page, click \`Create Notification Group\` button
1809
- 6. Enter \`FlashDuty\` as group name, check the \`flashduty\` notification object created earlier
1819
+ 6. Enter \`Flashduty\` as group name, check the \`flashduty\` notification object created earlier
1810
1820
  7. Click \`OK\` button to complete notification group creation
1811
1821
 
1812
1822
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-2.png" alt="drawing" width="500"/>
@@ -1814,7 +1824,7 @@ Choose this method when you need to route alerts to different channels based on
1814
1824
  Note: When creating a notification group, Huawei Cloud will send a request to Flashduty to verify the push URL. Check the notification group's object list - alerts will only be pushed normally when the notification object status is \`Confirmed\`
1815
1825
 
1816
1826
  8. Go to \`Alarm-Alarm Rules\` page, edit existing alarm rules or create new ones to open the \`Alarm Rule Details\` page
1817
- 9. Select \`FlashDuty\` as the notification group, check both \`Alarm Triggered\` and \`Cleared\` conditions. Click \`OK\` button to save changes
1827
+ 9. Select \`Flashduty\` as the notification group, check both \`Alarm Triggered\` and \`Cleared\` conditions. Click \`OK\` button to save changes
1818
1828
 
1819
1829
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-3.png" alt="drawing" width="500"/>
1820
1830
 
@@ -1891,7 +1901,7 @@ Supports Influxdata versions 1.x ~ 2.x, with different configurations for each v
1891
1901
  #### Step 1: Create Alert Channel
1892
1902
  1. Log in to your \`Influxdata\` console and navigate to the \`Alerts > Notification Endpoints\` page.
1893
1903
  2. Click \`Create\` to create an alert notification channel.
1894
- 3. Select \`HTTP\` for \`Destination\` and enter \`FlashDuty\` for \`Name\`.
1904
+ 3. Select \`HTTP\` for \`Destination\` and enter \`Flashduty\` for \`Name\`.
1895
1905
  4. Choose \`POST\` for \`HTTP Method\` and enter the integration push URL.
1896
1906
 
1897
1907
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/influxdb-1.png" />
@@ -1900,7 +1910,7 @@ Supports Influxdata versions 1.x ~ 2.x, with different configurations for each v
1900
1910
  1. Log in to your \`Influxdata\` console and navigate to the \`Alerts > Notification Rules\` page.
1901
1911
  2. Click \`Create\` to create an alert notification rule.
1902
1912
  3. Configure \`About\` and \`Conditions\` as needed.
1903
- 4. Select \`FlashDuty\` created in Step 1 for \`Message\`.
1913
+ 4. Select \`Flashduty\` created in Step 1 for \`Message\`.
1904
1914
 
1905
1915
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/influxdb-2.png" />
1906
1916
 
@@ -2164,7 +2174,7 @@ filter:
2164
2174
  query_string:
2165
2175
  query: "created_at:*"
2166
2176
 
2167
- # ------- FlashDuty ----------------
2177
+ # ------- Flashduty ----------------
2168
2178
  alert: pagerduty
2169
2179
  pagerduty_service_key: xxx
2170
2180
  pagerduty_client_name: wahaha
@@ -2174,7 +2184,7 @@ pagerduty_v2_payload_component: mysql
2174
2184
  pagerduty_v2_payload_group: app-stack
2175
2185
  pagerduty_v2_payload_severity: error
2176
2186
  pagerduty_v2_payload_source: mysql.host.name
2177
- # ------- FlashDuty ----------------
2187
+ # ------- Flashduty ----------------
2178
2188
  \`\`\`
2179
2189
 
2180
2190
  4. Step 4: Restart ElastAlert and wait for alerts to trigger
@@ -2238,7 +2248,7 @@ BlueKing alert policies can trigger \`Action Plans\`, which can integrate with e
2238
2248
 
2239
2249
  1. Log in to your BlueKing desktop and enter the \`Monitor Platform\`;
2240
2250
  2. Go to \`Configuration-Action Plans\` page, click the \`Add Plan\` button to start creating an action plan;
2241
- 3. Enter the name as \`Send To FlashDuty\`, select \`HTTP Callback\` as the plan type, choose \`POST\` as the push method, and fill in the integration push URL (obtained after saving the integration), as shown below:
2251
+ 3. Enter the name as \`Send To Flashduty\`, select \`HTTP Callback\` as the plan type, choose \`POST\` as the push method, and fill in the integration push URL (obtained after saving the integration), as shown below:
2242
2252
 
2243
2253
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/integration/tencent-bk/create_package.jpg" />
2244
2254
 
@@ -2256,12 +2266,12 @@ BlueKing alert policies can trigger \`Action Plans\`, which can integrate with e
2256
2266
  <div class="md-block">
2257
2267
 
2258
2268
  1. Go to \`Configuration-Alert Policies\` page, select an existing policy to edit or create a new one;
2259
- 2. Scroll down to the \`Alert Processing\` section, select the \`Send To FlashDuty\` action plan for all three scenarios, and disable \`Defense Rules\`, as shown below:
2269
+ 2. Scroll down to the \`Alert Processing\` section, select the \`Send To Flashduty\` action plan for all three scenarios, and disable \`Defense Rules\`, as shown below:
2260
2270
 
2261
2271
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/integration/tencent-bk/update_alert_rule.jpg" />
2262
2272
 
2263
2273
  3. Submit and save to complete;
2264
- 4. Repeat these steps for other alerts you want to push to FlashDuty.
2274
+ 4. Repeat these steps for other alerts you want to push to Flashduty.
2265
2275
 
2266
2276
  </div>
2267
2277
 
@@ -2398,7 +2408,7 @@ Choose this option when you need to route alerts to different channels based on
2398
2408
  "record_group_id": "{{escape .RecordGroupId}}",
2399
2409
  "detail_url": "{{escape .DetailUrl}}",
2400
2410
  "query_url": "{{escape .QueryUrl}}",
2401
- "message": {{.Message}},
2411
+ "message": "{{.Message}}",
2402
2412
  "query_result": {{.QueryResult}},
2403
2413
  "query_log": {{.QueryLog}},
2404
2414
  "analysis_result": {{.AnalysisResult}}
@@ -2545,7 +2555,7 @@ Choose this method when you need to route alerts to different channels based on
2545
2555
 
2546
2556
  1. Log in to your Tencent Cloud Console and select EventBridge service
2547
2557
  2. Go to the Event Rules page, click the New button to start editing rules
2548
- 3. Enter the name as FlashDuty, as shown below:
2558
+ 3. Enter the name as Flashduty, as shown below:
2549
2559
 
2550
2560
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/tencent-eb-new-rule.png" />
2551
2561
 
@@ -2646,12 +2656,12 @@ Choose this method when you need to route alerts to different channels based on
2646
2656
 
2647
2657
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/oceanbase-1.png" />
2648
2658
 
2649
- 5. Copy the following script content into the channel configuration, and **please add the integration_key value from your FlashDuty push URL to the integration_key parameter in the script**
2659
+ 5. Copy the following script content into the channel configuration, and **please add the integration_key value from your Flashduty push URL to the integration_key parameter in the script**
2650
2660
 
2651
2661
  \`\`\`
2652
2662
  #!/usr/bin/env bash
2653
2663
 
2654
- function sendToFlashDuty() {
2664
+ function sendToFlashduty() {
2655
2665
  URL="\${address}/event/push/alert/standard?integration_key=\${integration_key}"
2656
2666
  curl -s -X POST \${URL} -H 'Content-Type: application/json' -d '{
2657
2667
  "event_status": "'\${alert_level}'",
@@ -2715,7 +2725,7 @@ elif [[ \${statusMd5} == "\${active}" ]];then
2715
2725
  fi
2716
2726
 
2717
2727
  if [[ \${statusMd5} == \${active} || \${statusMd5} == \${Inactive} ]];then
2718
- sendToFlashDuty
2728
+ sendToFlashduty
2719
2729
  fi
2720
2730
  \`\`\`
2721
2731
 
@@ -2753,7 +2763,7 @@ OCP Alert Notification - Single Alert
2753
2763
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/oceanbase-2.png" />
2754
2764
 
2755
2765
  3. Select **English** for push language
2756
- 4. Select **FlashDuty** for alert channel
2766
+ 4. Select **Flashduty** for alert channel
2757
2767
  5. Enable **Recovery Notification**
2758
2768
  6. Submit
2759
2769
 
@@ -2767,7 +2777,7 @@ OCP Alert Notification - Single Alert
2767
2777
  |OceanBase|Flashduty|Status|
2768
2778
  |---|---|---|
2769
2779
  |Down|Critical|Critical|
2770
- |Critical|Warning|Critical|
2780
+ |Critical|Critical|Critical|
2771
2781
  |Warning|Warning|Warning|
2772
2782
  |Caution|Info|Info|
2773
2783
  |Notice|Info|Info|
@@ -2834,7 +2844,7 @@ Choose this option when you need to route alerts to different channels based on
2834
2844
 
2835
2845
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/graylog-2.png" />
2836
2846
 
2837
- 6. Enter the FlashDuty URL you obtained (URL whitelist required for first-time use)
2847
+ 6. Enter the Flashduty URL you obtained (URL whitelist required for first-time use)
2838
2848
 
2839
2849
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/graylog-3.png" />
2840
2850
 
@@ -2846,11 +2856,11 @@ Choose this option when you need to route alerts to different channels based on
2846
2856
 
2847
2857
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/graylog-5.png" />
2848
2858
 
2849
- ### Step 2: Use FlashDuty Alert Channel in Alert Events
2859
+ ### Step 2: Use Flashduty Alert Channel in Alert Events
2850
2860
  1. Create or edit existing Event Definition
2851
2861
  2. Skip other alert configurations here (configure alert conditions according to business requirements)
2852
2862
  3. Configure channel in Notifications
2853
- 4. Add Notification and select FlashDuty channel
2863
+ 4. Add Notification and select Flashduty channel
2854
2864
  5. Click Done
2855
2865
  6. Complete the next step to finish
2856
2866
 
@@ -2936,7 +2946,7 @@ rules:
2936
2946
  tags:
2937
2947
  level: Warning
2938
2948
  \`\`\`
2939
- 4. Add the FlashDuty webhook URL
2949
+ 4. Add the Flashduty webhook URL
2940
2950
 
2941
2951
  \`\`\`
2942
2952
  # Add at the bottom of the configuration file
@@ -3022,12 +3032,12 @@ Sentry provides two types of alert mechanisms: Issue Alerts and Metric Alerts. W
3022
3032
 
3023
3033
  ## II. Sentry Alert Push Configuration
3024
3034
 
3025
- ### Step 1: Add FlashDuty Custom Integrations
3035
+ ### Step 1: Add Flashduty Custom Integrations
3026
3036
 
3027
3037
  1. Log in to the Sentry management console
3028
3038
  2. In the left navigation bar, locate **Settings => Custom Integrations**
3029
3039
  3. Click Create New Integration and select **Internal Integration**
3030
- 4. On the editing page, **enter FlashDuty for Name and paste the integration push URL into WebhookURL**
3040
+ 4. On the editing page, **enter Flashduty for Name and paste the integration push URL into WebhookURL**
3031
3041
  5. Enable **Alert Rule Action**, configure as shown below:
3032
3042
 
3033
3043
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-1.png" />
@@ -3039,11 +3049,11 @@ Sentry provides two types of alert mechanisms: Issue Alerts and Metric Alerts. W
3039
3049
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-2.png" />
3040
3050
 
3041
3051
  **Special notes about WEBHOOKS configuration:**
3042
- 1. After checking **issue**, FlashDuty can receive resolved events for issues, meaning when manually triggering resolved for an issue in the issue list, we will automatically recover the associated incident in FlashDuty
3052
+ 1. After checking **issue**, Flashduty can receive resolved events for issues, meaning when manually triggering resolved for an issue in the issue list, we will automatically recover the associated incident in Flashduty
3043
3053
  2. Other issue events such as create, assigned, archived, and unresolved are not supported
3044
- 3. If error and comment are also checked, FlashDuty will not receive or process these types of events
3054
+ 3. If error and comment are also checked, Flashduty will not receive or process these types of events
3045
3055
 
3046
- ### Step 2: Use FlashDuty Integration in Alerts
3056
+ ### Step 2: Use Flashduty Integration in Alerts
3047
3057
  1. In the left navigation bar, locate **Alerts => Create Alert**
3048
3058
  2. Select the type of Alert to create, such as Issue
3049
3059
 
@@ -3055,7 +3065,7 @@ Sentry provides two types of alert mechanisms: Issue Alerts and Metric Alerts. W
3055
3065
 
3056
3066
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-4.png" />
3057
3067
 
3058
- 5. Select **FlashDuty** added above as the notification channel
3068
+ 5. Select **Flashduty** added above as the notification channel
3059
3069
 
3060
3070
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-5.png" />
3061
3071
 
@@ -3136,7 +3146,7 @@ Choose this option when you need to route alerts to different channels based on
3136
3146
 
3137
3147
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/jkb-2.png" />
3138
3148
 
3139
- 4. Enter FlashDuty as the custom name, and input the copied integration push URL
3149
+ 4. Enter Flashduty as the custom name, and input the copied integration push URL
3140
3150
  5. Select **POST** as the callback method and **JSON** as the data format
3141
3151
  6. Check **Enable URL Callback**, configure other options as needed, refer to the image below
3142
3152
 
@@ -3144,10 +3154,10 @@ Choose this option when you need to route alerts to different channels based on
3144
3154
 
3145
3155
  7. Click Save
3146
3156
 
3147
- ### Step 2: Use FlashDuty Alert Channel in Monitoring Tasks
3157
+ ### Step 2: Use Flashduty Alert Channel in Monitoring Tasks
3148
3158
  1. Create or edit an existing monitoring task
3149
3159
  2. Other alert configurations are omitted here
3150
- 3. Under Webhook notification, select the FlashDuty channel
3160
+ 3. Under Webhook notification, select the Flashduty channel
3151
3161
 
3152
3162
  <img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/jkb-4.png" />
3153
3163
 
@@ -3225,10 +3235,10 @@ Choose this option when you need to route alerts to different channels based on
3225
3235
 
3226
3236
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-3.png" />
3227
3237
 
3228
- 4. In the \`Connection details\` section, enter \`FlashDuty\` for \`Connection name\`
3238
+ 4. In the \`Connection details\` section, enter \`Flashduty\` for \`Connection name\`
3229
3239
  5. In the \`Authorization\` section, select \`Other\` for \`Destination type\`
3230
3240
  6. Select \`API Key\` for \`Authorization type\`
3231
- 7. Enter \`FlashDuty\` for \`API key name\`, and enter the \`integration_key\` from the integration push URL for \`Value\`
3241
+ 7. Enter \`Flashduty\` for \`API key name\`, and enter the \`integration_key\` from the integration push URL for \`Value\`
3232
3242
  8. Click \`Create\` to save
3233
3243
 
3234
3244
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-4.png" />
@@ -3239,10 +3249,10 @@ Choose this option when you need to route alerts to different channels based on
3239
3249
 
3240
3250
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-5.png" />
3241
3251
 
3242
- 2. Fill in the information in the \`API destination detail\` editing interface, enter \`FlashDuty\` for \`Name\`
3252
+ 2. Fill in the information in the \`API destination detail\` editing interface, enter \`Flashduty\` for \`Name\`
3243
3253
  3. Enter the integration push URL for \`API destination endpoint\`
3244
3254
  4. Select \`POST\` for \`HTTP method\`
3245
- 5. Select \`Use an existing connection\` for \`Connection type\` and choose the \`FlashDuty\` Connection added in Step 1
3255
+ 5. Select \`Use an existing connection\` for \`Connection type\` and choose the \`Flashduty\` Connection added in Step 1
3246
3256
  6. Click \`Create\` to save
3247
3257
 
3248
3258
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-6.png" />
@@ -3252,7 +3262,7 @@ Choose this option when you need to route alerts to different channels based on
3252
3262
  2. Select \`Buses=>Rules\` from the left navigation bar, create or edit existing rules
3253
3263
  3. Other configurations are omitted here
3254
3264
  4. For \`Target types\`, select \`EventBridge API destination\` as the target type
3255
- 5. Under \`API destination\`, select \`Use an existing API destination\` and choose the \`FlashDuty\` API destination created in Step 2 from the dropdown
3265
+ 5. Under \`API destination\`, select \`Use an existing API destination\` and choose the \`Flashduty\` API destination created in Step 2 from the dropdown
3256
3266
  6. Click \`Next\`, configure as needed, and save
3257
3267
 
3258
3268
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-7.png" />
@@ -3261,8 +3271,8 @@ Choose this option when you need to route alerts to different channels based on
3261
3271
 
3262
3272
  <div class="md-block">
3263
3273
 
3264
- 1. Since AWS EventBridge events don't have severity levels, all events pushed to FlashDuty will have a Warning severity
3265
- 2. AWS EventBridge events only have triggers without recovery states, so events received by FlashDuty won't automatically associate with recovery
3274
+ 1. Since AWS EventBridge events don't have severity levels, all events pushed to Flashduty will have a Warning severity
3275
+ 2. AWS EventBridge events only have triggers without recovery states, so events received by Flashduty won't automatically associate with recovery
3266
3276
 
3267
3277
  </div>
3268
3278
 
@@ -3335,7 +3345,7 @@ Choose this option when you need to route alerts to different channels based on
3335
3345
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/dyn-3.png" />
3336
3346
 
3337
3347
  5. Under \`Notification type\`, select \`Custom Integration\`
3338
- 6. Fill in \`Display name\` with \`FlashDuty\`
3348
+ 6. Fill in \`Display name\` with \`Flashduty\`
3339
3349
  7. In \`Webhook URL\`, enter the integration push URL (generated after saving the integration name on the current page)
3340
3350
  8. Keep \`Call webhook if problem is closed\` enabled
3341
3351
 
@@ -3426,14 +3436,14 @@ Choose this option when you need to route alerts to different channels based on
3426
3436
 
3427
3437
  ## I. Huawei Cloud LTS Alert Push Configuration
3428
3438
 
3429
- ### Step 1: Create FlashDuty Alert Channel
3439
+ ### Step 1: Create Flashduty Alert Channel
3430
3440
  1. Log in to your Huawei Cloud Console, search for \`SMN\` (Simple Message Notification) service and enter its console
3431
3441
  2. Select \`Topic Management=>Topics\` from the left navigation bar
3432
- 3. Click \`Create Topic\`, enter \`FlashDuty\` as the topic name in the edit page and confirm
3442
+ 3. Click \`Create Topic\`, enter \`Flashduty\` as the topic name in the edit page and confirm
3433
3443
 
3434
3444
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-1.png" alt="drawing" width="500"/>
3435
3445
 
3436
- 4. Return to the topic list and click \`Add Subscription\` in the newly created FlashDuty topic
3446
+ 4. Return to the topic list and click \`Add Subscription\` in the newly created Flashduty topic
3437
3447
 
3438
3448
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-2.png" alt="drawing" width="500"/>
3439
3449
 
@@ -3452,14 +3462,14 @@ Choose this option when you need to route alerts to different channels based on
3452
3462
 
3453
3463
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-5.png" alt="drawing" width="500"/>
3454
3464
 
3455
- 3. In the template edit page, enter **FlashDuty** as the name, select \`English\` as the message header language
3465
+ 3. In the template edit page, enter **Flashduty** as the name, select \`English\` as the message header language
3456
3466
  4. Select \`HTTP/HTTPS\` as notification type and \`JSON\` as data type
3457
3467
  5. Click \`Confirm\` to save
3458
3468
 
3459
3469
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-6.png" alt="drawing" width="500"/>
3460
3470
 
3461
3471
  6. Return to the \`Alert Action Rules\` list and click \`Create\`
3462
- 7. Enter **FlashDuty** as the rule name, select the previously created **FlashDuty** topic and template
3472
+ 7. Enter **Flashduty** as the rule name, select the previously created **Flashduty** topic and template
3463
3473
 
3464
3474
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-7.png" alt="drawing" width="500"/>
3465
3475
 
@@ -3469,7 +3479,7 @@ Choose this option when you need to route alerts to different channels based on
3469
3479
  2. Create or edit existing alert rules
3470
3480
  3. Other configurations are omitted here
3471
3481
  4. In \`Advanced Settings\`, check both \`Alert Trigger\` and \`Alert Recovery\` in notification scenarios
3472
- 5. Enable action rules and select the **FlashDuty** rule created in \`Step 2\`
3482
+ 5. Enable action rules and select the **Flashduty** rule created in \`Step 2\`
3473
3483
  6. Select \`English\` as language, click \`Confirm\` to save after configuration is complete
3474
3484
 
3475
3485
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-8.png" alt="drawing" width="500"/>
@@ -3547,18 +3557,18 @@ Choose this option when you need to route alerts to different channels based on
3547
3557
 
3548
3558
  3. Find \`Webhooks\` on the Notification channels page and click \`ADD NEW\`
3549
3559
  4. Enter the integration push URL in the \`Endpoint URL\` field (the URL will be generated after saving the integration name on the current page)
3550
- 5. Enter **FlashDuty** in the \`Display Name\` field
3560
+ 5. Enter **Flashduty** in the \`Display Name\` field
3551
3561
  6. Click \`TEST CONNECTION\` and then \`SAVE\` to complete
3552
3562
 
3553
3563
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/google-cm-2.png" />
3554
3564
 
3555
- ### Step 2: Use FlashDuty Alert Channel in Alert Policy
3565
+ ### Step 2: Use Flashduty Alert Channel in Alert Policy
3556
3566
 
3557
3567
  1. Return to the \`Alerting\` page
3558
3568
  2. Create or edit an existing policy
3559
3569
  3. Skip other policy configurations (configure alert conditions according to business requirements)
3560
3570
  4. On the \`Notifications and name\` page, keep \`Use notification channel\` enabled
3561
- 5. Select the **FlashDuty** channel created in **Step 1** from the \`Notification channels\` dropdown, and check \`Notify on incident closure\`
3571
+ 5. Select the **Flashduty** channel created in **Step 1** from the \`Notification channels\` dropdown, and check \`Notify on incident closure\`
3562
3572
  6. Complete other configurations and save the policy
3563
3573
 
3564
3574
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/google-cm-3.png" />
@@ -3778,14 +3788,14 @@ Choose this method when you need to route alerts to different channels based on
3778
3788
 
3779
3789
  ## I. AppDynamics Alert Push Configuration
3780
3790
 
3781
- ### Step 1: Configure FlashDuty Alert Channel
3791
+ ### Step 1: Configure Flashduty Alert Channel
3782
3792
 
3783
3793
  1. Log in to your AppDynamics console
3784
3794
  2. Find \`Alert Respond\`, select \`HTTP Request Templates\`, and click \`New\` to create an alert channel
3785
3795
 
3786
3796
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-1.png" />
3787
3797
 
3788
- 3. In the template configuration, enter **FlashDuty** as the \`Name\`
3798
+ 3. In the template configuration, enter **Flashduty** as the \`Name\`
3789
3799
  4. In the \`Request URL\` section, select **POST** as the \`Method\`, and enter the integration push URL in \`Raw URL\` (enter the integration name on this page, and the URL will be generated after saving)
3790
3800
 
3791
3801
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-2.png" />
@@ -3858,7 +3868,7 @@ If you need to configure \`Custom Templating Variables\`, you can refer to the f
3858
3868
 
3859
3869
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-6.png" />
3860
3870
 
3861
- 3. In the \`Create HTTP Action\` popup, enter a Name, select **FlashDuty** created in \`Step 1\` as the \`HTTP Request Template\`, and click \`SAVE\`
3871
+ 3. In the \`Create HTTP Action\` popup, enter a Name, select **Flashduty** created in \`Step 1\` as the \`HTTP Request Template\`, and click \`SAVE\`
3862
3872
 
3863
3873
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-7.png" />
3864
3874
 
@@ -3938,11 +3948,11 @@ Choose this option when you need to route alerts to different channels based on
3938
3948
 
3939
3949
  ## I. SolarWinds Alert Push Configuration
3940
3950
 
3941
- ### Step 1: Configure FlashDuty Alert Channel
3951
+ ### Step 1: Configure Flashduty Alert Channel
3942
3952
 
3943
3953
  **Prerequisites**
3944
3954
  1. SolarWinds has five types of alerts (Anomaly, Entity, Event, Log, Metric Group), each requiring a different alert channel, so five alert channels need to be created
3945
- 2. When creating Webhook channels, it's recommended to name them using the format: Type_FlashDuty, for example: Anomaly_FlashDuty
3955
+ 2. When creating Webhook channels, it's recommended to name them using the format: Type_Flashduty, for example: Anomaly_Flashduty
3946
3956
  3. When selecting **Select Custom Body Template Based On The Alert Types**, the system will generate a default **HTTP POST Body**. **Please do not modify the generated template content**
3947
3957
 
3948
3958
  **Getting Started**
@@ -3952,7 +3962,7 @@ Choose this option when you need to route alerts to different channels based on
3952
3962
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/sw-1.png" />
3953
3963
 
3954
3964
  3. Click \`CREATE CONFIGURATION\` to create the corresponding alert channel
3955
- 4. Select **POST** for \`Method\`, name it according to the prerequisites, e.g., Anomaly_FlashDuty
3965
+ 4. Select **POST** for \`Method\`, name it according to the prerequisites, e.g., Anomaly_Flashduty
3956
3966
  5. Fill in the integration push URL in \`Destination URL\` (enter the integration name on the current page, save to generate the URL)
3957
3967
  6. Select **application/json** for \`Content Type\`
3958
3968
  7. Choose the type you need to create in \`Select Custom Body Template Based On The Alert Types\`, e.g., Anomaly Based Alert
@@ -3968,7 +3978,7 @@ Choose this option when you need to route alerts to different channels based on
3968
3978
  1. Find \`Alerts\` in the left navigation bar, select \`Alert Settings\`
3969
3979
  2. Create or edit existing policies (configure alert rules as needed, alert rule configuration is omitted here)
3970
3980
  3. In the \`Actions\` section of the policy configuration page, select **Webhook** for \`Services\`
3971
- 4. Select the Anomaly_FlashDuty channel created in Step 1 for \`Configuration\`
3981
+ 4. Select the Anomaly_Flashduty channel created in Step 1 for \`Configuration\`
3972
3982
  5. Keep \`Send an additional notification when the Alert is cleared\` enabled
3973
3983
 
3974
3984
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/sw-4.png" />
@@ -4041,14 +4051,14 @@ Choose this method when you need to route alerts to different channels based on
4041
4051
 
4042
4052
  ## I. Volcengine Cloud Monitor Alert Push Configuration
4043
4053
 
4044
- ### Step 1: Create FlashDuty Alert Channel
4054
+ ### Step 1: Create Flashduty Alert Channel
4045
4055
  1. Log in to your Volcengine console, search for \`Cloud Monitor\` product, and enter the corresponding product console
4046
4056
  2. Select \`Notification Groups=>Callback\` from the left navigation bar
4047
4057
  3. Click \`Create Callback URL\`
4048
4058
 
4049
4059
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/event-1.png" alt="drawing" width="500"/>
4050
4060
 
4051
- 4. Fill in the information on the edit page, enter \`FlashDuty_Metric\` as the callback URL name
4061
+ 4. Fill in the information on the edit page, enter \`Flashduty_Metric\` as the callback URL name
4052
4062
  5. Select \`General Callback URL\` as the callback URL type
4053
4063
  6. Enter the **integration push URL** (enter the integration name on the current page, save to generate the URL)
4054
4064
  7. Click \`Confirm\` to complete the creation (connectivity testing is not supported; even if the test shows connectivity failure, it won't affect alert reception)
@@ -4061,7 +4071,7 @@ Choose this method when you need to route alerts to different channels based on
4061
4071
  2. Create or edit existing alert policies (configure policies as needed, skipped here)
4062
4072
  3. On the policy edit page, select \`Rules and Resources\` for \`Send Aggregation Policy\`
4063
4073
  4. Keep \`Alert Recovery Notification\` enabled
4064
- 5. Check \`Alert Callback\` in \`Alert Channels\`, and select the \`FlashDuty_Metric\` channel created in **Step 1** from the dropdown menu
4074
+ 5. Check \`Alert Callback\` in \`Alert Channels\`, and select the \`Flashduty_Metric\` channel created in **Step 1** from the dropdown menu
4065
4075
  6. After completing other configurations, click \`Confirm\` to finish
4066
4076
 
4067
4077
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/event-3.png" alt="drawing" width="500"/>
@@ -4130,14 +4140,14 @@ Choose this method when you need to route alerts to different channels based on
4130
4140
 
4131
4141
  ## I. Volcengine Cloud Monitor Event Center Alert Push Configuration
4132
4142
 
4133
- ### Step 1: Create FlashDuty Alert Channel
4143
+ ### Step 1: Create Flashduty Alert Channel
4134
4144
  1. Log in to your Volcengine console, search for \`Cloud Monitor\` product, and enter the corresponding product console
4135
4145
  2. Select \`Notification Groups=>Callback\` from the left navigation bar
4136
4146
  3. Click \`Create Callback URL\`
4137
4147
 
4138
4148
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/event-1.png" alt="drawing" width="500"/>
4139
4149
 
4140
- 4. Fill in the information on the edit page, enter \`FlashDuty_Event\` as the callback URL name
4150
+ 4. Fill in the information on the edit page, enter \`Flashduty_Event\` as the callback URL name
4141
4151
  5. Select \`General Callback URL\` as the callback URL type
4142
4152
  6. Enter the **integration push URL** (enter the integration name on the current page, save to generate the URL)
4143
4153
  7. Click \`Confirm\` to complete the creation (connectivity testing is not supported; even if the test shows connectivity failure, it won't affect alert reception)
@@ -4148,7 +4158,7 @@ Choose this method when you need to route alerts to different channels based on
4148
4158
 
4149
4159
  1. Select \`Event Center=>Event Rules\` from the left navigation bar
4150
4160
  2. Create or edit existing event rules (configure rules as needed, skipped here)
4151
- 3. On the rule editing page, check \`Alert Callback\` under delivery channels, and select the \`FlashDuty_Event\` channel created in **Step 1** from the alert callback dropdown
4161
+ 3. On the rule editing page, check \`Alert Callback\` under delivery channels, and select the \`Flashduty_Event\` channel created in **Step 1** from the alert callback dropdown
4152
4162
  4. After completing other configurations, click \`Confirm\` to finish
4153
4163
 
4154
4164
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/metric-3.png" alt="drawing" width="500"/>
@@ -4217,14 +4227,14 @@ Choose this method when you need to route alerts to different channels based on
4217
4227
 
4218
4228
  ## I. Volcengine Log Service (TLS) Alert Push Configuration
4219
4229
 
4220
- ### Step 1: Create FlashDuty Alert Channel
4230
+ ### Step 1: Create Flashduty Alert Channel
4221
4231
  1. Log in to your Volcengine console, search for \`TLS\` Log Service product, and enter the corresponding product console
4222
4232
  2. Select \`Alert=>Notification Management\` from the left navigation bar
4223
4233
  3. Choose \`Webhook Alert Integration\` and click \`Create Webhook Alert Integration\`
4224
4234
 
4225
4235
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/tls-1.png" alt="drawing" width="500"/>
4226
4236
 
4227
- 4. Fill in the information in the pop-up editor, enter \`FlashDuty\` as the name
4237
+ 4. Fill in the information in the pop-up editor, enter \`Flashduty\` as the name
4228
4238
  5. Select \`Custom Webhook\` as type and \`POST\` as request method
4229
4239
  6. Enter the **Integration Push URL** as the request URL (generated after saving the integration name on the current page)
4230
4240
  7. Keep the request headers as default and click \`Create\`
@@ -4235,7 +4245,7 @@ Choose this method when you need to route alerts to different channels based on
4235
4245
 
4236
4246
  1. Return to the \`Notification Management\` page
4237
4247
  2. Select \`Content Templates\` and click \`Create Content Template\`
4238
- 3. Fill in the relevant information, enter \`FlashDuty\` as the template name
4248
+ 3. Fill in the relevant information, enter \`Flashduty\` as the template name
4239
4249
  4. Other channel content can be empty. In the \`Custom Webhook\` notification content, enter the following template:
4240
4250
 
4241
4251
  \`\`\`
@@ -4268,11 +4278,11 @@ Choose this method when you need to route alerts to different channels based on
4268
4278
 
4269
4279
  1. Return to the \`Notification Management\` page
4270
4280
  2. Select \`Notification Groups\` and click \`Create Notification Group\`
4271
- 3. Fill in the relevant information, enter \`FlashDuty\` as the group name
4281
+ 3. Fill in the relevant information, enter \`Flashduty\` as the group name
4272
4282
  4. Configure notification rules and other settings as needed (skipped here)
4273
4283
  5. In notification channel configuration, keep \`Custom Webhook\` checked
4274
- 6. Select the **FlashDuty** channel created in **Step 1** for \`Webhook\`
4275
- 7. Select the **FlashDuty** template created in **Step 2** for \`Content Template\`
4284
+ 6. Select the **Flashduty** channel created in **Step 1** for \`Webhook\`
4285
+ 7. Select the **Flashduty** template created in **Step 2** for \`Content Template\`
4276
4286
  8. Click \`Save\` after completing other configurations
4277
4287
 
4278
4288
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/tls-4.png" alt="drawing" width="500"/>
@@ -4283,7 +4293,7 @@ Choose this method when you need to route alerts to different channels based on
4283
4293
  2. Create a new or edit an existing alert policy
4284
4294
  3. Configure alert rules as needed (skipped here)
4285
4295
  4. Click \`Associate Notification Group\` in the \`Notification Group\` section
4286
- 5. In the pop-up selection box, choose the **FlashDuty** notification group created in **Step 3**, then click \`Associate\`
4296
+ 5. In the pop-up selection box, choose the **Flashduty** notification group created in **Step 3**, then click \`Associate\`
4287
4297
  6. Click \`Create/Save\` after configuring other settings
4288
4298
 
4289
4299
  <img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/tls-5.png" alt="drawing" width="500"/>
@@ -4419,7 +4429,7 @@ Choose this method when you need to route alerts to different channels based on
4419
4429
 
4420
4430
  10. Select the devices you want to apply this configuration to, move them to the selected devices window using the right arrow, then click next
4421
4431
  11. Configure Time Window/Delayed Trigger/Recurring Trigger as needed, then click next
4422
- 12. Add the name \`FlashDuty\` for this configuration profile, then click \`Save\` to complete the setup
4432
+ 12. Add the name \`Flashduty\` for this configuration profile, then click \`Save\` to complete the setup
4423
4433
 
4424
4434
  </dev>
4425
4435
 
@@ -4491,7 +4501,7 @@ Choose this option when you need to route alerts to different channels based on
4491
4501
  1. Log in to your \`Meraki\` console and select the device you want to configure alerts for
4492
4502
  2. On the \`Alerts\` page, configure \`Cellular gateway\` and other sections as needed
4493
4503
  3. Under \`Webhooks\`, configure \`HTTPS receivers\`
4494
- 4. Enter \`FlashDuty\` for \`Name\`, and enter the **integration push URL** for \`URL\`
4504
+ 4. Enter \`Flashduty\` for \`Name\`, and enter the **integration push URL** for \`URL\`
4495
4505
  5. Leave \`Shared secret\` empty, and keep \`Payload template\` as the default \`Meraki(included)\`
4496
4506
  6. Click \`Save\` to save the settings
4497
4507
 
@@ -4516,7 +4526,7 @@ url: "https://docs.flashcat.cloud/en/flashduty/statecloud-integration-guide"
4516
4526
 
4517
4527
  Sync StateCloud monitoring alert events to Flashduty via webhook for automated alert noise reduction.
4518
4528
 
4519
- For resource monitoring events from StateCloud [secondary nodes](#secondary-nodes), please use Huawei Cloud integration. Refer to [Huawei Cloud Alert Integration Guide](https://docs.flashcat.cloud/en/flashduty/huawei-ces-integration-guide?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).
4529
+ For resource monitoring events from StateCloud [secondary nodes](#secondary-nodes), please use Huawei Cloud integration. Refer to [Huawei Cloud Alert Integration Guide](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-sources/huawei-ces).
4520
4530
 
4521
4531
 
4522
4532
  <div class="hide">
@@ -4659,7 +4669,7 @@ Choose this option when you need to route alerts to different channels based on
4659
4669
 
4660
4670
  1. Log in to your \`Guance\` console, select \`Alert Strategies\` under \`Monitoring\`
4661
4671
  2. Create new or modify existing alert policies on the \`Alert Strategies\` page
4662
- 3. In the notification configuration section of the alert strategies editing page, select \`severity\` and choose \`FlashDuty\` created in Step 1 as the \`Notification Tragets\`
4672
+ 3. In the notification configuration section of the alert strategies editing page, select \`severity\` and choose \`Flashduty\` created in Step 1 as the \`Notification Tragets\`
4663
4673
  4. Configure other options as needed and click \`Save\` to complete
4664
4674
 
4665
4675
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/guance-2.png" />
@@ -4893,7 +4903,8 @@ Go to the **Permission Management** page and apply for the following permissions
4893
4903
 
4894
4904
  - \`im:chat\`: Get and update group information
4895
4905
  - \`im:message\`: Get and send single chat and group messages
4896
- - \`contact:user.id:readonly\`: Get user ID by phone number or email <span id="war-room-scope"></span>
4906
+ - \`contact:user.id:readonly\`: Get user ID by phone number or email
4907
+ - \`im:message.group_msg\`: Read group chat history (required for AI-generated post-mortem to access war room conversations) <span id="war-room-scope"></span>
4897
4908
 
4898
4909
  ![2025-09-17-19-59-38](https://docs-cdn.flashcat.cloud/images/png/61cb9fbc295e94b4d9acd7e44ac75e13.png)
4899
4910
 
@@ -4956,7 +4967,8 @@ After completing the previous steps, in the **Enhanced Features** module of the
4956
4967
  > After exceeding API call limits, the Feishu/Lark application will not be able to push messages normally. It is recommended to use notification channels reasonably. See [Feishu/Lark official documentation](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/platform-updates-/custom-app-api-call-limit) for details.
4957
4968
  5. **Why is the war room feature not working as expected?**
4958
4969
  - Please check again whether you have configured the [required permissions](#war-room-scope) for the war room feature.
4959
- - Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,Dingtalk:`---
4970
+ - Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).
4971
+ `,Dingtalk:`---
4960
4972
  title: "Dingtalk Integration"
4961
4973
  description: "By integrating a custom Dingtalk application, you can receive and respond to alerts within Dingtalk."
4962
4974
  date: "2025-05-19T10:00:00+08:00"
@@ -5245,13 +5257,13 @@ This document supports both [integrating third-party applications](#third-party)
5245
5257
 
5246
5258
  6. On the application details page, obtain the \`Secret\` and fill it in the Flashduty integration configuration page.
5247
5259
 
5248
- 7. On the application details page, go to **Web Authorization and JS-SDK** page, click **Set Trusted Domain**, and configure **Callback domain for application OAuth 2.0 web authorization** as required.
5260
+ 7. On the application details page, go to **Web Authorization and JS-SDK** page, click **Set Trusted Domain**.
5249
5261
 
5250
5262
  > The trusted domain needs to point to Flashduty's backend address \`{api_host}\` (can be achieved through CNAME or proxy forwarding).
5251
5263
  >
5252
5264
  > For trusted domain requirements, see the official WeCom documentation [《Internal Development Domain Configuration Guide》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754).
5253
5265
 
5254
- ![2025-09-18-13-08-43](https://docs-cdn.flashcat.cloud/images/png/8509e75449c933c3f750c93ce621e641.png)
5266
+ ![2025-10-15-10-30-03](https://docs-cdn.flashcat.cloud/images/png/993ba70e9a13ee0256120b491dda007a.png)
5255
5267
 
5256
5268
  Return to the Flashduty integration configuration page, fill in this domain, and complete the verification.
5257
5269
 
@@ -5265,9 +5277,20 @@ This document supports both [integrating third-party applications](#third-party)
5265
5277
 
5266
5278
  ![2025-09-18-13-10-56](https://docs-cdn.flashcat.cloud/images/png/9a1bee272010ceaa38d2f39025215379.png)
5267
5279
 
5268
- 10. Company's Trusted IP : 47.94.95.118; 123.56.8.183; 47.94.193.81; 1.13.19.96
5269
5280
 
5270
- ![2025-09-19-11-06-36](https://docs-cdn.flashcat.cloud/images/png/0aa3c0129f7c99785ea77d088cd65774.png)
5281
+ 10. Configure **Frontend Trusted Domain**
5282
+
5283
+ > The trusted domain needs to point to Flashduty's frontend address \`console.flashcat.cloud\` (can be implemented through CNAME or proxy forwarding).
5284
+ >
5285
+ > For requirements regarding trusted domains, please refer to the WeCom official documentation ['Enterprise Internal Development Domain Configuration Guide'](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754).
5286
+
5287
+ After the frontend trusted domain verification passes, configure the generated **homepage address** to the WeCom application's **workbench application homepage**.
5288
+
5289
+ ![2025-10-14-19-52-19](https://docs-cdn.flashcat.cloud/images/png/cfd963b52a332082fc46ae12021ae73d.png)
5290
+
5291
+ 11. Configure **Trusted IP Address**: \`47.93.12.134\`
5292
+
5293
+ ![2025-10-14-20-28-20](https://docs-cdn.flashcat.cloud/images/png/d9c2184ba459bda0c3302e7634ccf48c.png)
5271
5294
 
5272
5295
  ## 3. Configure war room
5273
5296
 
@@ -5308,7 +5331,9 @@ After completing the previous steps, in the **Enhanced Features** module of the
5308
5331
  7. **Incident notification failed with prompt \`WeCom license not activated\`?**
5309
5332
  - Please contact Flashduty customer service or your dedicated technical support to purchase and activate the license for you.
5310
5333
  8. **Why is the war room feature not working as expected?**
5311
- - Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,Slack:`---
5334
+ - Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).
5335
+ 9. **Why does it prompt "redirect_uri needs to use the application's trusted domain" when opening the app in the WeCom workspace?**
5336
+ - Please confirm whether the domain in the \`redirect_uri\` parameter of the **App Homepage** URL has completed the domain ownership verification required by WeCom. For details, see the WeCom official documentation ['Enterprise Internal Development Domain Configuration Guide'](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754).`,Slack:`---
5312
5337
  title: "Slack Integration"
5313
5338
  description: "By integrating the Slack third-party application, you can receive and respond to alerts within Slack."
5314
5339
  date: "2025-05-19T10:00:00+08:00"
@@ -5332,6 +5357,8 @@ By integrating the Slack third-party application, you can receive and respond to
5332
5357
 
5333
5358
  After completing the previous steps, in the **Enhanced Features** module of the Flashduty integration configuration page, check **Enable War Room** to enable this feature without additional configuration.
5334
5359
 
5360
+ To enable AI-generated post-mortem with war room chat history, the app requires additional \`channels:history\` permission. For existing Slack integrations, you need to manually re-authorize to grant this permission.
5361
+
5335
5362
  ## 3. FAQ
5336
5363
 
5337
5364
  ---
@@ -5362,7 +5389,8 @@ After completing the previous steps, in the **Enhanced Features** module of the
5362
5389
  - If the error persists after retrying, please contact customer service to record and resolve new issues.
5363
5390
  9. **Why is the war room feature not working as expected?**
5364
5391
  - For previously authorized Slack IM integrations, you need to manually reauthorize Slack in the Flashduty integration configuration page to grant the application the additional permissions required for the war room feature.
5365
- - Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,MicrosoftTeams:`---
5392
+ - Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).
5393
+ `,MicrosoftTeams:`---
5366
5394
  title: "Microsoft Teams Integration"
5367
5395
  description: "By integrating the Microsoft Teams third-party application, you can receive and respond to alerts within Microsoft Teams."
5368
5396
  date: "2025-05-19T10:00:00+08:00"
@@ -5380,10 +5408,10 @@ This step needs to be completed by a Microsoft Teams administrator.
5380
5408
  :::
5381
5409
 
5382
5410
  ### 1. Download application
5383
- Download [FlashDutyBot-v1.0.3.zip](https://flashduty-docs.oss-cn-beijing.aliyuncs.com/docs/FlashdutyBot-v1.0.3.zip) to your local device.
5411
+ Download [FlashdutyBot-v1.0.3.zip](https://flashduty-docs.oss-cn-beijing.aliyuncs.com/docs/FlashdutyBot-v1.0.3.zip) to your local device.
5384
5412
 
5385
5413
  ### 2. Install application
5386
- In Microsoft Teams, navigate to +Apps → Manage your apps → Upload an app → **Upload an app to your org's app catalog**, then upload the application package \`FlashDutyBot.zip\`.
5414
+ In Microsoft Teams, navigate to +Apps → Manage your apps → Upload an app → **Upload an app to your org's app catalog**, then upload the application package \`FlashdutyBot.zip\`.
5387
5415
 
5388
5416
  ![2025-09-18-13-48-04](https://docs-cdn.flashcat.cloud/images/png/bfa4afaf489c3582e858cad99eb76ae5.png)
5389
5417
 
@@ -5543,13 +5571,11 @@ email | string | Yes | Email address
5543
5571
  | alert_key | string | Yes | Alert correlation basis |
5544
5572
  | alert_severity | string | Yes | Severity level, enum: Critical, Warning, Info |
5545
5573
  | alert_status | string | Yes | Alert status, enum: Critical, Warning, Info, Ok |
5546
- | progress | string | Yes | Processing progress, enum: Triggered, Closed |
5547
5574
  | created_at | int64 | Yes | Creation time |
5548
5575
  | updated_at | int64 | Yes | Update time |
5549
5576
  | start_time | int64 | Yes | First trigger time (time of first event received by platform), Unix timestamp in seconds |
5550
5577
  | last_time | int64 | Yes | Latest event time (time of most recent event received by platform), Unix timestamp in seconds |
5551
5578
  | end_time | int64 | No | Alert recovery time (time when platform last received end-type event), Unix timestamp in seconds, defaults to 0 |
5552
- | close_time | int64 | No | Closure time, different from end_time, this indicates progress closure, not actual alert recovery. Unix timestamp in seconds, defaults to 0 |
5553
5579
  | labels | map[string]string | No | Label key-value pairs, both Key and Value are strings |
5554
5580
  | event_cnt | int64 | No | Number of associated events |
5555
5581
  | incident | [Incident](#Incident) | No | Associated incident |
@@ -5582,13 +5608,12 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5582
5608
  "alert_status":"Warning",
5583
5609
  "channel_id":1163577812973,
5584
5610
  "channel_name":"Order System",
5585
- "close_time":0,
5586
5611
  "created_at":1683766015,
5587
5612
  "data_source_id":1571358104973,
5588
5613
  "data_source_name":"Aliyun SLS",
5589
5614
  "data_source_ref_id":"",
5590
5615
  "data_source_type":"aliyun-sls.alert",
5591
- "description":"Test alert trigger to FlashDuty",
5616
+ "description":"Test alert trigger to Flashduty",
5592
5617
  "end_time":0,
5593
5618
  "event_cnt":1,
5594
5619
  "incident":{
@@ -5600,7 +5625,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5600
5625
  "alert_type":"sls_alert",
5601
5626
  "alert_url":"https://sls.console.aliyun.com/lognext/project/sls-api-testing/alert/alert-1683548531-071659",
5602
5627
  "aliuid":"1082109605037616",
5603
- "check":"Test send to FlashDuty",
5628
+ "check":"Test send to Flashduty",
5604
5629
  "fire_results":"{\\"_col0\\":\\"true\\"}",
5605
5630
  "fire_results_count":"1",
5606
5631
  "project":"sls-api-testing",
@@ -5610,9 +5635,8 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5610
5635
  "severity":"6"
5611
5636
  },
5612
5637
  "last_time":1683809153,
5613
- "progress":"Triggered",
5614
5638
  "start_time":1683766013,
5615
- "title":"Test alert trigger to FlashDuty",
5639
+ "title":"Test alert trigger to Flashduty",
5616
5640
  "title_rule":"$resource::$check",
5617
5641
  "updated_at":1683809170
5618
5642
  },
@@ -5631,11 +5655,14 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5631
5655
 
5632
5656
  1. **Is there a response timeout for the service?**
5633
5657
 
5634
- - The service must respond within 1 second, after which the response is considered failed
5658
+ - Services must respond within 2 second, responses after 2 second are considered failed
5635
5659
 
5636
5660
  2. **Will failed pushes continue to be pushed?**
5637
5661
 
5638
- - Currently, FlashDuty pushes only once, though retry mechanisms may be introduced in the future. Retries may also occur due to middleware timeouts, so implement idempotent processing
5662
+ For specific network errors, retries will be attempted up to a maximum of 1 times:
5663
+ - context deadline exceeded (excluding cases involving "awaiting headers")
5664
+ - i/o timeout
5665
+ - eof
5639
5666
 
5640
5667
  3. **How is push order guaranteed?**
5641
5668
 
@@ -5839,11 +5866,14 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
5839
5866
 
5840
5867
  1. **Is there a response timeout for the service?**
5841
5868
 
5842
- - Services must respond within 1 second, responses after 1 second are considered failed
5869
+ - Services must respond within 2 second, responses after 2 second are considered failed
5843
5870
 
5844
5871
  2. **Will failed pushes continue to be pushed?**
5845
5872
 
5846
- - Currently, FlashDuty pushes only once, though retry mechanisms may be introduced in the future. Retries may also occur due to middleware timeouts, so implement idempotent processing
5873
+ For specific network errors, retries will be attempted up to a maximum of 1 times:
5874
+ - context deadline exceeded (excluding cases involving "awaiting headers")
5875
+ - i/o timeout
5876
+ - eof
5847
5877
 
5848
5878
  3. **How is push order guaranteed?**
5849
5879
 
@@ -5856,7 +5886,7 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
5856
5886
 
5857
5887
  ## I. Creating Actions
5858
5888
 
5859
- 1. Log in to the FlashDuty console and navigate to [Integration Center-Webhook]
5889
+ 1. Log in to the Flashduty console and navigate to [Integration Center-Webhook]
5860
5890
  2. Click to add a Custom Action integration
5861
5891
  3. Configure the action name, which will appear as a button in the incident details
5862
5892
  4. Configure channels (multiple can be configured, but each channel can have up to three custom actions)
@@ -5949,13 +5979,11 @@ acknowledged_at | int64| No | Acknowledgment time
5949
5979
  | alert_key | string | Yes | Alert correlation basis |
5950
5980
  | alert_severity | string | Yes | Severity level, enum: Critical, Warning, Info |
5951
5981
  | alert_status | string | Yes | Alert status, enum: Critical, Warning, Info, Ok |
5952
- | progress | string | Yes | Processing progress, enum: Triggered, Closed |
5953
5982
  | created_at | int64 | Yes | Creation time |
5954
5983
  | updated_at | int64 | Yes | Update time |
5955
5984
  | start_time | int64 | Yes | First trigger time (time of first event received by platform), Unix timestamp in seconds |
5956
5985
  | last_time | int64 | Yes | Latest event time (time of latest event received by platform), Unix timestamp in seconds |
5957
5986
  | end_time | int64 | No | Alert recovery time (time of last end-type event received by platform), Unix timestamp in seconds, default 0 |
5958
- | close_time | int64 | No | Close time, different from end_time, this is processing progress closure, doesn't mean alert actually recovered. Unix timestamp in seconds, default 0 |
5959
5987
  | labels | map[string]string | No | Label KV pairs, both Key and Value are strings |
5960
5988
 
5961
5989
  </div>
@@ -5986,7 +6014,6 @@ curl -X POST 'https://example.com/incident/action?a=a' \\
5986
6014
  "alert_key": "asdflasdfl2xzasd112621",
5987
6015
  "alert_severity": "Critical",
5988
6016
  "alert_status": "Critical",
5989
- "close_time": 0,
5990
6017
  "created_at": 1699869567,
5991
6018
  "data_source_id": 2398086111504,
5992
6019
  "description": "cpu.idle < 20%",
@@ -6002,10 +6029,6 @@ curl -X POST 'https://example.com/incident/action?a=a' \\
6002
6029
  "v": "v"
6003
6030
  },
6004
6031
  "last_time": 1699869562,
6005
- "progress": "Triggered",
6006
- "responder_email": "",
6007
- "responder_id": 0,
6008
- "responder_name": "",
6009
6032
  "start_time": 1699869562,
6010
6033
  "title": "nj / es.nj.01 - 自定义字段测试",
6011
6034
  "title_rule": "$cluster::$resource::$check",
@@ -6091,7 +6114,7 @@ When host memory or CPU is maxed out, trigger host restart scripts for quick rec
6091
6114
 
6092
6115
  ### Information Enrichment
6093
6116
 
6094
- When an incident occurs, callback to your service to retrieve Tracing, Logging, topology, and other information based on alert details. Actively call FlashDuty Open API to update incident information, such as adding labels or setting custom fields to assist troubleshooting.
6117
+ When an incident occurs, callback to your service to retrieve Tracing, Logging, topology, and other information based on alert details. Actively call Flashduty Open API to update incident information, such as adding labels or setting custom fields to assist troubleshooting.
6095
6118
 
6096
6119
  ### Rollback Changes
6097
6120
 
@@ -6233,10 +6256,8 @@ Title | string | Yes | Alert title
6233
6256
  Description | string | Yes | Alert description, can be empty
6234
6257
  AlertSeverity | string | Yes | Severity level, enum values: Critical, Warning, Info
6235
6258
  AlertStatus | string | Yes | Alert status, enum values: Critical, Warning, Info, Ok
6236
- Progress | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
6237
6259
  StartTime | int64 | Yes | Trigger time, Unix timestamp in seconds
6238
6260
  EndTime | int64 | No | Recovery time, Unix timestamp in seconds, default 0
6239
- 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
6240
6261
  \`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings
6241
6262
 
6242
6263
  ## Common Questions
@@ -6658,7 +6679,8 @@ If you want to display only key label information, you can refer to the code seg
6658
6679
  \`\`\`
6659
6680
  </div>
6660
6681
 
6661
- <div class="sms hide">
6682
+ <div class="feishu hide">
6683
+
6662
6684
 
6663
6685
  ## Feishu/Lark Bot
6664
6686
  ---
@@ -6928,6 +6950,7 @@ Description:{{toHtml .Description}}{{end}}{{if gt (len .Responders) 0}}
6928
6950
  Responders:{{range .Responders}}@{{.PersonName}} {{end}}{{end}}
6929
6951
  <br>Details:{{.DetailUrl}}
6930
6952
  \`\`\`
6953
+
6931
6954
  </div>
6932
6955
 
6933
6956
  <div class="dingtalk hide">
@@ -7172,6 +7195,19 @@ You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Sever
7172
7195
  \`\`\`
7173
7196
  </div>
7174
7197
 
7198
+
7199
+ <div class="voice hide">
7200
+
7201
+ ## Voice
7202
+ ---
7203
+ If no custom content is set, the system default template will be used for notifications:
7204
+
7205
+ \`\`\`go
7206
+ You have a pending incident: {{toHtml .Title}}, Channel: {{.ChannelName}}, Severity: {{.IncidentSeverity}}{{if gt .AlertCnt 1}}, Grouped {{.AlertCnt}} alerts{{end}}
7207
+ \`\`\`
7208
+ </div>
7209
+
7210
+
7175
7211
  <div class="email hide">
7176
7212
 
7177
7213
  ## Email
@@ -7186,80 +7222,319 @@ If no custom content is set, the system default template will be used for notifi
7186
7222
 
7187
7223
  <head data-id="__react-email-head">
7188
7224
  <style>
7189
- .bg-Critical { background-color: #C80000; }
7190
- .bg-Warning { background-color: #FA7D00; }
7191
- .bg-Info { background-color: #FABE00; }
7192
- .bg-Ok { background-color: rgb(132 204 22); }
7193
- .text-Critical { color: #C80000; }
7194
- .text-Warning { color: #FA7D00; }
7195
- .text-Info { color: #FABE00; }
7196
- .text-Ok { color: rgb(132 204 22); }
7197
- .text-title {font-weight:500;width:6rem;flex-shrink:0}
7198
- .text-content {color:rgb(55,65,81)}
7225
+ /* Light mode colors */
7226
+ :root {
7227
+ --bg-color: rgb(255, 255, 255);
7228
+ --text-color: rgb(55, 65, 81);
7229
+ --label-key-color: #000;
7230
+ --section-bg: rgb(255, 255, 255);
7231
+ --border-color: rgb(229, 231, 235);
7232
+ }
7233
+
7234
+ /* Dark mode colors */
7235
+ @media (prefers-color-scheme: dark) {
7236
+ :root {
7237
+ --bg-color: rgb(31, 41, 55);
7238
+ --text-color: rgb(209, 213, 219);
7239
+ --label-key-color: rgb(229, 231, 235);
7240
+ --section-bg: rgb(17, 24, 39);
7241
+ --border-color: rgb(75, 85, 99);
7242
+ }
7243
+ }
7244
+
7245
+ /* Severity background colors */
7246
+ .severity-Critical {
7247
+ background-color: #C80000;
7248
+ color: #ffffff;
7249
+ padding: 4px 12px;
7250
+ border-radius: 12px;
7251
+ display: inline-block;
7252
+ font-weight: 600;
7253
+ font-size: 13px;
7254
+ }
7255
+ .severity-Warning {
7256
+ background-color: #fef3c7;
7257
+ color: #92400e;
7258
+ padding: 4px 12px;
7259
+ border-radius: 12px;
7260
+ display: inline-block;
7261
+ font-weight: 600;
7262
+ font-size: 13px;
7263
+ }
7264
+ .severity-Info {
7265
+ background-color: rgb(108,83,177);
7266
+ color: #ffffff;
7267
+ padding: 0.25rem 0.75rem;
7268
+ border-radius: 0.25rem;
7269
+ display: inline-block;
7270
+ font-weight: 500;
7271
+ }
7272
+ .severity-Ok {
7273
+ background-color: rgb(132 204 22);
7274
+ color:rgb(100, 239, 73);
7275
+ padding: 0.25rem 0.75rem;
7276
+ border-radius: 0.25rem;
7277
+ display: inline-block;
7278
+ font-weight: 500;
7279
+ }
7280
+
7281
+ /* Progress status colors */
7282
+ .progress-Triggered {
7283
+ background-color: #dbeafe;
7284
+ color: #1e40af;
7285
+ padding: 4px 12px;
7286
+ border-radius: 12px;
7287
+ display: inline-block;
7288
+ font-weight: 600;
7289
+ font-size: 13px;
7290
+ }
7291
+ .progress-Acknowledged {
7292
+ background-color: #ede9fe;
7293
+ color: #6b21a8;
7294
+ padding: 4px 12px;
7295
+ border-radius: 12px;
7296
+ display: inline-block;
7297
+ font-weight: 600;
7298
+ font-size: 13px;
7299
+ }
7300
+ .progress-Resolved {
7301
+ background-color: #d1fae5;
7302
+ color: #065f46;
7303
+ padding: 4px 12px;
7304
+ border-radius: 12px;
7305
+ display: inline-block;
7306
+ font-weight: 600;
7307
+ font-size: 13px;
7308
+ }
7309
+ .progress-Closed {
7310
+ background-color: #f3f4f6;
7311
+ color: #374151;
7312
+ padding: 4px 12px;
7313
+ border-radius: 12px;
7314
+ display: inline-block;
7315
+ font-weight: 600;
7316
+ font-size: 13px;
7317
+ }
7318
+
7319
+ /* Field row styles */
7320
+ .field-row {
7321
+ padding: 1rem 0;
7322
+ border-bottom: 1px solid var(--border-color);
7323
+ }
7324
+ .field-row:first-child {
7325
+ padding-top: 0;
7326
+ }
7327
+ .field-row:last-child {
7328
+ border-bottom: none;
7329
+ }
7330
+ .field-label {
7331
+ color: #6b7280;
7332
+ font-size: 0.875rem;
7333
+ margin-bottom: 0.25rem;
7334
+ }
7335
+ .field-value {
7336
+ color: var(--text-color);
7337
+ word-break: break-word;
7338
+ overflow-wrap: break-word;
7339
+ }
7340
+
7341
+ body {
7342
+ background-color: var(--bg-color);
7343
+ color: var(--text-color);
7344
+ }
7345
+
7346
+ .labels-section {
7347
+ background-color: #f3f4f6;
7348
+ padding: 1rem;
7349
+ border-radius: 0.375rem;
7350
+ margin-top: 0.5rem;
7351
+ }
7352
+ @media (prefers-color-scheme: dark) {
7353
+ .labels-section {
7354
+ background-color: rgb(55, 65, 81);
7355
+ }
7356
+ }
7199
7357
  </style>
7200
7358
  </head>
7201
7359
 
7202
- <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">
7203
- <div style="width:100%;height:0.375rem;margin-bottom:2rem" class="bg-{{.IncidentSeverity}}"></div>
7204
- <div style="display:flex;align-items:center;margin-bottom:1.5rem">
7205
- <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>
7206
- </div>
7207
- <div style="background-color:rgb(243,244,246);padding:2rem;margin-top:1rem;border-radius:0.5rem">
7208
- <div style="display:flex;flex-direction:column;gap:0.75rem">
7209
- <div style="display:flex">
7210
- <div class="text-title">Title</div>
7211
- <div class="text-content">{{.Title}}</div>
7212
- </div>
7213
- <div style="display:flex">
7214
- <div class="text-title">Severity</div>
7215
- <div class="text-{{.IncidentSeverity}}">{{.IncidentSeverity}}</div>
7216
- </div>
7217
- <div style="display:flex">
7218
- <div class="text-title">Channel</div>
7219
- <div class="text-content">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</div>
7220
- </div>
7221
- <div style="display:flex">
7222
- <div class="text-title">Triggered at</div>
7223
- <div class="text-content">{{date "2006-01-02 15:04:05" .StartTime}}</div>
7224
- </div>
7225
- {{if .CreatorID}}
7226
- <div style="display:flex">
7227
- <div class="text-title">Creator</div>
7228
- <div class="text-content">{{.Creator.PersonName}}</div>
7229
- </div>
7230
- {{end}}
7231
- {{if gt (len .Responders) 0}}
7232
- <div style="display:flex">
7233
- <div class="text-title">Responders</div>
7234
- <div class="text-content">{{range .Responders}}@{{.PersonName}} {{end}}</div>
7235
- </div>
7236
- {{end}}
7237
- <div style="display:flex">
7238
- <div class="text-title">Progress</div>
7239
- <div class="text-content">{{.Progress}}</div>
7240
- </div>
7241
- <div style="display:flex">
7242
- <div class="text-title">Description</div>
7243
- <div style="color:rgb(55,65,81);margin-top:0.125rem">
7244
- <div data-id="react-email-markdown">{{toHtml .Description}}</div>
7245
- </div>
7246
- </div>
7247
- {{if .Labels.resource}}
7248
- <div style="display:flex;margin-bottom:0.5rem;">
7249
- <div style="color:#000;font-weight:500;width:6rem;margin-right:1rem;">Alert targets</div>
7250
- <div style="color:rgb(55,65,81);margin-top:0.125rem">
7251
- <div data-id="react-email-markdown">{{toHtml (joinAlertLabels . "resource" ", ")}}</div>
7252
- </div>
7253
- </div>
7254
- {{end}}
7255
- </div>
7256
- <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>
7257
- </div>
7258
- <div style="display:flex;justify-content:flex-end;align-items:flex-end;margin-top:2rem">
7259
- <div style="font-size:0.875rem;line-height:1.25rem;font-weight:500">ALL RIGHTS RESERVED © Beijing Flashcat Cloud Technology Co.,Ltd.</div>
7260
- </div>
7360
+ <body data-id="__react-email-body" style="margin:0;padding:0;background-color:#f3f4f6;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">
7361
+ <!-- Outer wrapper table for centering -->
7362
+ <table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:#f3f4f6">
7363
+ <tr>
7364
+ <td align="center" style="padding:40px 20px">
7365
+ <!-- Main container table with fixed width -->
7366
+ <table width="600" cellpadding="0" cellspacing="0" border="0" style="background-color:#ffffff;max-width:600px">
7367
+ <!-- Purple header bar with logo -->
7368
+ <tr>
7369
+ <td style="padding:32px 0 32px 32px;text-align:left">
7370
+ <img data-id="react-email-img" src="https://flashduty-public.oss-cn-beijing.aliyuncs.com/icons/flashduty-20251216.png" height="70" style="display:block;outline:none;border:none;text-decoration:none;height:70px;width:auto" alt="Flashduty" />
7371
+ </td>
7372
+ </tr>
7373
+
7374
+ <!-- Divider after logo -->
7375
+ <tr>
7376
+ <td style="padding:0 32px">
7377
+ <div style="border-top:1px solid #e5e7eb"></div>
7378
+ </td>
7379
+ </tr>
7380
+
7381
+ <!-- Main content -->
7382
+ <tr>
7383
+ <td style="padding:16px 32px 32px 32px">
7384
+ <!-- Title and Description -->
7385
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7386
+ <tr>
7387
+ <td>
7388
+ <h1 style="margin:0;font-size:24px;font-weight:600;color:#111827;line-height:1.5">{{.Title}}</h1>
7389
+ {{if .Description}}
7390
+ <p style="margin:8px 0 0 0;font-size:16px;color:#6b7280;line-height:1.5">{{toHtml .Description}}</p>
7391
+ {{end}}
7392
+ </td>
7393
+ </tr>
7394
+ </table>
7395
+
7396
+ <!-- Divider after title -->
7397
+ <div style="border-top:1px solid #e5e7eb;margin:32px 0"></div>
7398
+
7399
+ <!-- Fields section -->
7400
+ <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-bottom:30px">
7401
+ <tr>
7402
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7403
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7404
+ <tr>
7405
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Severity</td>
7406
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px"><span class="severity-{{.IncidentSeverity}}">{{.IncidentSeverity}}</span></td>
7407
+ </tr>
7408
+ </table>
7409
+ </td>
7410
+ </tr>
7411
+
7412
+ <tr>
7413
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7414
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7415
+ <tr>
7416
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Channel</td>
7417
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</td>
7418
+ </tr>
7419
+ </table>
7420
+ </td>
7421
+ </tr>
7422
+
7423
+ <tr>
7424
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7425
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7426
+ <tr>
7427
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Triggered at</td>
7428
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{date "2006-01-02 15:04:05" .StartTime}}</td>
7429
+ </tr>
7430
+ </table>
7431
+ </td>
7432
+ </tr>
7433
+
7434
+ {{if .CreatorID}}
7435
+ <tr>
7436
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7437
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7438
+ <tr>
7439
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Creator</td>
7440
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{.Creator.PersonName}}</td>
7441
+ </tr>
7442
+ </table>
7443
+ </td>
7444
+ </tr>
7445
+ {{end}}
7446
+
7447
+ {{if gt (len .Responders) 0}}
7448
+ <tr>
7449
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7450
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7451
+ <tr>
7452
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Responders</td>
7453
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{range .Responders}}@{{.PersonName}} {{end}}</td>
7454
+ </tr>
7455
+ </table>
7456
+ </td>
7457
+ </tr>
7458
+ {{end}}
7459
+
7460
+ <tr>
7461
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7462
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7463
+ <tr>
7464
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Progress</td>
7465
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px"><span class="progress-{{.Progress}}">{{.Progress}}</span></td>
7466
+ </tr>
7467
+ </table>
7468
+ </td>
7469
+ </tr>
7470
+
7471
+ {{if .Labels.resource}}
7472
+ <tr>
7473
+ <td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
7474
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7475
+ <tr>
7476
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Resource</td>
7477
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{(joinAlertLabels . "resource" ", ")}}</td>
7478
+ </tr>
7479
+ </table>
7480
+ </td>
7481
+ </tr>
7482
+ {{end}}
7483
+
7484
+ {{if gt (len .Labels) 0}}
7485
+ <tr>
7486
+ <td style="padding:16px 0">
7487
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
7488
+ <tr>
7489
+ <td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Labels</td>
7490
+ <td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px;background-color:#f9fafb;padding:16px">
7491
+ <pre style="margin:0;font-family:'Courier New',monospace;font-size:13px;color:#374151;white-space:pre-wrap;word-break:break-word">{{mustToPrettyJson .Labels}}</pre>
7492
+ </td>
7493
+ </tr>
7494
+ </table>
7495
+ </td>
7496
+ </tr>
7497
+ {{end}}
7498
+ </table>
7499
+
7500
+ <!-- Action buttons -->
7501
+ <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-top:32px">
7502
+ <tr>
7503
+ <td width="48%" align="center" style="padding:0">
7504
+ <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
7505
+ <tr>
7506
+ <td align="center" style="background-color:rgb(108,83,177);border-radius:6px;padding:14px 32px">
7507
+ <a href="{{.DetailUrl}}?ack=1" data-id="react-email-button" target="_blank" style="color:#ffffff;font-size:16px;font-weight:600;text-decoration:none;display:block">Acknowledge Now</a>
7508
+ </td>
7509
+ </tr>
7510
+ </table>
7511
+ </td>
7512
+ <td width="4%" style="padding:0"></td>
7513
+ <td width="48%" align="center" style="padding:0">
7514
+ <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
7515
+ <tr>
7516
+ <td align="center" style="background-color:#ffffff;border:2px solid rgb(108,83,177);border-radius:6px;padding:14px 32px">
7517
+ <a href="{{.DetailUrl}}" data-id="react-email-button" target="_blank" style="color:rgb(108,83,177);font-size:16px;font-weight:600;text-decoration:none;display:block">View Details</a>
7518
+ </td>
7519
+ </tr>
7520
+ </table>
7521
+ </td>
7522
+ </tr>
7523
+ </table>
7524
+ </td>
7525
+ </tr>
7526
+
7527
+ <!-- Footer -->
7528
+ <tr>
7529
+ <td style="background-color:#f9fafb;padding:20px;text-align:center">
7530
+ <p style="margin:0;font-size:12px;color:#9ca3af">ALL RIGHTS RESERVED © FLASHCAT.CLOUD</p>
7531
+ </td>
7532
+ </tr>
7533
+ </table>
7534
+ </td>
7535
+ </tr>
7536
+ </table>
7261
7537
  </body>
7262
-
7263
7538
  </html>
7264
7539
  \`\`\`
7265
7540
 
@@ -7320,15 +7595,15 @@ When you need to route alerts to different channels based on alert payload infor
7320
7595
 
7321
7596
  ## I. Huawei Cloud APM Alert Push Configuration
7322
7597
 
7323
- ### Create FlashDuty Alert Channel
7598
+ ### Create Flashduty Alert Channel
7324
7599
 
7325
7600
  1. Log in to your Huawei Cloud Console, search for \`SMN\` (Simple Message Notification) service and enter its console
7326
7601
  2. Select \`Topic Management=>Topics\` from the left navigation bar
7327
- 3. Click \`Create Topic\`, enter \`FlashDuty\` as the topic name in the edit page and confirm
7602
+ 3. Click \`Create Topic\`, enter \`Flashduty\` as the topic name in the edit page and confirm
7328
7603
 
7329
7604
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-1.png" alt="drawing" width="500"/>
7330
7605
 
7331
- 4. Return to the topic list and click \`Add Subscription\` in the newly created FlashDuty topic
7606
+ 4. Return to the topic list and click \`Add Subscription\` in the newly created Flashduty topic
7332
7607
 
7333
7608
  <img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-2.png" alt="drawing" width="500"/>
7334
7609
 
@@ -7344,7 +7619,7 @@ When you need to route alerts to different channels based on alert payload infor
7344
7619
 
7345
7620
  #### Step 1: Add Notification Configuration
7346
7621
  1. Log in to your \`Huawei Cloud APM\` console, under \`Application Monitoring=>Metrics\`, click \`Notification\`
7347
- 2. Select the corresponding region, click \`Add\`, and select the created \`FlashDuty\` topic
7622
+ 2. Select the corresponding region, click \`Add\`, and select the created \`Flashduty\` topic
7348
7623
  3. Click \`Confirm\` to complete the configuration
7349
7624
 
7350
7625
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-apm-1.png" />
@@ -7354,7 +7629,7 @@ When you need to route alerts to different channels based on alert payload infor
7354
7629
  2. Select \`Alarm Policy\`, click \`Add Custom Alarm Policy\` or edit an existing alarm policy
7355
7630
  3. In the \`Alarm Policy\` edit page, configure alert metrics and conditions according to your business needs
7356
7631
  4. In \`Notification Content\`, when referencing variables, it's recommended to use K:V format for easier alert parsing, such as host:\${hostInfo}
7357
- 5. In \`Notification Object\`, select the created \`FlashDuty\` notification channel
7632
+ 5. In \`Notification Object\`, select the created \`Flashduty\` notification channel
7358
7633
  6. Click \`Confirm\` to complete the configuration
7359
7634
 
7360
7635
  <img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-apm-2.png" />
@@ -7675,7 +7950,7 @@ Choose this method when you need to route alerts to different channels based on
7675
7950
  ---
7676
7951
 
7677
7952
  ### Configure ElastAlert 2 Alerts
7678
- Follow the [ElastAlert FlashDuty](https://elastalert2.readthedocs.io/en/latest/alerts.html#flashduty) push configuration document
7953
+ Follow the [ElastAlert Flashduty](https://elastalert2.readthedocs.io/en/latest/alerts.html#flashduty) push configuration document
7679
7954
 
7680
7955
  1. Create or edit the alert rule file, for example \`rules/elastalert2_alert.yaml\`.
7681
7956
  2. Fill in the \`flashduty\` alert type in the \`alert\` field.
@@ -7727,7 +8002,7 @@ filter:
7727
8002
  query_string:
7728
8003
  query: "created_at:*"
7729
8004
 
7730
- # ------- FlashDuty ----------------
8005
+ # ------- Flashduty ----------------
7731
8006
  alert: flashduty
7732
8007
  flashduty_integration_key: "xxxx"
7733
8008
  flashduty_title: "elastalert2 alert"
@@ -7742,7 +8017,7 @@ flashduty_group: "group1"
7742
8017
  flashduty_cluster: "bj"
7743
8018
  flashduty_app: "app1"
7744
8019
  flashduty_env: "dev"
7745
- # ------- FlashDuty ----------------
8020
+ # ------- Flashduty ----------------
7746
8021
  \`\`\`
7747
8022
 
7748
8023
  5. Restart ElastAlert and wait for the alert to trigger.`,DingtalkAlert:`---
@@ -7826,7 +8101,7 @@ By default, the system always creates new alerts for each message, but you can s
7826
8101
  ## Severity Mapping
7827
8102
  ---
7828
8103
 
7829
- Currently, all alerts pushed to Flashduty through the Dingtalk integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
8104
+ Currently, all alerts pushed to Flashduty through the Dingtalk integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).
7830
8105
  `,FeishuAlert:`---
7831
8106
  title: "Feishu Alert Integration"
7832
8107
  description: "Generate a unique Feishu robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Feishu"
@@ -7908,7 +8183,7 @@ By default, the system always creates new alerts for each message, but you can s
7908
8183
  ## Severity Mapping
7909
8184
  ---
7910
8185
 
7911
- Currently, all alerts pushed to Flashduty through the Feishu(lark) integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
8186
+ Currently, all alerts pushed to Flashduty through the Feishu(lark) integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).
7912
8187
  `,VolcEngineDetect:`---
7913
8188
  title: "Volcengine Cloud-Detect Alert Events"
7914
8189
  description: "Sync Volcengine Cloud-Detect alert events to Flashduty via webhook for automated alert noise reduction"
@@ -8471,7 +8746,7 @@ After configuring the Webhook channel, you can use it in notification policies.
8471
8746
 
8472
8747
  <div class="md-block">
8473
8748
 
8474
- Currently, all alerts pushed to Flashduty through the Cloudflare integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
8749
+ Currently, all alerts pushed to Flashduty through the Cloudflare integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).
8475
8750
 
8476
8751
  </div>
8477
8752
 
@@ -8536,6 +8811,88 @@ The system will generate a unique Wecom alert integration URL for you. This URL
8536
8811
 
8537
8812
  By default, the system always creates new alerts for each message, but you can switch to these modes:
8538
8813
 
8814
+ **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.
8815
+
8816
+ - You need to fill in at least one **trigger** rule
8817
+ - 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
8818
+ - You can choose whether to discard messages when none of the rules match
8819
+
8820
+ Configuration example:
8821
+
8822
+ - Receive all messages, close the alert when the message content contains **RESOLVED**, otherwise trigger a new alert
8823
+ - Extract Alert Key from messages using the rule **/(.*)/**.
8824
+
8825
+
8826
+ ### Notes
8827
+ - Wecom alert integration URL only supports Text and Markdown message types; other message types cannot be received
8828
+ - Flashduty will generate a default alert title: "Wecom robot Alert , If you need to change the title, you can customize it using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines)"
8829
+
8830
+ ## Severity Mapping
8831
+ ---
8832
+
8833
+ Currently, all alerts pushed to Flashduty through the Wecom integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).
8834
+
8835
+ ---
8836
+ title: "Wecom Alert Integration"
8837
+ description: "Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom"
8838
+ date: "2025-05-19T10:00:00+08:00"
8839
+ url: "https://docs.flashcat.cloud/en/flashduty/Wecom-alert-integration-guide"
8840
+ ---
8841
+
8842
+ Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom.
8843
+
8844
+ <div class="hide">
8845
+
8846
+ ## Operation Steps
8847
+ ---
8848
+
8849
+ ### Create Wecom Alert Integration
8850
+
8851
+ You can obtain a Wecom alert integration address through either of these two methods:
8852
+
8853
+ #### Using Dedicated Integration
8854
+
8855
+ Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
8856
+
8857
+ <details>
8858
+ <summary>Expand</summary>
8859
+
8860
+ 1. Go to the Flashduty console, select **Channel**, and enter a specific channel's details page
8861
+ 2. Select the **Integration** tab, click **Add Integration** to enter the integration page
8862
+ 3. Choose **Wecom Alert** integration and click **Save** to generate a card
8863
+ 4. Click the generated card to view the **Wecom Alert Integration URL**, copy it for later use, and you're done
8864
+
8865
+ </details>
8866
+
8867
+ #### Using Shared Integration
8868
+
8869
+ Choose this method when you need to route alerts to different channels based on the alert event's payload information.
8870
+
8871
+ <details>
8872
+ <summary>Expand</summary>
8873
+
8874
+ 1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
8875
+ 2. Select **Wecom Alert** integration:
8876
+ - **Integration Name**: Define a name for the current integration
8877
+ - **Message Type**: Select Wecom alert message type, currently only Text and Markdown are supported
8878
+ - **Push Mode**: Choose when to trigger or recover alerts for Wecom notifications
8879
+ 3. Copy the **Wecom Alert Integration URL** for later use
8880
+ 4. Configure the default route and select the corresponding channel (after integration creation, you can go to \`Routes\` to configure more routing rules)
8881
+ 5. Done
8882
+
8883
+ </details>
8884
+ </div>
8885
+
8886
+ ### Customize Wecom Alert Integration
8887
+
8888
+ #### Wecom Alert Integration URL
8889
+
8890
+ The system will generate a unique Wecom alert integration URL for you. This URL is compatible with Wecom robot message protocol. When platforms only support Wecom robot channels, you can use this URL to receive corresponding messages.
8891
+
8892
+ #### Push Mode
8893
+
8894
+ By default, the system always creates new alerts for each message, but you can switch to these modes:
8895
+
8539
8896
  **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.
8540
8897
 
8541
8898
  - You need to fill in at least one **trigger** rule
@@ -8550,12 +8907,12 @@ By default, the system always creates new alerts for each message, but you can s
8550
8907
 
8551
8908
  ### Notes
8552
8909
  - Wecom alert integration URL only supports Text and Markdown message types; other message types cannot be received
8553
- - Flashduty will generate a default alert title: "Wecom robot Alert , If you need to change the title, you can customize it using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines)"
8910
+ - Flashduty will generate a default alert title: "Wecom robot Alert , If you need to change the title, you can customize it using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines)"
8554
8911
 
8555
8912
  ## Severity Mapping
8556
8913
  ---
8557
8914
 
8558
- Currently, all alerts pushed to Flashduty through the Wecom integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).`,ServiceDeskPlusSync:`---
8915
+ Currently, all alerts pushed to Flashduty through the Wecom integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).`,ServiceDeskPlusSync:`---
8559
8916
  title: "ServiceDesk Plus Sync"
8560
8917
  description: "Sync incidents with ServiceDesk Plus requests through ServiceDesk Plus sync webhook."
8561
8918
  date: "2025-05-19T10:00:00+08:00"
@@ -8627,30 +8984,19 @@ Please select the corresponding API Endpoint and Accounts Server URL according t
8627
8984
  - Manual Trigger: Requires manual triggering of ServiceDesk Plus sync in the More Actions section of the incident details page (the integration configuration name is the trigger name).
8628
8985
 
8629
8986
  5. **Channel:** Select the channel where this integration takes effect.
8630
- 6. **Request Template:** Select the template to use when creating requests.
8631
- 7. **Severity Mapping:** The mapping relationship between Flashduty severity and ServiceDesk Plus priority. For default mapping relationship, please refer to [Priority Mapping](#priority-mapping).
8987
+ 6. **Request Template:** Select the template to use when creating requests. If empty, the default template will be used to create the request.
8988
+ 7. **Severity Mapping:** You can choose to map the values of severity, incident labels, or custom fields to the Priority field in ServiceDesk Plus. If empty, this field will not be passed when creating requests.
8632
8989
  8. **Custom Field Mapping:** You can map labels or custom fields in incidents to corresponding text fields in ServiceDesk Plus tickets to achieve automatic information filling. This feature supports syncing common context information (such as service name, instance address, metric name, etc.) to ServiceDesk Plus for subsequent troubleshooting and tracking.
8633
8990
  - Only supports target fields of single-line text or multi-line text type.
8634
8991
  - Supports extracting values from incident labels (such as service, instance) or custom attributes.
8635
8992
  - If the source field is empty, the target field will also remain empty and will not overwrite existing content.
8636
- - Mapping configuration is managed uniformly in integration settings without manual filling each time.
8637
8993
 
8638
8994
  9. **Assignee Mapping:** When Flashduty incidents are synced to ServiceDesk Plus and need to be automatically assigned to Technician or Group, you can get the value of Flashduty incident labels as the assignee (if the corresponding assignee does not exist, it will cause sync failure, please choose carefully).
8639
-
8640
- 10. Click \`Save\` to complete the configuration.
8995
+ 10. **Requester:** The requester to be specified when creating a request. This needs to be configured if the field is mandatory when creating requests.
8996
+ 11. Click \`Save\` to complete the configuration.
8641
8997
 
8642
8998
  ### In ServiceDesk Plus
8643
- #### Step 2 Create Requester
8644
- When Flashduty incidents are synced to ServiceDesk Plus, the Requester automatically set by the system
8645
-
8646
- 1. Log in to the ServiceDesk Plus console and find the \`Setup\` configuration page.
8647
- 2. Select \`Users & Permissions\`, then enter the \`Users\` creation page and select \`New Requester\`.
8648
- 3. Fill in **flashduty** for \`Name (Display Name)\` and \`First Name\`, fill in **flashduty-sync@flashcat.cloud** for \`Email\`.
8649
- 4. Other settings can be configured as needed, click \`Save\` to save the configuration.
8650
-
8651
- ![2025-09-24-15-03-31](https://docs-cdn.flashcat.cloud/images/png/9ee174f85ac918476888efd759511d31.png)
8652
-
8653
- #### Step 3 Configure Sync <span id="configure-sync"></span>
8999
+ #### Step 2 Configure Sync <span id="configure-sync"></span>
8654
9000
  To achieve synchronization of ServiceDesk Plus requests to Flashduty, please refer to this configuration item. **Note:** Different versions may have slightly different paths, but the configuration method is the same.
8655
9001
  ##### Create Webhook
8656
9002
  1. Log in to the ServiceDesk Plus console and find the \`Setup\` configuration page.
@@ -8689,7 +9035,7 @@ To achieve synchronization of ServiceDesk Plus requests to Flashduty, please ref
8689
9035
 
8690
9036
  ![2025-09-23-13-32-32](https://docs-cdn.flashcat.cloud/images/png/94ca1d094ed38ebcaf299364eddfd0ac.png)
8691
9037
 
8692
- ##### Create Trigger
9038
+ ##### Step 3 Create Trigger
8693
9039
  1. Log in to the ServiceDesk Plus console and find the \`Setup\` configuration page.
8694
9040
  2. Select \`Automation\`, then enter the \`Triggers\` page and select \`Request\`.
8695
9041
  3. Click \`New Trigger\`, fill in **to_Flashduty** for \`Name\` in the edit page.
@@ -8729,14 +9075,6 @@ To achieve synchronization of ServiceDesk Plus requests to Flashduty, please ref
8729
9075
  | Canceled | CLosed | |
8730
9076
  | Rejected | CLosed | |
8731
9077
 
8732
- ### Priority Mapping <span id="priority-mapping"></span>
8733
-
8734
- | ServiceDesk Plus | Flashduty | Notes |
8735
- | ---------- | --------- | ----- |
8736
- | Low | Info | |
8737
- | Medium | Warning | |
8738
- | High | Critical | |
8739
-
8740
9078
 
8741
9079
  ## FAQ
8742
9080
 
@@ -8744,4 +9082,861 @@ To achieve synchronization of ServiceDesk Plus requests to Flashduty, please ref
8744
9082
  <summary> Can the Scope be changed</summary>
8745
9083
  No, the Scope currently used is already the smallest unit. Flashduty needs to perform get/create/update operations when syncing requests with ServiceDesk Plus, and needs to obtain priority/custom field lists when configuring integration, so corresponding permission support is required.
8746
9084
  </details>
9085
+ `,Harbor:`---
9086
+ title: "Harbor Alert Events"
9087
+ description: "Sync Harbor alert events to Flashduty via webhook for automated alert noise reduction"
9088
+ date: "2024-07-05T10:00:00+08:00"
9089
+ url: "https://docs.flashcat.cloud/en/flashduty/volcengine-tls-integration-guide"
9090
+ ---
9091
+
9092
+ Sync Harbor alert events to Flashduty via webhook for automated alert noise reduction.
9093
+
9094
+ <div class="hide">
9095
+
9096
+ ## In Flashduty
9097
+ ---
9098
+ You can obtain an integration push URL through either of these two methods:
9099
+
9100
+ ### Using Private Integration
9101
+
9102
+ Choose this method when you don't need to route alert events to different channels - it's simpler.
9103
+
9104
+ <details>
9105
+ <summary>Expand</summary>
9106
+
9107
+ 1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
9108
+ 2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
9109
+ 3. Choose **Harbor** integration and click **Save** to generate a card
9110
+ 4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
9111
+
9112
+ </details>
9113
+
9114
+ ### Using Shared Integration
9115
+
9116
+ Choose this method when you need to route alerts to different channels based on the alert event payload.
9117
+
9118
+ <details>
9119
+ <summary>Expand</summary>
9120
+
9121
+ 1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
9122
+ 2. Select **Harbor** integration:
9123
+ - **Integration Name**: Define a name for this integration
9124
+ 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)
9125
+ 4. Click **Save** and copy the newly generated **push URL** for later use
9126
+ 5. Done
9127
+
9128
+ </details>
9129
+ </div>
9130
+
9131
+ ## In Harbor
9132
+ ---
9133
+
9134
+ ### Configure Webhooks
9135
+
9136
+ 1. Log in to the Harbor interface with an account that has at least project administrator privileges.
9137
+ 2. Go to \`Projects\`, select a project, and select \`Webhooks\`.
9138
+ 3. Select notify type \`HTTP\`, so the webhook will be send to a HTTP endpoint.
9139
+ 4. Select payload format as \`Default or CloudEvents\` when choose the HTTP notify type.
9140
+ 5. Select events that you want to subscribe.
9141
+ 6. Enter the alert integration's <span class='integration_url'>PUSH URL</span> in the Endpoint URL field.
9142
+ 7. Click Add to create the webhook.
9143
+
9144
+ ## Severity Mapping
9145
+ ---
9146
+
9147
+ Currently, all alerts pushed to Flashduty through the Harbor integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).
9148
+
9149
+ `,LabelMappingAPI:`Configure Label Mapping API to automatically call your external API when alert events arrive, enabling dynamic enrichment and correlation of alert information. With this feature, you can automatically attach information from external data sources such as CMDB, HR systems, and more to your alerts.
9150
+
9151
+ ## I. Overview
9152
+
9153
+ The Label Mapping API allows you to build custom external services to enrich alert labels. The workflow is as follows:
9154
+
9155
+ 1. Flashduty receives an alert event
9156
+ 2. The system sends event information and the list of expected labels to your API based on configuration
9157
+ 3. Your API queries external data sources (such as CMDB, databases, etc.)
9158
+ 4. The API returns the computed enrichment labels
9159
+ 5. Flashduty attaches the returned labels to the alert
9160
+
9161
+ <span id="ApiSpec"></span>
9162
+
9163
+ ## II. API Specification
9164
+
9165
+ ### Request Method
9166
+
9167
+ <div class="md-block">
9168
+
9169
+ POST, Content-Type:"application/json"
9170
+
9171
+ </div>
9172
+
9173
+ ### Request Payload:
9174
+
9175
+ <div class="md-block">
9176
+
9177
+ | Field | Type | Required | Description |
9178
+ | :--------: | :-------------------: | :--: | :--------- |
9179
+ | result_label_keys | []string | Yes | List of expected label keys to return, configured by users in Flashduty |
9180
+ | event | [Event](#Event) | Yes | Complete information of the current alert event |
9181
+
9182
+ <span id="Event"></span>
9183
+ **Event**:
9184
+
9185
+ | Field | Type | Required | Description |
9186
+ | :--------: | :-------------------: | :--: | :--------- |
9187
+ | account_id | int64 | Yes | Account ID |
9188
+ | channel_id | int64 | Yes | Channel ID |
9189
+ | data_source_id | int64 | Yes | Data source ID |
9190
+ | data_source_type | string | Yes | Data source type, e.g., prometheus, zabbix, etc. |
9191
+ | title | string | Yes | Alert title |
9192
+ | title_rule | string | No | Title rule |
9193
+ | description | string | No | Alert description |
9194
+ | alert_key | string | Yes | Alert unique identifier |
9195
+ | alert_id | string | Yes | Alert ID |
9196
+ | event_severity | string | Yes | Event severity, enum: Critical, Warning, Info |
9197
+ | event_status | string | Yes | Event status, enum: Critical, Warning, Info, Ok |
9198
+ | event_time | int64 | Yes | Event time, Unix timestamp in seconds |
9199
+ | labels | map[string]string | No | Alert original label key-value pairs |
9200
+ | images | []string | No | List of alert-related images |
9201
+
9202
+ </div>
9203
+
9204
+ ### Request Example
9205
+
9206
+ <div class="md-block">
9207
+
9208
+ \`\`\`json
9209
+ {
9210
+ "result_label_keys": ["owner_team", "service_tier", "host_ip"],
9211
+ "event": {
9212
+ "account_id": 1,
9213
+ "channel_id": 20,
9214
+ "data_source_id": 15,
9215
+ "data_source_type": "prometheus",
9216
+ "description": "CPU usage for instance '10.0.1.101:9100' is over 95%",
9217
+ "title": "High CPU Usage on instance 10.0.1.101:9100",
9218
+ "title_rule": "",
9219
+ "alert_key": "d41d8cd98f00b204e9800998ecf8427e",
9220
+ "alert_id": "62d6c0f6b8f1b2b3c4d5e6f7",
9221
+ "event_severity": "Critical",
9222
+ "event_status": "Critical",
9223
+ "event_time": 1678886400,
9224
+ "labels": {
9225
+ "region": "us-east-1",
9226
+ "service": "service-A",
9227
+ "env": "production",
9228
+ "instance": "10.0.1.101:9100"
9229
+ },
9230
+ "images": []
9231
+ }
9232
+ }
9233
+ \`\`\`
9234
+
9235
+ </div>
9236
+
9237
+ ### Response Specification
9238
+
9239
+ <div class="md-block">
9240
+
9241
+ **Successful Response:**
9242
+
9243
+ | Field | Type | Required | Description |
9244
+ | :--------: | :-------------------: | :--: | :--------- |
9245
+ | result_labels | map[string]string | Yes | Returned enrichment label key-value object |
9246
+
9247
+ - HTTP Status Code: \`200 OK\`
9248
+ - Response body must be a JSON object containing the \`result_labels\` field
9249
+ - Keys in \`result_labels\` must be label names specified in the request's \`result_label_keys\`
9250
+ - If a label cannot be retrieved, it **should not** be included in the response
9251
+
9252
+ **Successful Response Example:**
9253
+
9254
+ \`\`\`json
9255
+ {
9256
+ "result_labels": {
9257
+ "owner_team": "team-database",
9258
+ "service_tier": "tier-1",
9259
+ "host_ip": "10.0.1.101"
9260
+ }
9261
+ }
9262
+ \`\`\`
9263
+
9264
+ **Failure Response:**
9265
+
9266
+ | Status Code | Meaning |
9267
+ | :--------: | :--------- |
9268
+ | 404 Not Found | No data available for enrichment based on the event information |
9269
+ | 400 Bad Request | Request body format error or event object missing required fields |
9270
+ | 5xx | Unexpected internal API error (e.g., database connection failure) |
9271
+
9272
+ > **Note:** Returning \`200 OK\` status code with an empty \`result_labels: {}\` object will also be treated as "no results", but using the \`404\` status code is the more standard approach.
9273
+
9274
+ </div>
9275
+
9276
+ <span id="ServiceConfig"></span>
9277
+
9278
+ ## III. Configure Mapping Service
9279
+
9280
+ When configuring label mapping in Flashduty, you need to first create a mapping service, then reference that service in your label enrichment rules.
9281
+
9282
+ ### Mapping Service Field Description
9283
+
9284
+ <div class="md-block">
9285
+
9286
+ | Field | Type | Required | Description |
9287
+ | :--------: | :-------------------: | :--: | :--------- |
9288
+ | api_name | string | Yes | Human-readable service name for selection and reference in the UI, e.g., "CMDB Asset Query API" |
9289
+ | description | string | No | Detailed description of the service |
9290
+ | url | string | Yes | API request URL, supports template variables |
9291
+ | headers | map[string]string | No | HTTP request headers for passing custom authentication, subject to [security blacklist](#HeaderBlacklist) restrictions |
9292
+ | timeout | int | No | Request timeout (in seconds),scope: 1~3 |
9293
+ | retry_count | int | No | Number of retries after request failure, ,scope: 0~1 |
9294
+ | insecure_skip_verify | bool | No | Skip certificate verification for HTTPS requests |
9295
+ | status | string | No | Service status, e.g., enabled, disabled |
9296
+
9297
+ </div>
9298
+
9299
+ ### Label Enrichment Rule Configuration
9300
+
9301
+ When configuring label enrichment rules, you only need to focus on the following settings:
9302
+
9303
+ 1. **result_label_keys**: Specify the list of labels you expect to retrieve from the API. Flashduty will automatically combine this list with the current \`event\` object into a request body and send it to your API
9304
+ 2. **Mapping Service**: Select or configure the API service URL, Headers, and other information
9305
+
9306
+ <span id="HeaderBlacklist"></span>
9307
+
9308
+ ## IV. Header Security Constraints
9309
+
9310
+ To prevent security bypasses, request smuggling, IP spoofing, and cache poisoning, the following Headers are **prohibited** when customizing API request headers. The system gateway will automatically filter or reject requests containing these Headers.
9311
+
9312
+ <div class="md-block">
9313
+
9314
+ | Category | Blacklisted Headers | Risk Description |
9315
+ | :--- | :--- | :--- |
9316
+ | **Authentication & Authorization** | \`authorization\`, \`proxy-authorization\`, \`cookie\`, \`x-api-key\`, \`x-access-token\` | Prevents credential leakage or unauthorized hijacking of existing authentication contexts |
9317
+ | **IP & Geolocation Spoofing** | \`x-forwarded-for\`, \`x-real-ip\`, \`true-client-ip\`, \`x-client-ip\` | Prevents clients from spoofing source IP to bypass rate limits or allowlists/blocklists |
9318
+ | **Host & Routing Manipulation** | \`host\`, \`x-forwarded-host\`, \`x-forwarded-proto\`, \`x-internal-id\`, \`x-user-id\` | Prevents Host injection attacks, redirect loops, or spoofing internal system IDs |
9319
+ | **Protocol & Request Smuggling** | \`transfer-encoding\`, \`upgrade\`, \`connection\` | Prevents request smuggling attacks exploiting HTTP protocol differences |
9320
+
9321
+ </div>
9322
+
9323
+ ### Header Best Practices
9324
+
9325
+ 1. **Allowlist Mode**: It is recommended to only allow custom Headers prefixed with \`X-Custom-\` or \`X-Enrich-\`
9326
+ 2. **Length Limits**: The Key length of a single Header should not exceed 1024 bytes, the Value length of a single Header should not exceed 4096 bytes
9327
+ 3. **Format Validation**: Header Values must not contain line breaks (\`\\r\`, \`\\n\`) to prevent Header injection attacks
9328
+
9329
+ ## V. Best Practices
9330
+
9331
+ 1. **Performance First:** This API is on the critical path of alert processing and must ensure low latency. Queries to external data sources should be as fast as possible, and implementing caching is recommended.
9332
+
9333
+ 2. **Clear Error Handling:** Make good use of HTTP status codes (especially \`404\`) to convey clear execution results.
9334
+
9335
+ 3. **Idempotency:** The API design should be as idempotent as possible. Multiple calls for the same \`event\` should return the same result.
9336
+
9337
+ 4. **Security:** The API must be protected through authentication and authorization mechanisms. Using custom Headers (e.g., \`X-Custom-Auth\`) for passing authentication information is recommended.
9338
+
9339
+ ## VI. FAQ
9340
+
9341
+ 1. **Is there a response timeout for the service?**
9342
+
9343
+ - The service must respond within the configured timeout period; exceeding this is considered a failure
9344
+
9345
+ 2. **What happens if the API returns a failure?**
9346
+
9347
+ - The alert will be processed normally, but no enrichment labels will be attached
9348
+ - Based on the configured retry count, the system may retry the request
9349
+
9350
+ 3. **Can result_label_keys be changed dynamically?**
9351
+
9352
+ - Yes, you can modify the list of expected labels in Flashduty at any time without modifying the API code
9353
+ `,VolcEngineRTC:`---
9354
+ title: "Volcengine RTC Alert Events"
9355
+ description: "Sync Volcengine RTC alert events to Flashduty via webhook for automated alert noise reduction"
9356
+ date: "2024-07-05T10:00:00+08:00"
9357
+ url: "https://docs.flashcat.cloud/en/flashduty/volcengine-rtc-integration-guide"
9358
+ ---
9359
+
9360
+ Sync Volcengine RTC alert events to Flashduty via webhook for automated alert noise reduction.
9361
+
9362
+ <div class="hide">
9363
+
9364
+ ## In Flashduty
9365
+ ---
9366
+ You can obtain an integration push URL through either of these two methods:
9367
+
9368
+ ### Using Private Integration
9369
+
9370
+ Choose this method when you don't need to route alert events to different channels - it's simpler.
9371
+
9372
+ <details>
9373
+ <summary>Expand</summary>
9374
+
9375
+ 1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
9376
+ 2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
9377
+ 3. Choose **Volcengine RTC** integration and click **Save** to generate a card
9378
+ 4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
9379
+
9380
+ </details>
9381
+
9382
+ ### Using Shared Integration
9383
+
9384
+ Choose this method when you need to route alerts to different channels based on the alert event payload.
9385
+
9386
+ <details>
9387
+ <summary>Expand</summary>
9388
+
9389
+ 1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
9390
+ 2. Select **Volcengine RTC** integration:
9391
+ - **Integration Name**: Define a name for this integration
9392
+ 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)
9393
+ 4. Click **Save** and copy the newly generated **push URL** for later use
9394
+ 5. Done
9395
+
9396
+ </details>
9397
+ </div>
9398
+
9399
+ ## In Volcengine
9400
+ ---
9401
+
9402
+ ### Configure Alert Rules
9403
+
9404
+ 1. Login to your \`Volcengine\` console, find \`RTC\`, and enter the corresponding product console.
9405
+ 2. In the left menu, select \`Monitor->Alert Notifications\`, and go to the \`Alert Rules\` page.
9406
+ 3. Create or edit an alert rule, check \`Alert Callback\` on the rule page and fill in the <span class='integration_url'>push URL</span> for the alert integration.
9407
+ 4. Configure other options as needed.
9408
+ 5. Click \`Confirm\` to complete the configuration.
9409
+
9410
+ ![2026-02-05-17-32-39](https://docs-cdn.flashcat.cloud/images/png/21908f6a040f61ad2e8091226874fe97.png)
9411
+
9412
+ ## Status Mapping
9413
+
9414
+ |Volcengine RTC|Flashduty|Status|
9415
+ |---|---|---|
9416
+ |Critical|Critical|Critical|
9417
+ |Warning|Warning|Warning|
9418
+ |Notice|Info|Info|
9419
+
9420
+
9421
+ You can customize the severity through [Alert Processing Pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).`,UcloudCloudWatch:`---
9422
+ title: "Ucloud CloudWatch Alert Events"
9423
+ description: "Sync Ucloud CloudWatch alert events to Flashduty via webhook for automated alert noise reduction"
9424
+ date: "2024-07-05T10:00:00+08:00"
9425
+ url: "https://docs.flashcat.cloud/en/flashduty/ucloud-cloudwatch-integration-guide"
9426
+ ---
9427
+
9428
+ Sync Ucloud CloudWatch alert events to Flashduty via webhook for automated alert noise reduction.
9429
+
9430
+ <div class="hide">
9431
+
9432
+ ## In Flashduty
9433
+ ---
9434
+ You can obtain an integration push URL through either of these two methods:
9435
+
9436
+ ### Using Private Integration
9437
+
9438
+ Choose this method when you don't need to route alert events to different channels - it's simpler.
9439
+
9440
+ <details>
9441
+ <summary>Expand</summary>
9442
+
9443
+ 1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
9444
+ 2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
9445
+ 3. Choose **Ucloud CloudWatch** integration and click **Save** to generate a card
9446
+ 4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
9447
+
9448
+ </details>
9449
+
9450
+ ### Using Shared Integration
9451
+
9452
+ Choose this method when you need to route alerts to different channels based on the alert event payload.
9453
+
9454
+ <details>
9455
+ <summary>Expand</summary>
9456
+
9457
+ 1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
9458
+ 2. Select **Ucloud CloudWatch** integration:
9459
+ - **Integration Name**: Define a name for this integration
9460
+ 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)
9461
+ 4. Click **Save** and copy the newly generated **push URL** for later use
9462
+ 5. Done
9463
+
9464
+ </details>
9465
+ </div>
9466
+
9467
+ ## In Ucloud
9468
+ ---
9469
+
9470
+ ### Step 1: Configure Notice Template
9471
+
9472
+ 1. Login to your Ucloud console, search for \`CloudWatch\` product, and enter the corresponding product console.
9473
+ 2. In the menu, select \`Notice Management\`, and go to the \`Contact Template\` page.
9474
+ 3. Create or edit a notification template, check \`Webhook\` on the template page.
9475
+ 4. Select \`English\` for **Callback Language**, and enter the <span class='integration_url'>push URL</span> for the alert integration in the input box.
9476
+ 5. Enter \`Flashduty\` or another name for the template name.
9477
+ 6. Configure other options as needed.
9478
+ 7. Click \`Submit\` to complete the configuration.
9479
+
9480
+ ![2026-02-05-14-16-00](https://docs-cdn.flashcat.cloud/images/png/9e6ee0943b6f3ee6b942229bd456cf75.png)
9481
+
9482
+ ### Step 2: Configure Alert Policy
9483
+ 1. Login to your Ucloud console, search for \`CloudWatch\` product, and enter the corresponding product console.
9484
+ 2. In the menu, select \`Alarm Management\`, and go to the \`Alarm Policy\` page.
9485
+ 3. Create or edit an alert policy, find the **Notification Settings** on the policy configuration page, and select the notification template created in **Step 1**.
9486
+ 4. Configure other options as needed.
9487
+ 5. Click \`Submit\` to complete the configuration.
9488
+
9489
+
9490
+ ## Severity Mapping
9491
+ ---
9492
+ Currently, all Ucloud CloudWatch alert events pushed to Flashduty have a severity of Warning. You can customize the severity through [Alert Processing Pipeline](https://docs.flashcat.cloud/en/on-call/integration/alert-integration/alert-pipelines).`,Nagios:`---
9493
+ title: "Nagios Integration"
9494
+ description: "Synchronize Nagios alert events to Flashduty via script to achieve automated alert noise reduction"
9495
+ date: "2025-05-19T10:00:00+08:00"
9496
+ url: "https://docs.flashcat.cloud/en/flashduty/nagios-integration-guide"
9497
+ ---
9498
+
9499
+ Sync Nagios alert events to Flashduty via script to achieve automated alert noise reduction.
9500
+
9501
+ <div class="hide">
9502
+
9503
+ ## In Flashduty
9504
+ ---
9505
+ You can obtain an integration push URL through either of these two methods:
9506
+
9507
+ ### Using Private Integration
9508
+
9509
+ Choose this method when you don't need to route alert events to different channels - it's simpler.
9510
+
9511
+ <details>
9512
+ <summary>Expand</summary>
9513
+
9514
+ 1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
9515
+ 2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
9516
+ 3. Choose **Nagios** integration and click **Save** to generate a card
9517
+ 4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
9518
+
9519
+ </details>
9520
+
9521
+ ### Using Shared Integration
9522
+
9523
+ Choose this method when you need to route alerts to different channels based on the alert event payload.
9524
+
9525
+ <details>
9526
+ <summary>Expand</summary>
9527
+
9528
+ 1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
9529
+ 2. Select **Nagios** integration:
9530
+ - **Integration Name**: Define a name for this integration
9531
+ 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)
9532
+ 4. Click **Save** and copy the newly generated **push URL** for later use
9533
+ 5. Done
9534
+
9535
+ </details>
9536
+ </div>
9537
+
9538
+
9539
+ ## In Nagios
9540
+
9541
+ ---
9542
+
9543
+ Nagios installation paths may vary depending on the system and installation method. Please adjust the paths in the following configuration according to your actual environment.
9544
+
9545
+ ### Step 1: Download Notification Script
9546
+
9547
+ <div class="md-block">
9548
+
9549
+ Log in to the Nagios Server host and download the notification script to the Nagios plugin directory:
9550
+
9551
+ - **Debian/Ubuntu systems** (typically \`/usr/lib/nagios/plugins/\`):
9552
+
9553
+ \`\`\`bash
9554
+ cd /usr/lib/nagios/plugins/
9555
+ wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/send_to_flashduty.sh
9556
+ chmod +x send_to_flashduty.sh
9557
+ \`\`\`
9558
+
9559
+ - **RHEL/CentOS systems** (typically \`/usr/lib64/nagios/plugins/\`):
9560
+
9561
+ \`\`\`bash
9562
+ cd /usr/lib64/nagios/plugins/
9563
+ wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/send_to_flashduty.sh
9564
+ chmod +x send_to_flashduty.sh
9565
+ \`\`\`
9566
+
9567
+ - **Source installation** (typically \`/usr/local/nagios/libexec/\`):
9568
+
9569
+ \`\`\`bash
9570
+ cd /usr/local/nagios/libexec/
9571
+ wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/send_to_flashduty.sh
9572
+ chmod +x send_to_flashduty.sh
9573
+ \`\`\`
9574
+
9575
+ #### Note: The script uses the \`curl\` command. Please ensure curl is installed on your Nagios Server.
9576
+
9577
+ </div>
9578
+
9579
+ ### Step 2: Create Flashduty Configuration File
9580
+
9581
+ <div class="md-block">
9582
+
9583
+ Download the Flashduty configuration file to the Nagios configuration directory:
9584
+
9585
+ - **Debian/Ubuntu systems** (typically \`/etc/nagios3/conf.d/\`):
9586
+
9587
+ \`\`\`bash
9588
+ cd /etc/nagios3/conf.d/
9589
+ wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/flashduty.cfg
9590
+ \`\`\`
9591
+
9592
+ - **RHEL/CentOS systems** (typically \`/etc/nagios/objects/\`):
9593
+
9594
+ \`\`\`bash
9595
+ cd /etc/nagios/objects/
9596
+ wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/flashduty.cfg
9597
+ \`\`\`
9598
+
9599
+ - **Source installation** (typically \`/usr/local/nagios/etc/objects/\`):
9600
+
9601
+ \`\`\`bash
9602
+ cd /usr/local/nagios/etc/objects/
9603
+ wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/flashduty.cfg
9604
+ \`\`\`
9605
+
9606
+ </div>
9607
+
9608
+ ### Step 3: Modify Configuration File
9609
+
9610
+ <div class="md-block">
9611
+
9612
+ Edit the downloaded \`flashduty.cfg\` file and modify the following:
9613
+
9614
+ 1. Replace the \`pager\` field value with the integration push URL obtained from the Flashduty console
9615
+ 2. Modify the script path in \`command_line\` according to your Nagios installation path
9616
+
9617
+ Configuration file example:
9618
+
9619
+ \`\`\`
9620
+ define contact {
9621
+ contact_name Flashduty
9622
+ alias Flashduty Alert Receiver
9623
+ service_notification_commands notify-service-by-Flashduty
9624
+ host_notification_commands notify-host-by-Flashduty
9625
+ service_notification_options w,u,c,r
9626
+ host_notification_options d,u,r
9627
+ service_notification_period 24x7
9628
+ host_notification_period 24x7
9629
+ pager <YOUR_FLASHDUTY_PUSH_URL>
9630
+ }
9631
+
9632
+
9633
+ define command {
9634
+ command_name notify-host-by-Flashduty
9635
+ command_line <NAGIOS_PLUGIN_PATH>/send_to_flashduty.sh type=HOST WEBHOOK_URL="$CONTACTPAGER$" hostname="$HOSTNAME$" state="$HOSTSTATE$" output="$HOSTOUTPUT$" notification_type="$NOTIFICATIONTYPE$" time="$LONGDATETIME$" host_address="$HOSTADDRESS$" host_alias="$HOSTALIAS$" check_command="$HOSTCHECKCOMMAND$"
9636
+ }
9637
+
9638
+ define command {
9639
+ command_name notify-service-by-Flashduty
9640
+ command_line <NAGIOS_PLUGIN_PATH>/send_to_flashduty.sh type=SERVICE WEBHOOK_URL="$CONTACTPAGER$" hostname="$HOSTNAME$" state="$SERVICESTATE$" output="$SERVICEOUTPUT$" notification_type="$NOTIFICATIONTYPE$" time="$LONGDATETIME$" host_address="$HOSTADDRESS$" service_desc="$SERVICEDESC$" host_alias="$HOSTALIAS$" max_attempts="$MAXSERVICEATTEMPTS$"
9641
+ }
9642
+ \`\`\`
9643
+
9644
+ Parameter descriptions:
9645
+ - \`pager\`: Flashduty push URL, the integration push URL obtained from the Flashduty console
9646
+ - \`<NAGIOS_PLUGIN_PATH>\`: Replace with the actual script path, such as \`/usr/local/nagios/libexec\`
9647
+ - \`service_notification_options\`: Service alert notification options, w=warning, u=unknown, c=critical, r=recovery
9648
+ - \`host_notification_options\`: Host alert notification options, d=down, u=unreachable, r=recovery
9649
+
9650
+ **To include additional information in alerts, you can append parameters in \`key=value\` format at the end of \`command_line\`, for example: \`environment="production" region="$_HOSTREGION$"\`. These parameters will be pushed to Flashduty as labels.**
9651
+
9652
+ </div>
9653
+
9654
+ ### Step 4: Include Configuration File
9655
+
9656
+ <div class="md-block">
9657
+
9658
+ If you are using **RHEL/CentOS systems** or **source installation**, you need to include the Flashduty configuration file in the Nagios main configuration file.
9659
+
9660
+ - **RHEL/CentOS systems**: Edit \`/etc/nagios/nagios.cfg\` and add:
9661
+
9662
+ \`\`\`
9663
+ cfg_file=/etc/nagios/objects/flashduty.cfg
9664
+ \`\`\`
9665
+
9666
+ - **Source installation**: Edit \`/usr/local/nagios/etc/nagios.cfg\` and add:
9667
+
9668
+ \`\`\`
9669
+ cfg_file=/usr/local/nagios/etc/objects/flashduty.cfg
9670
+ \`\`\`
9671
+
9672
+ :::tips
9673
+ Debian/Ubuntu systems typically auto-load all configuration files in the \`/etc/nagios3/conf.d/\` directory, so manual inclusion is not required.
9674
+ :::
9675
+
9676
+ </div>
9677
+
9678
+ ### Step 5: Add Flashduty to Contact Group
9679
+
9680
+ <div class="md-block">
9681
+
9682
+ Edit the contacts configuration file to add the Flashduty contact to the \`admins\` contact group (or another contact group you use):
9683
+
9684
+ - **Debian/Ubuntu systems**: Edit \`/etc/nagios3/conf.d/contacts_nagios2.cfg\`
9685
+ - **RHEL/CentOS systems**: Edit \`/etc/nagios/objects/contacts.cfg\`
9686
+ - **Source installation**: Edit \`/usr/local/nagios/etc/objects/contacts.cfg\`
9687
+
9688
+ Find the contact group definition and add Flashduty to the members list:
9689
+
9690
+ \`\`\`
9691
+ define contactgroup {
9692
+ contactgroup_name admins
9693
+ alias Nagios Administrators
9694
+ members nagiosadmin,Flashduty
9695
+ }
9696
+ \`\`\`
9697
+
9698
+ </div>
9699
+
9700
+ ### Step 6: Verify Configuration and Restart Service
9701
+
9702
+ <div class="md-block">
9703
+
9704
+ 1. Verify the Nagios configuration file:
9705
+
9706
+ - **Debian/Ubuntu systems**:
9707
+
9708
+ \`\`\`bash
9709
+ /usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
9710
+ \`\`\`
9711
+
9712
+ - **RHEL/CentOS systems**:
9713
+
9714
+ \`\`\`bash
9715
+ /usr/sbin/nagios -v /etc/nagios/nagios.cfg
9716
+ \`\`\`
9717
+
9718
+ - **Source installation**:
9719
+
9720
+ \`\`\`bash
9721
+ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
9722
+ \`\`\`
9723
+
9724
+ 2. If verification passes, restart the Nagios service:
9725
+
9726
+ \`\`\`bash
9727
+ # Debian/Ubuntu
9728
+ systemctl restart nagios3
9729
+ # or
9730
+ service nagios3 restart
9731
+
9732
+ # RHEL/CentOS/Source installation
9733
+ systemctl restart nagios
9734
+ # or
9735
+ service nagios restart
9736
+ \`\`\`
9737
+
9738
+ 3. After configuration is complete, Nagios will automatically push alerts to Flashduty when detected
9739
+
9740
+ </div>
9741
+
9742
+ ## Status Mapping
9743
+
9744
+ ---
9745
+
9746
+ <div class="md-block">
9747
+
9748
+ Nagios to Flashduty alert severity mapping:
9749
+
9750
+ | Nagios | Flashduty | Status |
9751
+ | --------------- | --------- | -------- |
9752
+ | CRITICAL | Critical | Critical |
9753
+ | DOWN | Critical | Critical |
9754
+ | UNREACHABLE | Critical | Critical |
9755
+ | WARNING | Warning | Warning |
9756
+ | OK | Ok | Recovered |
9757
+ | UP | Ok | Recovered |
9758
+ | UNKNOWN | Info | Info |
9759
+
9760
+ </div>
9761
+ `,JDCloudMonitor:`---
9762
+ title: "JD Cloud Monitoring Alert Events"
9763
+ description: "Sync JD Cloud monitoring alert events to Flashduty via webhook for automated alert noise reduction"
9764
+ date: "2025-05-19T10:00:00+08:00"
9765
+ url: "https://docs.flashcat.cloud/en/flashduty/jdcloud-integration-guide"
9766
+ ---
9767
+
9768
+ Sync JD Cloud monitoring alert events to Flashduty via webhook for automated alert noise reduction.
9769
+
9770
+ <div class="hide">
9771
+
9772
+ ## In Flashduty
9773
+ ---
9774
+ You can obtain an integration push URL through either of these two methods:
9775
+
9776
+ ### Using Private Integration
9777
+
9778
+ Choose this method when you don't need to route alert events to different channels - it's simpler.
9779
+
9780
+ <details>
9781
+ <summary>Expand</summary>
9782
+
9783
+ 1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
9784
+ 2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
9785
+ 3. Choose **JD Cloud Monitoring** integration and click **Save** to generate a card
9786
+ 4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
9787
+
9788
+ </details>
9789
+
9790
+ ### Using Shared Integration
9791
+
9792
+ Choose this method when you need to route alerts to different channels based on the alert event payload.
9793
+
9794
+ <details>
9795
+ <summary>Expand</summary>
9796
+
9797
+ 1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
9798
+ 2. Select **JD Cloud Monitoring** integration:
9799
+ - **Integration Name**: Define a name for this integration
9800
+ 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)
9801
+ 4. Click **Save** and copy the newly generated **push URL** for later use
9802
+ 5. Done
9803
+
9804
+ </details>
9805
+
9806
+ </div>
9807
+
9808
+ ## In JD Cloud
9809
+ ---
9810
+
9811
+ ### Step 1: Create Notification Template
9812
+ 1. Login to your JD Cloud console, search for \`Monitoring\` product, and enter the corresponding product console.
9813
+ 2. In the left menu, select \`Alarm Management->Notice Templates\`, and create or edit a notification template.
9814
+ 3. Check \`Alert Callback\` on the template page, and enter the <span class='integration_url'>push URL</span> for the alert integration in the \`URL\` field.
9815
+ 4. Enter the following template content in the \`POST\` input box.
9816
+ \`\`\`
9817
+ {
9818
+ "resource_id": "\${resourceId}",
9819
+ "request_id": "\${requestId}",
9820
+ "metric": "\${metric}",
9821
+ "current_value": "\${currentValue}",
9822
+ "times": "\${times}",
9823
+ "tags": "\${tags}",
9824
+ "alert_time": "\${alertTime}",
9825
+ "region": "\${region}",
9826
+ "threshold": "\${threshold}",
9827
+ "service_code": "\${serviceCode}",
9828
+ "as_group_id": "\${asGroupId}",
9829
+ "unhealthy_instance": "\${unhealthyInstance}",
9830
+ "rule_policy_id": "\${rulePolicyId}",
9831
+ "service_code_en": "\${serviceCodeEN}",
9832
+ "service_code_cn": "\${serviceCodeCN}",
9833
+ "level": "\${level}",
9834
+ "resource_name": "\${resourceName}",
9835
+ "ip_address": "\${ipAddress}",
9836
+ "status": "\${status}"
9837
+ }
9838
+
9839
+ \`\`\`
9840
+ 5. Configure other options as needed.
9841
+ 6. Click \`Save\` to complete the configuration.
9842
+
9843
+ ### Step 2: Configure Alert Rules
9844
+ 1. Login to your JD Cloud console, search for \`Monitoring\` product, and enter the corresponding product console.
9845
+ 2. In the left menu, select \`Alarm Management->Alarm Rules\`, and create or edit an alert rule.
9846
+ 3. In the **Notification Policy** section of the rule configuration page, select \`Use Template\` and choose the template created in **Step 1**.
9847
+ 4. Configure other options as needed.
9848
+ 5. Click \`Save\` to complete the configuration.
9849
+
9850
+ ## Severity Mapping
9851
+ ---
9852
+ <div class="md-block">
9853
+
9854
+ JD Cloud Monitoring to Flashduty severity mapping:
9855
+
9856
+ | JD Cloud Monitoring | Flashduty | Status |
9857
+ | ------------------- | --------- | -------- |
9858
+ | Critical | Critical | Critical |
9859
+ | Major | Warning | Warning |
9860
+ | General | Info | Info |
9861
+
9862
+ </div>
9863
+ `,AliyunPrometheus:`---
9864
+ title: "Alibaba Cloud Monitor Prometheus"
9865
+ description: "Sync Alibaba Cloud Monitor Prometheus alert events to Flashduty via webhook for automated alert noise reduction"
9866
+ date: "2025-05-19T10:00:00+08:00"
9867
+ url: "https://docs.flashcat.cloud/en/flashduty/aliyun-prometheus-integration-guide"
9868
+ ---
9869
+
9870
+ Sync Alibaba Cloud Monitor Prometheus alert events to Flashduty via webhook for automated alert noise reduction.
9871
+
9872
+ <div class="hide">
9873
+
9874
+ ## In Flashduty
9875
+ ---
9876
+ You can obtain an integration push URL through either of these two methods:
9877
+
9878
+ ### Using Private Integration
9879
+
9880
+ Choose this method when you don't need to route alert events to different channels - it's simpler.
9881
+
9882
+ <details>
9883
+ <summary>Expand</summary>
9884
+
9885
+ 1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
9886
+ 2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
9887
+ 3. Choose **Alibaba Cloud Monitor Prometheus** integration and click **Save** to generate a card
9888
+ 4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
9889
+
9890
+ </details>
9891
+
9892
+ ### Using Shared Integration
9893
+
9894
+ Choose this method when you need to route alerts to different channels based on the alert event payload.
9895
+
9896
+ <details>
9897
+ <summary>Expand</summary>
9898
+
9899
+ 1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
9900
+ 2. Select **Alibaba Cloud Monitor Prometheus** integration:
9901
+ - **Integration Name**: Define a name for this integration
9902
+ 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)
9903
+ 4. Click **Save** and copy the newly generated **push URL** for later use
9904
+ 5. Done
9905
+
9906
+ </details>
9907
+
9908
+ </div>
9909
+
9910
+ ## In Alibaba Cloud
9911
+ ---
9912
+
9913
+ ### Step 1: Create a Custom Webhook
9914
+ 1. Login to your Alibaba Cloud console, search for \`Cloud Monitor\` product, and enter the corresponding product console.
9915
+ 2. In the left menu, select \`Prometheus Monitoring->Notification Objects\`, and create or edit a \`Custom Webhook\`.
9916
+ 3. On the edit page, enter \`Flashduty\` for both the name and identifier, and enter the <span class='integration_url'>push URL</span> for the alert integration in the \`URL\` field.
9917
+ 4. In the \`Headers\` section, set **Header Key** to **Content-Type** and **Header Value** to **application/json**.
9918
+ 5. Select **POST** for \`Method\` and **JSON** for \`Data Format\`.
9919
+ 6. Click \`OK\` to complete the configuration.
9920
+
9921
+ ### Step 2: Configure Alert Rules
9922
+ 1. Login to your Alibaba Cloud console, search for \`Cloud Monitor\` product, and enter the corresponding product console.
9923
+ 2. In the left menu, select \`Prometheus Monitoring->Alert Rules\`, and create or edit an alert rule.
9924
+ 3. In the **Notification Mode** section of the rule configuration page, select \`Simple Mode\`.
9925
+ 4. For \`Notification Object\`, select the custom webhook created in **Step 1**.
9926
+ 5. Click \`OK\` to complete the configuration.
9927
+
9928
+ ## Severity Mapping
9929
+ ---
9930
+ <div class="md-block">
9931
+
9932
+ Alibaba Cloud Prometheus to Flashduty severity mapping:
9933
+
9934
+ | Alibaba Cloud Monitor | Flashduty | Status |
9935
+ | --------------------- | --------- | -------- |
9936
+ | Critical | Critical | Critical |
9937
+ | Error | Critical | Critical |
9938
+ | Warning | Warning | Warning |
9939
+ | Normal | Info | Info |
9940
+
9941
+ </div>
8747
9942
  `};n.FlashDocsEn=h})(window);