flashduty-knowledge-base 1.2.4-beta.5 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/en.d.ts CHANGED
@@ -53,5 +53,6 @@ declare const docs: {
53
53
  CustomAction: string;
54
54
  Templates: string;
55
55
  HuaweiyunAPM: string;
56
+ JiraSync: string;
56
57
  };
57
58
  export default docs;
package/dist/esm/en.js CHANGED
@@ -4051,7 +4051,7 @@ Choose this method when you need to route alerts to different channels based on
4051
4051
  |Notice|Info|Info|
4052
4052
 
4053
4053
  </div>
4054
- `,N=`---
4054
+ `,P=`---
4055
4055
  title: "Volcengine Log Service (TLS) Alert Events"
4056
4056
  description: "Sync Volcengine Log Service (TLS) alert events to Flashduty via webhook for automated alert noise reduction"
4057
4057
  date: "2024-07-05T10:00:00+08:00"
@@ -4188,7 +4188,7 @@ Choose this method when you need to route alerts to different channels based on
4188
4188
  </div>
4189
4189
 
4190
4190
  </div>
4191
- `,P=`---
4191
+ `,N=`---
4192
4192
  title: "OpManager Alert Events"
4193
4193
  description: "Sync OpManager alert events to Flashduty via webhook for automated alert noise reduction"
4194
4194
  date: "2024-07-05T10:00:00+08:00"
