Skip to content

Commit a6d8206

Browse files
committed
Merge origin/main into feat/alert-batch7
2 parents 5fc7b0f + 0f8c119 commit a6d8206

58 files changed

Lines changed: 3230 additions & 87 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎api-reference/on-call.openapi.en.json‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30374,13 +30374,14 @@
3037430374
},
3037530375
"change_status": {
3037630376
"type": "string",
30377-
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
30377+
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
3037830378
"enum": [
3037930379
"Planned",
3038030380
"Ready",
3038130381
"Processing",
3038230382
"Canceled",
30383-
"Done"
30383+
"Done",
30384+
"Failed"
3038430385
]
3038530386
},
3038630387
"link": {
@@ -30468,13 +30469,14 @@
3046830469
},
3046930470
"change_status": {
3047030471
"type": "string",
30471-
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
30472+
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
3047230473
"enum": [
3047330474
"Planned",
3047430475
"Ready",
3047530476
"Processing",
3047630477
"Canceled",
30477-
"Done"
30478+
"Done",
30479+
"Failed"
3047830480
]
3047930481
},
3048030482
"start_time": {

‎api-reference/on-call.openapi.zh.json‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30374,13 +30374,14 @@
3037430374
},
3037530375
"change_status": {
3037630376
"type": "string",
30377-
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
30377+
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
3037830378
"enum": [
3037930379
"Planned",
3038030380
"Ready",
3038130381
"Processing",
3038230382
"Canceled",
30383-
"Done"
30383+
"Done",
30384+
"Failed"
3038430385
]
3038530386
},
3038630387
"link": {
@@ -30468,13 +30469,14 @@
3046830469
},
3046930470
"change_status": {
3047030471
"type": "string",
30471-
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
30472+
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
3047230473
"enum": [
3047330474
"Planned",
3047430475
"Ready",
3047530476
"Processing",
3047630477
"Canceled",
30477-
"Done"
30478+
"Done",
30479+
"Failed"
3047830480
]
3047930481
},
3048030482
"start_time": {

‎api-reference/openapi.en.json‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,6 +1320,10 @@
13201320
"description": "Alert description.",
13211321
"type": "string"
13221322
},
1323+
"detail_url": {
1324+
"description": "Console URL of this alert (`{console}/alert/detail/{alert_id}`). Empty when the deployment has no console base configured.",
1325+
"type": "string"
1326+
},
13231327
"end_time": {
13241328
"description": "Unix timestamp (seconds) when the alert recovered. 0 if still active.",
13251329
"format": "int64",
@@ -1541,6 +1545,10 @@
15411545
"description": "Alert description.",
15421546
"type": "string"
15431547
},
1548+
"detail_url": {
1549+
"description": "Console URL of this alert (`{console}/alert/detail/{alert_id}`). Empty when the deployment has no console base configured.",
1550+
"type": "string"
1551+
},
15441552
"end_time": {
15451553
"description": "Resolution time, Unix epoch seconds. 0 if still active.",
15461554
"format": "int64",
@@ -4494,13 +4502,14 @@
44944502
"type": "string"
44954503
},
44964504
"change_status": {
4497-
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
4505+
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
44984506
"enum": [
44994507
"Planned",
45004508
"Ready",
45014509
"Processing",
45024510
"Canceled",
4503-
"Done"
4511+
"Done",
4512+
"Failed"
45044513
],
45054514
"type": "string"
45064515
},
@@ -4576,13 +4585,14 @@
45764585
"type": "string"
45774586
},
45784587
"change_status": {
4579-
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
4588+
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
45804589
"enum": [
45814590
"Planned",
45824591
"Ready",
45834592
"Processing",
45844593
"Canceled",
4585-
"Done"
4594+
"Done",
4595+
"Failed"
45864596
],
45874597
"type": "string"
45884598
},

‎api-reference/openapi.legacy.zh.json‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28938,7 +28938,8 @@
2893828938
"Ready",
2893928939
"Processing",
2894028940
"Canceled",
28941-
"Done"
28941+
"Done",
28942+
"Failed"
2894228943
]
2894328944
},
2894428945
"start_time": {
@@ -29007,7 +29008,8 @@
2900729008
"Ready",
2900829009
"Processing",
2900929010
"Canceled",
29010-
"Done"
29011+
"Done",
29012+
"Failed"
2901129013
],
2901229014
"description": "变更状态"
2901329015
},

‎api-reference/openapi.zh.json‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,6 +1320,10 @@
13201320
"description": "告警描述。",
13211321
"type": "string"
13221322
},
1323+
"detail_url": {
1324+
"description": "这条告警的控制台页面(`{控制台}/alert/detail/{alert_id}`)。部署没有配置控制台地址时为空。",
1325+
"type": "string"
1326+
},
13231327
"end_time": {
13241328
"description": "告警恢复的 Unix 时间戳(秒),仍活跃时为 0。",
13251329
"format": "int64",
@@ -1541,6 +1545,10 @@
15411545
"description": "告警描述。",
15421546
"type": "string"
15431547
},
1548+
"detail_url": {
1549+
"description": "这条告警的控制台页面(`{控制台}/alert/detail/{alert_id}`)。部署没有配置控制台地址时为空。",
1550+
"type": "string"
1551+
},
15441552
"end_time": {
15451553
"description": "恢复时间,Unix 时间戳(秒)。活跃时为 0。",
15461554
"format": "int64",
@@ -4494,13 +4502,14 @@
44944502
"type": "string"
44954503
},
44964504
"change_status": {
4497-
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
4505+
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
44984506
"enum": [
44994507
"Planned",
45004508
"Ready",
45014509
"Processing",
45024510
"Canceled",
4503-
"Done"
4511+
"Done",
4512+
"Failed"
45044513
],
45054514
"type": "string"
45064515
},
@@ -4576,13 +4585,14 @@
45764585
"type": "string"
45774586
},
45784587
"change_status": {
4579-
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
4588+
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
45804589
"enum": [
45814590
"Planned",
45824591
"Ready",
45834592
"Processing",
45844593
"Canceled",
4585-
"Done"
4594+
"Done",
4595+
"Failed"
45864596
],
45874597
"type": "string"
45884598
},