@@ -5246,7 +5246,7 @@ Integrate WeCom third-party application to receive and respond to alerts within
5246
5246
  7. **Incident notification fails with \`WeCom License Not Activated\`?**
5247
5247
 
5248
5248
  - Contact Flashduty customer service or dedicated support for license purchase and activation
5249
- `,V=`---
5249
+ `,z=`---
5250
5250
  title: "Slack Integration"
5251
5251
  description: "Integrate with Slack to receive and respond to alerts within Slack"
5252
5252
  date: "2024-05-11T10:00:00+08:00"
@@ -5300,7 +5300,7 @@ Integrate with Slack to receive and respond to alerts within Slack.
5300
5300
 
5301
5301
  8. **Slack App shows Other questions error**
5302
5302
  - Try again, as this might be an unrecorded issue
5303
- - If the error persists, contact customer support`,z=`---
5303
+ - If the error persists, contact customer support`,V=`---
5304
5304
  title: "Microsoft Teams Integration"
5305
5305
  description: "Integrate Microsoft Teams as a third-party application to receive and respond to alerts within Microsoft Teams"
5306
5306
  date: "2024-05-11T10:00:00+08:00"
@@ -5395,7 +5395,7 @@ Please check in Integration Center => Instant Messaging => Microsoft Teams under
5395
5395
  Currently not supported
5396
5396
  </details>
5397
5397
 
5398
- `,K=`Configure alert webhooks to receive HTTP callbacks at your specified URL when alerts have specific actions (such as triggering or closing). The callback content includes the latest key information about the alert, allowing integration with your custom tools.
5398
+ `,J=`Configure alert webhooks to receive HTTP callbacks at your specified URL when alerts have specific actions (such as triggering or closing). The callback content includes the latest key information about the alert, allowing integration with your custom tools.
5399
5399
 
5400
5400
  <span id="EventTypes"></span>
5401
5401
 
@@ -5563,7 +5563,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5563
5563
  4. **Trusted IP whitelist for push sources?**
5564
5564
  - {ip_whitelist}
5565
5565
  - May be updated in the future, please check periodically
5566
- `,Z=`Configure incident webhooks to receive HTTP callbacks at your specified URL when incidents have specific actions (such as triggering or closing). The callback content includes the latest key information about the incident, allowing integration with your custom tools.
5566
+ `,K=`Configure incident webhooks to receive HTTP callbacks at your specified URL when incidents have specific actions (such as triggering or closing). The callback content includes the latest key information about the incident, allowing integration with your custom tools.
5567
5567
 
5568
5568
  <span id="EventTypes"></span>
5569
5569
 
@@ -5586,6 +5586,7 @@ The following event types are currently supported, with more potentially being a
5586
5586
  | i_rslv | Close incident (automatically or manually) |
5587
5587
  | i_reopen | Reopen incident |
5588
5588
  | i_merge | Manually merge incidents |
5589
+ | i_comm | Add comment |
5589
5590
  | i_r_title | Update incident title |
5590
5591
  | i_r_desc | Update incident description |
5591
5592
  | i_r_impact | Update incident impact |
@@ -5769,7 +5770,7 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
5769
5770
 
5770
5771
  4. **Trusted IP whitelist for push sources?**
5771
5772
  - {ip_whitelist}
5772
- - May be updated in the future, please check periodically`,J=`Custom incident actions allow you to quickly invoke external interfaces during incident troubleshooting for incident self-healing, information enrichment, and other custom operations.
5773
+ - May be updated in the future, please check periodically`,Z=`Custom incident actions allow you to quickly invoke external interfaces during incident troubleshooting for incident self-healing, information enrichment, and other custom operations.
5773
5774
 
5774
5775
  ## I. Creating Actions
5775
5776
 
@@ -6017,6 +6018,88 @@ When an incident occurs and is confirmed to be caused by a change, directly trig
6017
6018
  ### Update Status Page
6018
6019
 
6019
6020
  When an incident is confirmed to affect online services, trigger external status page updates to prompt`,Q=`---
6021
+ title: "Jira Sync"
6022
+ description: "Sync incidents with Jira issues through Jira Sync Webhook."
6023
+ date: "2024-05-11T10:00:00+08:00"
6024
+ url: "https://docs.flashcat.cloud/en/flashduty/jira-sync"
6025
+ ---
6026
+
6027
+ Through Jira Sync Webhook, you can associate and synchronize Flashduty incidents with Jira Issues, enabling integration between Flashduty and Jira.
6028
+
6029
+ ## Prerequisites
6030
+ - This integration is compatible with Jira Cloud, as well as versions 7.x and 8.x of Jira Server and Jira Data Center.
6031
+ - Currently, only one-way synchronization of incident information and status to Jira is supported. Information in Jira will not sync back to Flashduty.
6032
+ - For Jira Cloud, use an API Token in the password field during authorization configuration; for Jira Server or Data Center, use your Jira account password.
6033
+
6034
+ ## Getting API Token in Jira Cloud (Jira Server and Data Center please skip)
6035
+
6036
+ - After logging into Jira Cloud, click your profile picture in the top right corner and select **Manage Account**.
6037
+ - On the **Manage Account** page, select the **Security** tab.
6038
+ - On the **Security** page, click **Create and manage API tokens**.
6039
+ - In the **Create and manage API tokens** dialog, enter an API token name and select an expiration time.
6040
+ - Click **Create** to generate the API token.
6041
+ - Copy the API token value and paste it into the API token field in Flashduty's authorization configuration.
6042
+
6043
+ ## Configuring Integration in Flashduty
6044
+
6045
+ ### 1. Create and Authenticate Jira Integration
6046
+ <div class="hide">
6047
+
6048
+ In the Integration Center, select **Webhook**, choose **Jira Sync** integration, and fill in the following authentication information.
6049
+
6050
+ </div>
6051
+
6052
+ - **Jira Platform Type**: Choose based on your version. For Data Center version, select Self-hosted (Server).
6053
+ - **Service URL**: For Cloud version, enter your actual access URL, e.g., https://your-domain.atlassian.net. For Server version, enter your service access URL, e.g., https://your-jira-server-url.com.
6054
+ - **Username**: Your Jira account name. For Cloud version, enter your email; for Server version, enter your Jira username.
6055
+ - **API Token/Password**: Your Jira account credentials. For Cloud version, enter API Token; for Server version, enter your Jira account password.
6056
+ - After completion, click **Next** to proceed with configuration.
6057
+
6058
+ **About Permissions**: Ensure your Jira account has permissions to access relevant projects, issue types, and create issues. Using an administrator account is recommended.
6059
+
6060
+ ### 2. Jira Integration Configuration
6061
+
6062
+ - **Integration Name**: Define a name for this integration.
6063
+ - **Trigger Mode**:
6064
+ - Automatic: Configure conditions for Flashduty to automatically sync qualifying incidents to Jira.
6065
+ - Manual: Manually trigger Jira sync from the incident details page's more actions menu (integration name serves as trigger name).
6066
+ - **Project ID**: Select the target Jira project for synchronization.
6067
+ - **Issue Type**: Select the target Jira issue type.
6068
+ - **Channel**: Select the channel where this integration will be active. Only incidents within this channel can sync to Jira.
6069
+ - **Severity Mapping**: If the selected issue type doesn't support priority fields, this mapping cannot be configured.
6070
+ - **Custom Field Mapping**: Choose to sync certain or all incident labels and custom field content to Jira fields (text type fields only).
6071
+
6072
+ ### 3. About Updates
6073
+
6074
+ - For incidents with existing Jira issues, updates to severity or status will automatically update in Jira, but Jira updates won't sync back to Flashduty.
6075
+ - Comments sync to Jira, but Jira comments won't sync back to Flashduty.
6076
+ - Updates to incident title, description, labels, or other fields won't update in Jira.
6077
+
6078
+ ### 4. Flashduty to Jira Mapping
6079
+
6080
+ #### Field Mapping
6081
+
6082
+ | Jira | Flashduty |
6083
+ | ---------- | -------- |
6084
+ | Summary | Title |
6085
+ | Description | Description |
6086
+ | Priority | Severity |
6087
+ | Reporter | Integration configured user |
6088
+ | Comments | Comments |
6089
+
6090
+ #### Status Mapping
6091
+
6092
+ | Jira | Flashduty |
6093
+ | ---------- | -------- |
6094
+ | Todo | Pending |
6095
+ | In Progress | In Progress |
6096
+ | Done | Resolved |
6097
+
6098
+ ### 5. Important Notes
6099
+
6100
+ - Flashduty syncs information according to default field mappings and your custom field configurations. If your Jira issue type has required fields without mapping relationships, Jira issue creation may fail.
6101
+ - Jira issue details are accessed using project KEY + number format. If you modify the project KEY, saved issue URLs in Flashduty may become inaccessible, so please modify project KEYs with caution.
6102
+ `,X=`---
6020
6103
  title: "Configure Notification Templates"
6021
6104
  description: "Customize notification content through template configuration"
6022
6105
  date: "2024-05-10T10:00:00+08:00"
@@ -6640,4 +6723,4 @@ If custom content is not set, the system default template will be used for notif
6640
6723
  As shown below:
6641
6724
  <img src="https://download.flashcat.cloud/flashduty/doc/en/fd/template-mail-1.png" width="800">
6642
6725
 
6643
- `,X={CustomAlert:n,Email:t,N9e:a,Prometheus:i,Grafana:o,Zabbix:s,UptimeKuma:r,AliyunARMS:l,AliyunCmEvent:d,AliyunCm:c,AliyunSLS:e,AWSCW:e,AzureMonitor:h,BaiDuBCM:u,HuaWeiCES:g,InfluxDB:p,OpenFalcon:m,PagerDuty:f,TencentBK:y,TencentCLS:v,TencentCm:b,TencentEb:w,OceanBase:C,Graylog:k,Skywalking:I,Sentry:S,Jiankongbao:A,AWSEventBridge:L,Dynatrace:_,HuaweiyunLTS:F,GoogleCM:x,Zilliz:Y,Splunk:R,AppDynamics:T,SolarWinds:U,VolcEngineMetric:E,VolcEngineEvent:D,VolcEngineTLS:N,OpManager:P,Meraki:M,StateCloud:W,Guance:G,CustomChange:O,Jira:j,Lark:$,Dingtalk:H,Wecom:B,Slack:V,MicrosoftTeams:z,AlertWebhook:K,IncidentWebhook:Z,CustomAction:J,Templates:Q,HuaweiyunAPM:q};module.exports=X;
6726
+ `,ee={CustomAlert:n,Email:t,N9e:a,Prometheus:i,Grafana:o,Zabbix:s,UptimeKuma:r,AliyunARMS:l,AliyunCmEvent:d,AliyunCm:c,AliyunSLS:e,AWSCW:e,AzureMonitor:h,BaiDuBCM:u,HuaWeiCES:g,InfluxDB:p,OpenFalcon:m,PagerDuty:f,TencentBK:y,TencentCLS:v,TencentCm:b,TencentEb:w,OceanBase:C,Graylog:k,Skywalking:I,Sentry:S,Jiankongbao:A,AWSEventBridge:L,Dynatrace:_,HuaweiyunLTS:F,GoogleCM:x,Zilliz:Y,Splunk:R,AppDynamics:T,SolarWinds:U,VolcEngineMetric:E,VolcEngineEvent:D,VolcEngineTLS:P,OpManager:N,Meraki:M,StateCloud:W,Guance:G,CustomChange:O,Jira:j,Lark:$,Dingtalk:H,Wecom:B,Slack:z,MicrosoftTeams:V,AlertWebhook:J,IncidentWebhook:K,CustomAction:Z,Templates:X,HuaweiyunAPM:q,JiraSync:Q};module.exports=ee;
package/dist/esm/zh.js CHANGED
@@ -3346,7 +3346,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/jiankongbao-integration-guide"
3346
3346
  |2|Info|提醒|
3347
3347
 
3348
3348
  </div>
3349
- `,S=`---
3349
+ `,C=`---
3350
3350
  title: "AWS EventBridge 告警事件"
3351
3351
  description: "通过 webhook 的方式同步 AWS EventBridge 告警事件到 Flashduty,实现告警事件自动化降噪处理"
3352
3352
  date: "2024-08-20T10:00:00+08:00"
@@ -3451,7 +3451,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/aws-eventbridge-integration-guide
3451
3451
 
3452
3452
  </div>
3453
3453
 
3454
- `,C=`---
3454
+ `,S=`---
3455
3455
  title: "Dynatrace 告警事件"
3456
3456
  description: "通过 webhook 的方式同步 Dynatrace 告警事件到 Flashduty,实现告警事件自动化降噪处理。"
3457
3457
  date: "2024-08-20T10:00:00+08:00"
@@ -3565,7 +3565,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/dynatrace-integration-guide"
3565
3565
  |CUSTOM_ALERT|Info|提醒|
3566
3566
 
3567
3567
  </div>
3568
- `,L=`---
3568
+ `,I=`---
3569
3569
  title: "华为云日志服务 LTS 告警事件"
3570
3570
  description: "通过 webhook 的方式同步华为云日志服务 LTS 告警事件到 Flashduty,实现告警事件自动化降噪处理。"
3571
3571
  date: "2024-08-20T10:00:00+08:00"
@@ -3681,7 +3681,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/huaweilts-integration-guide"
3681
3681
  |Info|Info|提醒|
3682
3682
 
3683
3683
  </div>
3684
- `,I=`---
3684
+ `,L=`---
3685
3685
  title: "GoogleCloudMonitoring 告警事件"
3686
3686
  description: "通过 webhook 的方式同步 GoogleCloudMonitoring 告警事件到 Flashduty,实现告警事件自动化降噪处理"
3687
3687
  date: "2024-07-05T10:00:00+08:00"
@@ -4740,7 +4740,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/statecloud-integration-guide"
4740
4740
 
4741
4741
 
4742
4742
  </div>
4743
- `,U=`---
4743
+ `,j=`---
4744
4744
  title: "观测云告警事件"
4745
4745
  description: "通过 webhook 的方式同步观测云告警事件到 Flashduty,实现告警事件自动化降噪处理"
4746
4746
  date: "2024-07-05T10:00:00+08:00"
@@ -4828,7 +4828,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/guance-integration-guide"
4828
4828
  | 数据断档 | Info | 提醒 |
4829
4829
 
4830
4830
  </div>
4831
- `,j=`---
4831
+ `,U=`---
4832
4832
  title: "zilliz 告警事件"
4833
4833
  description: "通过 webhook 的方式同步 zilliz 告警事件到 Flashduty,实现告警事件自动化降噪处理"
4834
4834
  date: "2024-07-05T10:00:00+08:00"
@@ -5252,14 +5252,34 @@ sidebarDepth: 3
5252
5252
  - 确保账户已经完成关联,前往 飞书 > 工作台 > 搜索应用名称 > 打开应用,完成一次登录并关联(飞书< - >Flashduty)账号。如果已经登录过,尝试点击右上角菜单,切换账户,重新登录来绑定账号
5253
5253
  - 确保已购买足够的 license,已使用 license 情况,可以在控制台 > 费用中心查看
5254
5254
 
5255
- 2. **分派策略飞书群聊列表为空**?
5255
+ 3. **分派策略飞书群聊列表为空**?
5256
5256
 
5257
5257
  - 前往 飞书,选择群聊会话,添加已创建的Flashduty机器人,如下图所示:
5258
5258
  - 回到分派策略配置页面,刷新后重新选择群聊列表
5259
5259
 
5260
5260
  <img alt="drawing" width="800" src="https://download.flashcat.cloud/feishu-self-app-invite-to-chat.jpeg" />
5261
5261
  <img src="https://download.flashcat.cloud/feishu-self-app-notify-rule.png" alt="drawing" width="800"/>
5262
- `,G=`---
5262
+
5263
+ 4. **飞书自建应用 API 限制:** [飞书文档说明](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/platform-updates-/custom-app-api-call-limit)
5264
+
5265
+ **调用量限制:**
5266
+
5267
+ | 飞书版本 | 调用总量/月 | 刷新时间 |
5268
+ | :----------: | :--: | :----: |
5269
+ |基础免费版|10,000 次|每个自然月的 1 号|
5270
+ |其他版本|不限制|-|
5271
+
5272
+ **频控限制:**
5273
+
5274
+ | 场景 | 限制 |
5275
+ | :----------: | :--: |
5276
+ |所有接口|每个应用最高频率 50 次/秒|
5277
+ |发消息接口|每个应用最高频率 1000 次/分钟|
5278
+ |群机器人 Webhook|最高频率 100 次/分钟|
5279
+ |给同一个用户或同一个群发消息|最高频率 5 次/秒|
5280
+
5281
+ **注意:** 超出限制后将无法正常推送消息,建议合理使用通知渠道
5282
+ `,J=`---
5263
5283
  title: "钉钉集成"
5264
5284
  description: "通过集成钉钉自建应用,实现在钉钉端内接收和响应告警的能力"
5265
5285
  date: "2024-05-11T10:00:00+08:00"
@@ -5410,7 +5430,16 @@ url: "https://docs.flashcat.cloud/zh/flashduty/dingtalk-integration-guide"
5410
5430
 
5411
5431
  <img src="https://download.flashcat.cloud/dingtalk-self-app-notify-rule.png" alt="drawing" width="800"/>
5412
5432
 
5413
- `,V=`---
5433
+ 4. **钉钉自建应用 API 调用量:** [钉钉文档说明](https://open.dingtalk.com/document/orgapp/descriptions-about-adjusting-limit-and-frequency-of-api-calls?spm=ding_open_doc.document.0.0.6f6b21d9WtkxJI)
5434
+
5435
+ | 钉钉版本 | 调用总量/月 | QPS| 刷新时间 |
5436
+ | :----------: | :--: | :----: | :----:|
5437
+ |标准版|10,000 次|20|每月1日|
5438
+ |专业版|50万次|40| 每月1日 |
5439
+ |专属版|550万次|60| 每月1日 |
5440
+
5441
+ **注意:** 超出限制后将无法正常推送消息,建议合理使用通知渠道
5442
+ `,G=`---
5414
5443
  title: "企业微信集成"
5415
5444
  description: "通过集成企业微信第三方应用,实现在企业微信端内接收和响应告警的能力"
5416
5445
  date: "2024-05-11T10:00:00+08:00"
@@ -5490,7 +5519,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/wecom-integration-guide"
5490
5519
  7. **故障通知失败,提示\`未开通企微许可\`?**
5491
5520
 
5492
5521
  - 联系 Flashduty 客服或专属支持,为您购买开通
5493
- `,Z=`---
5522
+ `,V=`---
5494
5523
  title: "Slack 集成"
5495
5524
  description: "通过集成Slack第三方应用,实现在Slack内接收和响应告警的能力"
5496
5525
  date: "2024-05-11T10:00:00+08:00"
@@ -5639,7 +5668,7 @@ Microsoft Teams 集成现处于 Beta 阶段,在关联前您需要先完成以
5639
5668
  暂不支持
5640
5669
  </details>
5641
5670
 
5642
- `,J=`配置告警 Webhook,当告警发生特定操作(如触发、关闭)时,系统通过 HTTP 回调您配置的地址。回调内容将包含告警最新关键信息,您可以与自研工具进行集成。
5671
+ `,Z=`配置告警 Webhook,当告警发生特定操作(如触发、关闭)时,系统通过 HTTP 回调您配置的地址。回调内容将包含告警最新关键信息,您可以与自研工具进行集成。
5643
5672
 
5644
5673
  <span id="EventTypes"></span>
5645
5674
 
@@ -5830,6 +5859,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5830
5859
  | i_rslv | 关闭故障(自动或手动关闭) |
5831
5860
  | i_reopen | 重新打开故障 |
5832
5861
  | i_merge | 手动合并故障 |
5862
+ | i_comm | 添加评论 |
5833
5863
  | i_r_title | 更新故障标题 |
5834
5864
  | i_r_desc | 更新故障描述 |
5835
5865
  | i_r_impact | 更新故障影响 |
@@ -6014,7 +6044,7 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
6014
6044
 
6015
6045
  4. **推送来源可信 IP 白名单?**
6016
6046
  - {ip_whitelist}
6017
- - 未来可能会更新,请定期查验`,Q=`配置故障 自定义操作,允许您在故障排查期间,快速调用外部接口,实现故障自愈、信息丰富等任何自定义操作。
6047
+ - 未来可能会更新,请定期查验`,Y=`配置故障 自定义操作,允许您在故障排查期间,快速调用外部接口,实现故障自愈、信息丰富等任何自定义操作。
6018
6048
 
6019
6049
  ## 一、创建操作
6020
6050
 
@@ -6273,7 +6303,92 @@ curl -X POST 'https://example.com/incident/action?a=a' \\
6273
6303
 
6274
6304
  2. **推送来源可信 IP 白名单?**
6275
6305
  - {ip_whitelist}
6276
- - 未来可能会更新,请定期查验`,Y=`---
6306
+ - 未来可能会更新,请定期查验`,Q=`---
6307
+ title: "Jira 同步"
6308
+ description: "通过 Jira 同步 Webhook,实现故障与 Jira Issue 的关联。"
6309
+ date: "2024-05-11T10:00:00+08:00"
6310
+ url: "https://docs.flashcat.cloud/zh/flashduty/jira-sync"
6311
+ ---
6312
+
6313
+ 通过 Jira 同步 Webhook,将 Flashduty 的故障与 Jira Issue 进行关联同步,实现 Flashduty 与 Jira 的联动。
6314
+
6315
+ ## 前提说明
6316
+ - 该集成兼容 Jira Cloud 以及 Jira Server 和 Jira Data Center 的 7.x 和 8.x 版本。
6317
+ - 目前仅支持将故障相关信息或状态单向同步到 Jira 中,Jira 中的信息不会同步到 Flashduty 中。
6318
+ - 对于 Jira Cloud,请在授权配置的密码处填写 API Token;而对于Jira Server 或 Data Center,则使用您的 Jira 账户登录密码即可。
6319
+
6320
+ ## 在 Jira Cloud 中获取 API Token (Jira Server 和 Data Center 请跳过)
6321
+
6322
+ - 登录 Jira Cloud 后,点击右上角头像,选择 **管理账户**。
6323
+ - 在 **管理账户** 页面中,选择 **安全性** 选项卡。
6324
+ - 在 **安全性** 页面中,点击 **创建并管理 API 令牌** 按钮。
6325
+ - 在 **创建并管理 API 令牌** 弹窗中,填写 API token 名称,并选择过期时间。
6326
+ - 点击 **创建** 按钮,创建 API token。
6327
+ - 创建完成后,复制 API token 值,并粘贴到 Flashduty 授权配置中的 API 令牌处。
6328
+
6329
+ ## 在 Flashduty 中配置集成
6330
+
6331
+ ### 1. 创建并认证 Jira 集成
6332
+ <div class="hide">
6333
+
6334
+ 在集成中心,选择 **Webhook** ,选择 **Jira 同步** 集成,并填写以下认证信息。
6335
+
6336
+ </div>
6337
+
6338
+ - **Jira 平台类型**:根据您使用的版本进行选择,如果是 Data Center 版本的请选择私有化(Server) 即可。
6339
+ - **服务地址**:Cloud 版本请填写您的实际访问地址,例如: https://your-domain.atlassian.net,Server 版本请填写您的服务访问地址,例如: https://your-jira-server-url.com。
6340
+ - **用户名**:您的 Jira 账户名,Cloud 版本请填写您的邮箱,Server 版本请填写您的 Jira 账户名。
6341
+ - **API令牌/密码**:您的 Jira 账户密码,Cloud 版本请填写 API Token,Server 版本请填写您的 Jira 账户密码。
6342
+ - 填写完成后,点击 **下一步** 按钮,进行相关配置。
6343
+
6344
+ **关于权限**:请确保您的 Jira 账户拥有获取相关项目、事务类型以及创建 Issue 等权限,建议使用管理员账户。
6345
+
6346
+ ### 2. Jira 集成配置
6347
+
6348
+ - **集成名称**:为当前集成定义一个名称。
6349
+ - **触发模式**:
6350
+ - 自动触发:需要配置相应的条件,Flashduty 会自动将符合条件的故障同步到 Jira 中。
6351
+ - 手动触发:需要在故障详情页的更多操作中手动触发 Jira 同步(该集成配置的名称为触发器名称)。
6352
+ - **项目 ID**:选择需要同步至 Jira 的项目。
6353
+ - **事务类型**:选择需要同步至 Jira 的事务类型。
6354
+ - **协作空间**:选择该集成生效的协作空间,只有该协作空间内的故障才可以同步至 Jira 中。
6355
+ - **严重程度映射**:如果选择的事务类型不支持优先级字段,则无法配置该映射关系。
6356
+ - **自定义字段映射**:可以选择将故障的某些标签或所有标签以及自定义字段内容同步至 Jira 的字段中(仅支持文本类型的字段)。
6357
+
6358
+ ### 3. 关于更新
6359
+
6360
+ - 已经创建 Issue 的故障,如果您更新了故障的严重程度、状态,Jira 中会自动更新,但 Jira 中的更新不会同步到 Flashduty 中。
6361
+ - 评论信息会同步到 Jira 中,但 Jira 中更新的内容不会同步到 Flashduty 中。
6362
+ - 更新故障中的标题、描述、标签等字段的信息,Jira 中不会更新。
6363
+
6364
+
6365
+ ### 4. Flashduty 与 Jira 的映射关系
6366
+
6367
+ #### 字段映射
6368
+
6369
+ | Jira | Flashduty |
6370
+ | ---------- | -------- |
6371
+ | 摘要 | 标题 |
6372
+ | 描述 | 描述 |
6373
+ | 优先级 | 严重程度 |
6374
+ | 报告人 | 集成配置的用户 |
6375
+ | 评论 | 评论 |
6376
+
6377
+
6378
+ #### 状态映射
6379
+
6380
+ | Jira | Flashduty |
6381
+ | ---------- | -------- |
6382
+ | Todo | 待处理 |
6383
+ | In Progress | 处理中 |
6384
+ | Done | 已解决 |
6385
+
6386
+
6387
+ ### 5. 注意事项
6388
+
6389
+ - Flashduty 会按照默认的字段映射以及您配置的自定义字段映射进行同步信息,如果您的 Jira 事务类型中有必选的字段且没有配置映射关系,则会遇到创建 Jira Issue 失败的情况。
6390
+ - Jira 的 Issue 详情是基于项目 KEY + 编号的格式进行访问的,如果您修改了项目 KEY,可能无法通过 Flashduty 中保存的 Issue 地址进行访问,请谨慎修改项目 KEY。
6391
+ `,nn=`---
6277
6392
  title: "配置通知模版"
6278
6393
  description: "通过自定义配置模版,可以实现个性化通知内容的需求"
6279
6394
  date: "2024-05-10T10:00:00+08:00"
@@ -6743,12 +6858,213 @@ CloseTime | int64 | 否 | 关闭时间,EndTime 为告警恢复时间,CloseTi
6743
6858
 
6744
6859
  ## 飞书机器人
6745
6860
  ---
6746
- 飞书机器人仅支持发送纯文本消息。
6861
+ 飞书机器人支持消息卡片,富文本和普通文本三种格式,默认模版是消息卡片格式。
6747
6862
 
6863
+ - msg_type 字段在消息卡片和富文本中必填,否则当成普通文本格式发送
6748
6864
  - 消息\`最大长度为4000字节,超出后截断发送\`;
6749
- - 如果文本中包含\`<br>\`,渲染时会\`先删除空行,再将<br>替换为换行符\`;
6750
6865
  - 如果不设置自定义内容,将采用系统默认模板,仅展示关键信息:
6751
6866
 
6867
+ 1. 消息卡片
6868
+ msg_type 必填,值为 interactive
6869
+ \`\`\`
6870
+ {
6871
+ "msg_type": "interactive",
6872
+ "card": {
6873
+ "config": {
6874
+ "wide_screen_mode": true,
6875
+ "enable_forward": true
6876
+ },
6877
+ "header": {
6878
+ "template": "{{if eq .IncidentSeverity "Critical"}}red{{else if eq .IncidentSeverity "Warning"}}orange{{else}}yellow{{end}}",
6879
+ "title": {
6880
+ "content": "{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
6881
+ "tag": "plain_text"
6882
+ }
6883
+ },
6884
+ "elements": [{
6885
+ "tag": "div",
6886
+ "fields": [{
6887
+ "text": {
6888
+ "tag": "lark_md",
6889
+ "content": "**🏢 协作空间:**{{if .ChannelName}}{{.ChannelName}}{{else}}无{{end}}"
6890
+ }
6891
+ },
6892
+ {
6893
+ "text": {
6894
+ "tag": "lark_md",
6895
+ "content": "**{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} 严重程度:**{{.IncidentSeverity}}"
6896
+ }
6897
+ },
6898
+ {
6899
+ "text": {
6900
+ "tag": "lark_md",
6901
+ "content": "**⏰ 触发时间:**{{date "2006-01-02 15:04:05" .StartTime}}{{if gt .AlertCnt 1}}"
6902
+ }
6903
+ },
6904
+ {
6905
+ "text": {
6906
+ "tag": "lark_md",
6907
+ "content": "**🔔 聚合告警:**{{.AlertCnt}}条 {{end}}{{if .Labels.resource}}"
6908
+ }
6909
+ },
6910
+ {
6911
+ "tag": "div",
6912
+ "text": {
6913
+ "tag": "lark_md",
6914
+ "content": "**📌 告警对象:**{{toHtml (joinAlertLabels . "resource" ",")}} {{end}}{{if .Description}}"
6915
+ }
6916
+ },
6917
+ {
6918
+ "tag": "div",
6919
+ "text": {
6920
+ "tag": "lark_md",
6921
+ "content": "**🔍 故障描述:**{{.Description}}{{end}}{{if gt (len .Responders) 0}}"
6922
+ }
6923
+ },
6924
+ {
6925
+ "tag": "div",
6926
+ "text": {
6927
+ "tag": "lark_md",
6928
+ "content": "**👨‍💻 处理人员:**{{range .Responders}}@{{.PersonName}} {{end}}{{end}}"
6929
+ }
6930
+ }
6931
+ ]
6932
+ },
6933
+ {
6934
+ "tag": "hr"
6935
+ },
6936
+ {
6937
+ "tag": "action",
6938
+ "actions": [{
6939
+ "tag": "button",
6940
+ "text": {
6941
+ "tag": "plain_text",
6942
+ "content": "故障详情"
6943
+ },
6944
+ "type": "primary",
6945
+ "url": "{{.DetailUrl}}"
6946
+ },
6947
+ {
6948
+ "tag": "button",
6949
+ "text": {
6950
+ "tag": "plain_text",
6951
+ "content": "认领"
6952
+ },
6953
+ "type": "primary",
6954
+ "url": "{{.DetailUrl}}?ack=1"
6955
+ }
6956
+ ]
6957
+ }]
6958
+ }
6959
+ }
6960
+ \`\`\`
6961
+
6962
+ 2. 富文本
6963
+ msg_type 必填,值为 post
6964
+ \`\`\`
6965
+ {
6966
+ "msg_type": "post",
6967
+ "post": {
6968
+ "zh_cn": {
6969
+ "title": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
6970
+ "content": [
6971
+ [{
6972
+ "tag": "text",
6973
+ "text": "🏢 "
6974
+ }, {
6975
+ "tag": "text",
6976
+ "text": "协作空间:",
6977
+ "text_type": "bold"
6978
+ }, {
6979
+ "tag": "text",
6980
+ "text": "{{if .ChannelName}}{{.ChannelName}}{{else}}无{{end}}\\n"
6981
+ }],
6982
+ [{
6983
+ "tag": "text",
6984
+ "text": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} "
6985
+ }, {
6986
+ "tag": "text",
6987
+ "text": "严重程度:",
6988
+ "text_type": "bold"
6989
+ }, {
6990
+ "tag": "text",
6991
+ "text": "{{.IncidentSeverity}}\\n",
6992
+ "text_type": "{{if eq .IncidentSeverity "Critical"}}bold{{end}}"
6993
+ }],
6994
+ [{
6995
+ "tag": "text",
6996
+ "text": "⏰ "
6997
+ }, {
6998
+ "tag": "text",
6999
+ "text": "触发时间:",
7000
+ "text_type": "bold"
7001
+ }, {
7002
+ "tag": "text",
7003
+ "text": "{{date "2006-01-02 15:04:05" .StartTime}}\\n"
7004
+ }],
7005
+ {{if gt .AlertCnt 1}}[{
7006
+ "tag": "text",
7007
+ "text": "🔔 "
7008
+ }, {
7009
+ "tag": "text",
7010
+ "text": "聚合告警:",
7011
+ "text_type": "bold"
7012
+ }, {
7013
+ "tag": "text",
7014
+ "text": "{{.AlertCnt}}条\\n"
7015
+ }],{{end}}
7016
+ {{if .Labels.resource}}[{
7017
+ "tag": "text",
7018
+ "text": "📋 "
7019
+ }, {
7020
+ "tag": "text",
7021
+ "text": "告警对象:",
7022
+ "text_type": "bold"
7023
+ }, {
7024
+ "tag": "text",
7025
+ "text": "{{toHtml (joinAlertLabels . "resource" ", ")}}\\n"
7026
+ }],{{end}}
7027
+ {{if .Description}}[{
7028
+ "tag": "text",
7029
+ "text": "📝 "
7030
+ }, {
7031
+ "tag": "text",
7032
+ "text": "描述:",
7033
+ "text_type": "bold"
7034
+ }, {
7035
+ "tag": "text",
7036
+ "text": "{{toHtml .Description}}\\n"
7037
+ }],{{end}}
7038
+ {{if gt (len .Responders) 0}}[{
7039
+ "tag": "text",
7040
+ "text": "👨‍💻 "
7041
+ }, {
7042
+ "tag": "text",
7043
+ "text": "处理人员:",
7044
+ "text_type": "bold"
7045
+ }, {
7046
+ "tag": "text",
7047
+ "text": "{{range .Responders}}@{{.PersonName}} {{end}}\\n"
7048
+ }],{{end}}
7049
+ [{
7050
+ "tag": "a",
7051
+ "href": "{{.DetailUrl}}",
7052
+ "text": "故障详情"
7053
+ },{
7054
+ "tag": "text",
7055
+ "text": " "
7056
+ },{
7057
+ "tag": "a",
7058
+ "href": "{{.DetailUrl}}?ack=1",
7059
+ "text": "认领"
7060
+ }]
7061
+ ]
7062
+ }
7063
+ }
7064
+ }
7065
+ \`\`\`
7066
+
7067
+ 3. 普通文本
6752
7068
  \`\`\`
6753
7069
  {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}
6754
7070
  -----
@@ -7076,4 +7392,4 @@ CloseTime | int64 | 否 | 关闭时间,EndTime 为告警恢复时间,CloseTi
7076
7392
  <img src="https://download.flashcat.cloud/flashduty/changelog/20230720/email_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
7077
7393
 
7078
7394
  </div>
7079
- `,nn={CustomAlert:n,Email:t,N9e:e,Prometheus:a,Grafana:i,Zabbix:s,UptimeKuma:l,AliyunARMS:d,AliyunCmEvent:o,AliyunCm:r,AliyunSLS:c,AWSCW:u,AzureMonitor:h,BaiDuBCM:m,HuaWeiCES:p,InfluxDB:g,OpenFalcon:y,PagerDuty:f,TencentBK:b,TencentCLS:v,TencentCm:w,TencentEb:_,OceanBase:k,Graylog:F,Skywalking:x,Sentry:T,Jiankongbao:A,AWSEventBridge:S,Dynatrace:C,HuaweiyunLTS:L,GoogleCM:I,Splunk:D,AppDynamics:P,SolarWinds:M,VolcEngineMetric:N,VolcEngineEvent:E,VolcEngineTLS:$,OpManager:R,Meraki:W,Zilliz:j,StateCloud:z,Guance:U,CustomChange:O,Jira:q,Lark:B,Dingtalk:G,Wecom:V,Slack:Z,MicrosoftTeams:K,AlertWebhook:J,IncidentWebhook:X,CustomAction:Q,Templates:Y,HuaweiyunAPM:H};module.exports=nn;
7395
+ `,tn={CustomAlert:n,Email:t,N9e:e,Prometheus:a,Grafana:i,Zabbix:s,UptimeKuma:l,AliyunARMS:d,AliyunCmEvent:o,AliyunCm:r,AliyunSLS:c,AWSCW:u,AzureMonitor:h,BaiDuBCM:m,HuaWeiCES:p,InfluxDB:g,OpenFalcon:y,PagerDuty:f,TencentBK:b,TencentCLS:v,TencentCm:w,TencentEb:_,OceanBase:k,Graylog:F,Skywalking:x,Sentry:T,Jiankongbao:A,AWSEventBridge:C,Dynatrace:S,HuaweiyunLTS:I,GoogleCM:L,Splunk:D,AppDynamics:P,SolarWinds:M,VolcEngineMetric:N,VolcEngineEvent:E,VolcEngineTLS:$,OpManager:R,Meraki:W,Zilliz:U,StateCloud:z,Guance:j,CustomChange:O,Jira:q,Lark:B,Dingtalk:J,Wecom:G,Slack:V,MicrosoftTeams:K,AlertWebhook:Z,IncidentWebhook:X,CustomAction:Y,Templates:nn,HuaweiyunAPM:H,JiraSync:Q};module.exports=tn;
package/dist/iife/en.js CHANGED
@@ -5480,6 +5480,7 @@ The following event types are currently supported, with more potentially being a
5480
5480
  | i_rslv | Close incident (automatically or manually) |
5481
5481
  | i_reopen | Reopen incident |
5482
5482
  | i_merge | Manually merge incidents |
5483
+ | i_comm | Add comment |
5483
5484
  | i_r_title | Update incident title |
5484
5485
  | i_r_desc | Update incident description |
5485
5486
  | i_r_impact | Update incident impact |
@@ -6640,4 +6641,86 @@ When you need to route alerts to different channels based on alert payload infor
6640
6641
 
6641
6642
  </div>
6642
6643
 
6644
+ `,JiraSync:`---
6645
+ title: "Jira Sync"
6646
+ description: "Sync incidents with Jira issues through Jira Sync Webhook."
6647
+ date: "2024-05-11T10:00:00+08:00"
6648
+ url: "https://docs.flashcat.cloud/en/flashduty/jira-sync"
6649
+ ---
6650
+
6651
+ Through Jira Sync Webhook, you can associate and synchronize Flashduty incidents with Jira Issues, enabling integration between Flashduty and Jira.
6652
+
6653
+ ## Prerequisites
6654
+ - This integration is compatible with Jira Cloud, as well as versions 7.x and 8.x of Jira Server and Jira Data Center.
6655
+ - Currently, only one-way synchronization of incident information and status to Jira is supported. Information in Jira will not sync back to Flashduty.
6656
+ - For Jira Cloud, use an API Token in the password field during authorization configuration; for Jira Server or Data Center, use your Jira account password.
6657
+
6658
+ ## Getting API Token in Jira Cloud (Jira Server and Data Center please skip)
6659
+
6660
+ - After logging into Jira Cloud, click your profile picture in the top right corner and select **Manage Account**.
6661
+ - On the **Manage Account** page, select the **Security** tab.
6662
+ - On the **Security** page, click **Create and manage API tokens**.
6663
+ - In the **Create and manage API tokens** dialog, enter an API token name and select an expiration time.
6664
+ - Click **Create** to generate the API token.
6665
+ - Copy the API token value and paste it into the API token field in Flashduty's authorization configuration.
6666
+
6667
+ ## Configuring Integration in Flashduty
6668
+
6669
+ ### 1. Create and Authenticate Jira Integration
6670
+ <div class="hide">
6671
+
6672
+ In the Integration Center, select **Webhook**, choose **Jira Sync** integration, and fill in the following authentication information.
6673
+
6674
+ </div>
6675
+
6676
+ - **Jira Platform Type**: Choose based on your version. For Data Center version, select Self-hosted (Server).
6677
+ - **Service URL**: For Cloud version, enter your actual access URL, e.g., https://your-domain.atlassian.net. For Server version, enter your service access URL, e.g., https://your-jira-server-url.com.
6678
+ - **Username**: Your Jira account name. For Cloud version, enter your email; for Server version, enter your Jira username.
6679
+ - **API Token/Password**: Your Jira account credentials. For Cloud version, enter API Token; for Server version, enter your Jira account password.
6680
+ - After completion, click **Next** to proceed with configuration.
6681
+
6682
+ **About Permissions**: Ensure your Jira account has permissions to access relevant projects, issue types, and create issues. Using an administrator account is recommended.
6683
+
6684
+ ### 2. Jira Integration Configuration
6685
+
6686
+ - **Integration Name**: Define a name for this integration.
6687
+ - **Trigger Mode**:
6688
+ - Automatic: Configure conditions for Flashduty to automatically sync qualifying incidents to Jira.
6689
+ - Manual: Manually trigger Jira sync from the incident details page's more actions menu (integration name serves as trigger name).
6690
+ - **Project ID**: Select the target Jira project for synchronization.
6691
+ - **Issue Type**: Select the target Jira issue type.
6692
+ - **Channel**: Select the channel where this integration will be active. Only incidents within this channel can sync to Jira.
6693
+ - **Severity Mapping**: If the selected issue type doesn't support priority fields, this mapping cannot be configured.
6694
+ - **Custom Field Mapping**: Choose to sync certain or all incident labels and custom field content to Jira fields (text type fields only).
6695
+
6696
+ ### 3. About Updates
6697
+
6698
+ - For incidents with existing Jira issues, updates to severity or status will automatically update in Jira, but Jira updates won't sync back to Flashduty.
6699
+ - Comments sync to Jira, but Jira comments won't sync back to Flashduty.
6700
+ - Updates to incident title, description, labels, or other fields won't update in Jira.
6701
+
6702
+ ### 4. Flashduty to Jira Mapping
6703
+
6704
+ #### Field Mapping
6705
+
6706
+ | Jira | Flashduty |
6707
+ | ---------- | -------- |
6708
+ | Summary | Title |
6709
+ | Description | Description |
6710
+ | Priority | Severity |
6711
+ | Reporter | Integration configured user |
6712
+ | Comments | Comments |
6713
+
6714
+ #### Status Mapping
6715
+
6716
+ | Jira | Flashduty |
6717
+ | ---------- | -------- |
6718
+ | Todo | Pending |
6719
+ | In Progress | In Progress |
6720
+ | Done | Resolved |
6721
+
6722
+ ### 5. Important Notes
6723
+
6724
+ - Flashduty syncs information according to default field mappings and your custom field configurations. If your Jira issue type has required fields without mapping relationships, Jira issue creation may fail.
6725
+ - Jira issue details are accessed using project KEY + number format. If you modify the project KEY, saved issue URLs in Flashduty may become inaccessible, so please modify project KEYs with caution.
6643
6726
  `};n.FlashDocsEn=u})(window);
package/dist/iife/zh.js CHANGED
@@ -5144,13 +5144,33 @@ sidebarDepth: 3
5144
5144
  - 确保账户已经完成关联,前往 飞书 > 工作台 > 搜索应用名称 > 打开应用,完成一次登录并关联(飞书< - >Flashduty)账号。如果已经登录过,尝试点击右上角菜单,切换账户,重新登录来绑定账号
5145
5145
  - 确保已购买足够的 license,已使用 license 情况,可以在控制台 > 费用中心查看
5146
5146
 
5147
- 2. **分派策略飞书群聊列表为空**?
5147
+ 3. **分派策略飞书群聊列表为空**?
5148
5148
 
5149
5149
  - 前往 飞书,选择群聊会话,添加已创建的Flashduty机器人,如下图所示:
5150
5150
  - 回到分派策略配置页面,刷新后重新选择群聊列表
5151
5151
 
5152
5152
  <img alt="drawing" width="800" src="https://download.flashcat.cloud/feishu-self-app-invite-to-chat.jpeg" />
5153
5153
  <img src="https://download.flashcat.cloud/feishu-self-app-notify-rule.png" alt="drawing" width="800"/>
5154
+
5155
+ 4. **飞书自建应用 API 限制:** [飞书文档说明](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/platform-updates-/custom-app-api-call-limit)
5156
+
5157
+ **调用量限制:**
5158
+
5159
+ | 飞书版本 | 调用总量/月 | 刷新时间 |
5160
+ | :----------: | :--: | :----: |
5161
+ |基础免费版|10,000 次|每个自然月的 1 号|
5162
+ |其他版本|不限制|-|
5163
+
5164
+ **频控限制:**
5165
+
5166
+ | 场景 | 限制 |
5167
+ | :----------: | :--: |
5168
+ |所有接口|每个应用最高频率 50 次/秒|
5169
+ |发消息接口|每个应用最高频率 1000 次/分钟|
5170
+ |群机器人 Webhook|最高频率 100 次/分钟|
5171
+ |给同一个用户或同一个群发消息|最高频率 5 次/秒|
5172
+
5173
+ **注意:** 超出限制后将无法正常推送消息,建议合理使用通知渠道
5154
5174
  `,Dingtalk:`---