‎docs.json‎

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1814,7 +1814,17 @@
18141814
{
18151815
"group": "变更集成",
18161816
"pages": [
1817-
"zh/on-call/integration/change-integration/custom-event"
1817+
"zh/on-call/integration/change-integration/custom-event",
1818+
"zh/on-call/integration/change-integration/github",
1819+
"zh/on-call/integration/change-integration/gitlab",
1820+
"zh/on-call/integration/change-integration/hcp-terraform",
1821+
"zh/on-call/integration/change-integration/argocd",
1822+
"zh/on-call/integration/change-integration/netlify",
1823+
"zh/on-call/integration/change-integration/vercel",
1824+
"zh/on-call/integration/change-integration/jfrog-artifactory",
1825+
"zh/on-call/integration/change-integration/buildkite",
1826+
"zh/on-call/integration/change-integration/launchdarkly",
1827+
"zh/on-call/integration/change-integration/jenkins"
18181828
]
18191829
},
18201830
{
@@ -3252,7 +3262,17 @@
32523262
{
32533263
"group": "Change Integration",
32543264
"pages": [
3255-
"en/on-call/integration/change-integration/custom-event"
3265+
"en/on-call/integration/change-integration/custom-event",
3266+
"en/on-call/integration/change-integration/github",
3267+
"en/on-call/integration/change-integration/gitlab",
3268+
"en/on-call/integration/change-integration/hcp-terraform",
3269+
"en/on-call/integration/change-integration/argocd",
3270+
"en/on-call/integration/change-integration/netlify",
3271+
"en/on-call/integration/change-integration/vercel",
3272+
"en/on-call/integration/change-integration/jfrog-artifactory",
3273+
"en/on-call/integration/change-integration/buildkite",
3274+
"en/on-call/integration/change-integration/launchdarkly",
3275+
"en/on-call/integration/change-integration/jenkins"
32563276
]
32573277
},
32583278
{

‎en/developer/cli.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -842,8 +842,8 @@ The following commands support `--fields` with `json` or `toon` output. Supply c
842842

843843
| Command | Structured output when `--fields` is omitted | Limit |
844844
| --- | --- | --- |
845-
| `flashduty incident list` | `incident_id`, `title`, `incident_severity`, `progress`, `start_time`, `channel_id` | 16 KiB |
846-
| `flashduty incident similar <id>` | `incident_id`, `title`, `incident_severity`, `progress`, `start_time`, `close_time`, `ack_time`, `alert_cnt`, `root_cause`, `score` | 16 KiB |
845+
| `flashduty incident list` | `incident_id`, `num`, `title`, `incident_severity`, `progress`, `start_time`, `channel_id`, `detail_url` | 16 KiB |
846+
| `flashduty incident similar <id>` | `incident_id`, `num`, `title`, `incident_severity`, `progress`, `start_time`, `close_time`, `ack_time`, `alert_cnt`, `root_cause`, `score`, `detail_url` | 16 KiB |
847847
| `flashduty incident detail <id>` | Returns full detail when `--fields` is omitted; otherwise returns only the selected fields | 8 KiB for projections only |
848848
| `flashduty alert-event list` | `event_id`, `alert_id`, `event_severity`, `event_status`, `event_time`, `title` | 16 KiB |
849849
| `flashduty channel escalate-rule-list <channel-id>` | `rule_id`, `rule_name`, `status`, `priority`, `filters` | 16 KiB |

‎en/on-call/incident/search-view-incident.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ The change event list displays the following information:
277277

278278
| Column | Description |
279279
| :--- | :--- |
280-
| **Status** | Current status of the change event, including Planned, Ready, Processing, Canceled, Done |
280+
| **Status** | Current status of the change event, including Planned, Ready, Processing, Canceled, Done, Failed |
281281
| **Change Key** | Unique identifier of the change event |
282282
| **Title** | Brief description of the change event |
283283
| **Description** | Detailed information about the change event |

‎en/on-call/integration/alert-integration/alert-sources/argocd.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ kubectl exec -n argocd deploy/argocd-notifications-controller -- \
148148
/usr/local/bin/argocd admin notifications template notify flashduty-health <app-name> --recipient flashduty
149149
```
150150

151-
No error output means Flashduty accepted the request. When the application is `Healthy`, this is a recovery message and creates no alert; in an intermediate state such as `Progressing`, Flashduty ignores it.
151+
The command prints debug logs of the request and response, including the full push URL with its `integration_key`, so do not paste the output anywhere public. A `200 OK` status on the `Received response:` line means Flashduty accepted the request. When the application is `Healthy`, this is a recovery message and creates no alert; in an intermediate state such as `Progressing`, Flashduty ignores it.
152152

153153
</Step>
154154

‎en/on-call/integration/alert-integration/alert-sources/kentik.mdx‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ Creating a notification channel requires the Administrator role in Kentik; Membe
3737
<Steps>
3838
<Step title="Create a Custom Webhook notification channel">
3939

40-
1. Log in to the Kentik Portal and go to **Settings** → **Notifications**
41-
2. Click **Add Notification Channel** and set **Type** to **Custom Webhook**. Do not choose the **JSON** type: Flashduty parses the output of the template below
40+
1. Log in to the Kentik Portal and go to **Settings** → **Notification Channels**
41+
2. Click **Add Notification Channel** and set **Type** to **Webhook** (listed as Custom Webhook). Do not choose the **JSON** type: Flashduty parses the output of the template below
4242
3. Fill in the fields as follows:
4343

4444
| Field | Value |
@@ -47,7 +47,7 @@ Creating a notification channel requires the Administrator role in Kentik; Membe
4747
| **Status** | On |
4848
| **URL** | The full Flashduty integration push URL, including `integration_key` |
4949
| **Custom Headers** | Leave empty |
50-
| **Custom Template** | Paste the template below without renaming any field |
50+
| **Custom Template** | Click **Go to Notification Template Setup** and paste the template below into **TEMPLATE** on the **Template & Preview** tab, without renaming any field |
5151
| **Uglify JSON** | Keep the default |
5252

5353
```go-template
@@ -75,7 +75,7 @@ Creating a notification channel requires the Administrator role in Kentik; Membe
7575
}
7676
```
7777

78-
4. Click **Add Notification Channel** to save
78+
4. Click **Save**
7979

8080
</Step>
8181

@@ -102,6 +102,7 @@ Do not use this channel for mitigation methods or Insights notifications: these
102102
Flashduty uses the Kentik alert ID (`AlarmID`, shown as **Alert ID** in Kentik) as the Alert Key. Every state-change notification of one Kentik alert, from Active to Cleared, carries the same alert ID, so they merge into one alert, and the clear notification closes it.
103103

104104
- **Alerts per key**: an alert policy raises a separate alert for each key (one set of values of the policy dimensions) that matches the conditions. Each alert has its own ID, so each is a separate Flashduty alert that recovers on its own
105+
- **Synthetics alerts per agent**: a Synthetics test raises a separate alert, with its own ID, for each test agent. A new failure after an alert clears gets a new alert ID and becomes a new Flashduty alert
105106
- Changes to the description, severity, metric values, or times do not change the Alert Key. Events without `AlarmID` are rejected
106107
- When one notification carries several events, each event maps to its own alert. A notification with no events is accepted but creates no alert
107108

@@ -150,6 +151,6 @@ The alert title is the Kentik event description (`Description`), such as `Alarm
150151
- **`AlarmID is required`**: the channel is used for mitigation or Insights notifications, or the template was changed. Use the channel only for alert policies and Synthetics tests
151152
- **The alert does not recover**: confirm that the alert is Cleared in Kentik. For policies with **Acknowledgement Required** on, the alert must be acknowledged in Kentik before it can clear (see [Kentik threshold policy settings](https://kb.kentik.com/v1/docs/threshold-policy-settings))
152153
- **One policy creates several alerts**: the policy alerts on each set of dimension values separately; this is expected
153-
- **Test notifications**: the content of the Kentik **Test** / **Test Notification Channels** buttons is defined by Kentik. If it carries an alert ID, Flashduty handles it as a regular alert; close that alert manually in Flashduty
154+
- **Test notifications**: **Send Test Notification** on the **Template & Preview** tab sends mock data whose event description starts with `[TEST]`; Flashduty accepts it and creates no alert. If you first load a real alert with **Enter Alert ID**, the test carries that alert's real state, and Flashduty handles it as a real notification
154155

155156
For field details, see [Kentik notification channels](https://kb.kentik.com/docs/notification-channel) and the [Kentik Custom Webhook templating reference](https://github.com/kentik/custom-notification-templates/blob/main/docs/TEMPLATING_REFERENCE.md).

0 commit comments

Comments
 (0)