5155
5175
  title: "钉钉集成"
5156
5176
  description: "通过集成钉钉自建应用,实现在钉钉端内接收和响应告警的能力"
@@ -5302,6 +5322,15 @@ url: "https://docs.flashcat.cloud/zh/flashduty/dingtalk-integration-guide"
5302
5322
 
5303
5323
  <img src="https://download.flashcat.cloud/dingtalk-self-app-notify-rule.png" alt="drawing" width="800"/>
5304
5324
 
5325
+ 4. **钉钉自建应用 API 调用量:** [钉钉文档说明](https://open.dingtalk.com/document/orgapp/descriptions-about-adjusting-limit-and-frequency-of-api-calls?spm=ding_open_doc.document.0.0.6f6b21d9WtkxJI)
5326
+
5327
+ | 钉钉版本 | 调用总量/月 | QPS| 刷新时间 |
5328
+ | :----------: | :--: | :----: | :----:|
5329
+ |标准版|10,000 次|20|每月1日|
5330
+ |专业版|50万次|40| 每月1日 |
5331
+ |专属版|550万次|60| 每月1日 |
5332
+
5333
+ **注意:** 超出限制后将无法正常推送消息,建议合理使用通知渠道
5305
5334
  `,Wecom:`---
5306
5335
  title: "企业微信集成"
5307
5336
  description: "通过集成企业微信第三方应用,实现在企业微信端内接收和响应告警的能力"
@@ -5722,6 +5751,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
5722
5751
  | i_rslv | 关闭故障(自动或手动关闭) |
5723
5752
  | i_reopen | 重新打开故障 |
5724
5753
  | i_merge | 手动合并故障 |
5754
+ | i_comm | 添加评论 |
5725
5755
  | i_r_title | 更新故障标题 |
5726
5756
  | i_r_desc | 更新故障描述 |
5727
5757
  | i_r_impact | 更新故障影响 |
@@ -6635,12 +6665,213 @@ CloseTime | int64 | 否 | 关闭时间,EndTime 为告警恢复时间,CloseTi
6635
6665
 
6636
6666
  ## 飞书机器人
6637
6667
  ---
6638
- 飞书机器人仅支持发送纯文本消息。
6668
+ 飞书机器人支持消息卡片,富文本和普通文本三种格式,默认模版是消息卡片格式。
6639
6669
 
6670
+ - msg_type 字段在消息卡片和富文本中必填,否则当成普通文本格式发送
6640
6671
  - 消息\`最大长度为4000字节,超出后截断发送\`;
6641
- - 如果文本中包含\`<br>\`,渲染时会\`先删除空行,再将<br>替换为换行符\`;
6642
6672
  - 如果不设置自定义内容,将采用系统默认模板,仅展示关键信息:
6643
6673
 
6674
+ 1. 消息卡片
6675
+ msg_type 必填,值为 interactive
6676
+ \`\`\`
6677
+ {
6678
+ "msg_type": "interactive",
6679
+ "card": {
6680
+ "config": {
6681
+ "wide_screen_mode": true,
6682
+ "enable_forward": true
6683
+ },
6684
+ "header": {
6685
+ "template": "{{if eq .IncidentSeverity "Critical"}}red{{else if eq .IncidentSeverity "Warning"}}orange{{else}}yellow{{end}}",
6686
+ "title": {
6687
+ "content": "{{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
6688
+ "tag": "plain_text"
6689
+ }
6690
+ },
6691
+ "elements": [{
6692
+ "tag": "div",
6693
+ "fields": [{
6694
+ "text": {
6695
+ "tag": "lark_md",
6696
+ "content": "**🏢 协作空间:**{{if .ChannelName}}{{.ChannelName}}{{else}}无{{end}}"
6697
+ }
6698
+ },
6699
+ {
6700
+ "text": {
6701
+ "tag": "lark_md",
6702
+ "content": "**{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} 严重程度:**{{.IncidentSeverity}}"
6703
+ }
6704
+ },
6705
+ {
6706
+ "text": {
6707
+ "tag": "lark_md",
6708
+ "content": "**⏰ 触发时间:**{{date "2006-01-02 15:04:05" .StartTime}}{{if gt .AlertCnt 1}}"
6709
+ }
6710
+ },
6711
+ {
6712
+ "text": {
6713
+ "tag": "lark_md",
6714
+ "content": "**🔔 聚合告警:**{{.AlertCnt}}条 {{end}}{{if .Labels.resource}}"
6715
+ }
6716
+ },
6717
+ {
6718
+ "tag": "div",
6719
+ "text": {
6720
+ "tag": "lark_md",
6721
+ "content": "**📌 告警对象:**{{toHtml (joinAlertLabels . "resource" ",")}} {{end}}{{if .Description}}"
6722
+ }
6723
+ },
6724
+ {
6725
+ "tag": "div",
6726
+ "text": {
6727
+ "tag": "lark_md",
6728
+ "content": "**🔍 故障描述:**{{.Description}}{{end}}{{if gt (len .Responders) 0}}"
6729
+ }
6730
+ },
6731
+ {
6732
+ "tag": "div",
6733
+ "text": {
6734
+ "tag": "lark_md",
6735
+ "content": "**👨‍💻 处理人员:**{{range .Responders}}@{{.PersonName}} {{end}}{{end}}"
6736
+ }
6737
+ }
6738
+ ]
6739
+ },
6740
+ {
6741
+ "tag": "hr"
6742
+ },
6743
+ {
6744
+ "tag": "action",
6745
+ "actions": [{
6746
+ "tag": "button",
6747
+ "text": {
6748
+ "tag": "plain_text",
6749
+ "content": "故障详情"
6750
+ },
6751
+ "type": "primary",
6752
+ "url": "{{.DetailUrl}}"
6753
+ },
6754
+ {
6755
+ "tag": "button",
6756
+ "text": {
6757
+ "tag": "plain_text",
6758
+ "content": "认领"
6759
+ },
6760
+ "type": "primary",
6761
+ "url": "{{.DetailUrl}}?ack=1"
6762
+ }
6763
+ ]
6764
+ }]
6765
+ }
6766
+ }
6767
+ \`\`\`
6768
+
6769
+ 2. 富文本
6770
+ msg_type 必填,值为 post
6771
+ \`\`\`
6772
+ {
6773
+ "msg_type": "post",
6774
+ "post": {
6775
+ "zh_cn": {
6776
+ "title": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}",
6777
+ "content": [
6778
+ [{
6779
+ "tag": "text",
6780
+ "text": "🏢 "
6781
+ }, {
6782
+ "tag": "text",
6783
+ "text": "协作空间:",
6784
+ "text_type": "bold"
6785
+ }, {
6786
+ "tag": "text",
6787
+ "text": "{{if .ChannelName}}{{.ChannelName}}{{else}}无{{end}}\\n"
6788
+ }],
6789
+ [{
6790
+ "tag": "text",
6791
+ "text": "{{if eq .IncidentSeverity "Critical"}}🔴{{else if eq .IncidentSeverity "Warning"}}⚠️{{else}}ℹ️{{end}} "
6792
+ }, {
6793
+ "tag": "text",
6794
+ "text": "严重程度:",
6795
+ "text_type": "bold"
6796
+ }, {
6797
+ "tag": "text",
6798
+ "text": "{{.IncidentSeverity}}\\n",
6799
+ "text_type": "{{if eq .IncidentSeverity "Critical"}}bold{{end}}"
6800
+ }],
6801
+ [{
6802
+ "tag": "text",
6803
+ "text": "⏰ "
6804
+ }, {
6805
+ "tag": "text",
6806
+ "text": "触发时间:",
6807
+ "text_type": "bold"
6808
+ }, {
6809
+ "tag": "text",
6810
+ "text": "{{date "2006-01-02 15:04:05" .StartTime}}\\n"
6811
+ }],
6812
+ {{if gt .AlertCnt 1}}[{
6813
+ "tag": "text",
6814
+ "text": "🔔 "
6815
+ }, {
6816
+ "tag": "text",
6817
+ "text": "聚合告警:",
6818
+ "text_type": "bold"
6819
+ }, {
6820
+ "tag": "text",
6821
+ "text": "{{.AlertCnt}}条\\n"
6822
+ }],{{end}}
6823
+ {{if .Labels.resource}}[{
6824
+ "tag": "text",
6825
+ "text": "📋 "
6826
+ }, {
6827
+ "tag": "text",
6828
+ "text": "告警对象:",
6829
+ "text_type": "bold"
6830
+ }, {
6831
+ "tag": "text",
6832
+ "text": "{{toHtml (joinAlertLabels . "resource" ", ")}}\\n"
6833
+ }],{{end}}
6834
+ {{if .Description}}[{
6835
+ "tag": "text",
6836
+ "text": "📝 "
6837
+ }, {
6838
+ "tag": "text",
6839
+ "text": "描述:",
6840
+ "text_type": "bold"
6841
+ }, {
6842
+ "tag": "text",
6843
+ "text": "{{toHtml .Description}}\\n"
6844
+ }],{{end}}
6845
+ {{if gt (len .Responders) 0}}[{
6846
+ "tag": "text",
6847
+ "text": "👨‍💻 "
6848
+ }, {
6849
+ "tag": "text",
6850
+ "text": "处理人员:",
6851
+ "text_type": "bold"
6852
+ }, {
6853
+ "tag": "text",
6854
+ "text": "{{range .Responders}}@{{.PersonName}} {{end}}\\n"
6855
+ }],{{end}}
6856
+ [{
6857
+ "tag": "a",
6858
+ "href": "{{.DetailUrl}}",
6859
+ "text": "故障详情"
6860
+ },{
6861
+ "tag": "text",
6862
+ "text": " "
6863
+ },{
6864
+ "tag": "a",
6865
+ "href": "{{.DetailUrl}}?ack=1",
6866
+ "text": "认领"
6867
+ }]
6868
+ ]
6869
+ }
6870
+ }
6871
+ }
6872
+ \`\`\`
6873
+
6874
+ 3. 普通文本
6644
6875
  \`\`\`
6645
6876
  {{fireReason .}}INC #{{.Num}} {{toHtml .Title}}
6646
6877
  -----
@@ -7076,4 +7307,89 @@ url: "https://docs.flashcat.cloud/zh/flashduty/huawei-apm-integration-guide"
7076
7307
 
7077
7308
  </div>
7078
7309
 
7310
+ `,JiraSync:`---
7311
+ title: "Jira 同步"
7312
+ description: "通过 Jira 同步 Webhook,实现故障与 Jira Issue 的关联。"
7313
+ date: "2024-05-11T10:00:00+08:00"
7314
+ url: "https://docs.flashcat.cloud/zh/flashduty/jira-sync"
7315
+ ---
7316
+
7317
+ 通过 Jira 同步 Webhook,将 Flashduty 的故障与 Jira Issue 进行关联同步,实现 Flashduty 与 Jira 的联动。
7318
+
7319
+ ## 前提说明
7320
+ - 该集成兼容 Jira Cloud 以及 Jira Server 和 Jira Data Center 的 7.x 和 8.x 版本。
7321
+ - 目前仅支持将故障相关信息或状态单向同步到 Jira 中,Jira 中的信息不会同步到 Flashduty 中。
7322
+ - 对于 Jira Cloud,请在授权配置的密码处填写 API Token;而对于Jira Server 或 Data Center,则使用您的 Jira 账户登录密码即可。
7323
+
7324
+ ## 在 Jira Cloud 中获取 API Token (Jira Server 和 Data Center 请跳过)
7325
+
7326
+ - 登录 Jira Cloud 后,点击右上角头像,选择 **管理账户**。
7327
+ - 在 **管理账户** 页面中,选择 **安全性** 选项卡。
7328
+ - 在 **安全性** 页面中,点击 **创建并管理 API 令牌** 按钮。
7329
+ - 在 **创建并管理 API 令牌** 弹窗中,填写 API token 名称,并选择过期时间。
7330
+ - 点击 **创建** 按钮,创建 API token。
7331
+ - 创建完成后,复制 API token 值,并粘贴到 Flashduty 授权配置中的 API 令牌处。
7332
+
7333
+ ## 在 Flashduty 中配置集成
7334
+
7335
+ ### 1. 创建并认证 Jira 集成
7336
+ <div class="hide">
7337
+
7338
+ 在集成中心,选择 **Webhook** ,选择 **Jira 同步** 集成,并填写以下认证信息。
7339
+
7340
+ </div>
7341
+
7342
+ - **Jira 平台类型**:根据您使用的版本进行选择,如果是 Data Center 版本的请选择私有化(Server) 即可。
7343
+ - **服务地址**:Cloud 版本请填写您的实际访问地址,例如: https://your-domain.atlassian.net,Server 版本请填写您的服务访问地址,例如: https://your-jira-server-url.com。
7344
+ - **用户名**:您的 Jira 账户名,Cloud 版本请填写您的邮箱,Server 版本请填写您的 Jira 账户名。
7345
+ - **API令牌/密码**:您的 Jira 账户密码,Cloud 版本请填写 API Token,Server 版本请填写您的 Jira 账户密码。
7346
+ - 填写完成后,点击 **下一步** 按钮,进行相关配置。
7347
+
7348
+ **关于权限**:请确保您的 Jira 账户拥有获取相关项目、事务类型以及创建 Issue 等权限,建议使用管理员账户。
7349
+
7350
+ ### 2. Jira 集成配置
7351
+
7352
+ - **集成名称**:为当前集成定义一个名称。
7353
+ - **触发模式**:
7354
+ - 自动触发:需要配置相应的条件,Flashduty 会自动将符合条件的故障同步到 Jira 中。
7355
+ - 手动触发:需要在故障详情页的更多操作中手动触发 Jira 同步(该集成配置的名称为触发器名称)。
7356
+ - **项目 ID**:选择需要同步至 Jira 的项目。
7357
+ - **事务类型**:选择需要同步至 Jira 的事务类型。
7358
+ - **协作空间**:选择该集成生效的协作空间,只有该协作空间内的故障才可以同步至 Jira 中。
7359
+ - **严重程度映射**:如果选择的事务类型不支持优先级字段,则无法配置该映射关系。
7360
+ - **自定义字段映射**:可以选择将故障的某些标签或所有标签以及自定义字段内容同步至 Jira 的字段中(仅支持文本类型的字段)。
7361
+
7362
+ ### 3. 关于更新
7363
+
7364
+ - 已经创建 Issue 的故障,如果您更新了故障的严重程度、状态,Jira 中会自动更新,但 Jira 中的更新不会同步到 Flashduty 中。
7365
+ - 评论信息会同步到 Jira 中,但 Jira 中更新的内容不会同步到 Flashduty 中。
7366
+ - 更新故障中的标题、描述、标签等字段的信息,Jira 中不会更新。
7367
+
7368
+
7369
+ ### 4. Flashduty 与 Jira 的映射关系
7370
+
7371
+ #### 字段映射
7372
+
7373
+ | Jira | Flashduty |
7374
+ | ---------- | -------- |
7375
+ | 摘要 | 标题 |
7376
+ | 描述 | 描述 |
7377
+ | 优先级 | 严重程度 |
7378
+ | 报告人 | 集成配置的用户 |
7379
+ | 评论 | 评论 |
7380
+
7381
+
7382
+ #### 状态映射
7383
+
7384
+ | Jira | Flashduty |
7385
+ | ---------- | -------- |
7386
+ | Todo | 待处理 |
7387
+ | In Progress | 处理中 |
7388
+ | Done | 已解决 |
7389
+
7390
+
7391
+ ### 5. 注意事项
7392
+
7393
+ - Flashduty 会按照默认的字段映射以及您配置的自定义字段映射进行同步信息,如果您的 Jira 事务类型中有必选的字段且没有配置映射关系,则会遇到创建 Jira Issue 失败的情况。
7394
+ - Jira 的 Issue 详情是基于项目 KEY + 编号的格式进行访问的,如果您修改了项目 KEY,可能无法通过 Flashduty 中保存的 Issue 地址进行访问,请谨慎修改项目 KEY。
7079
7395
  `};n.FlashDocsZh=t})(window);
package/dist/zh.d.ts CHANGED
@@ -53,5 +53,6 @@ declare const docs: {
53
53
  CustomAction: string;
54
54
  Templates: string;
55
55
  HuaweiyunAPM: string;
56
+ JiraSync: string;
56
57
  };
57
58
  export default docs;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flashduty-knowledge-base",
3
- "version": "1.2.4-beta.5",
3
+ "version": "1.2.5",
4
4
  "description": "flashduty knowledge base",
5
5
  "type": "module",
6
6
  "scripts": {