AppDynamics 提供 RESTful API,可以用于管理和调整 Alert Suppression(告警抑制) 相关的功能。你可以通过 API 创建、更新、删除或查询 告警抑制规则,从而在特定时间段内抑制告警,避免不必要的通知(例如维护窗口期间)。
📌 AppDynamics Alert Suppression 方式
1. 通过 UI 配置 Suppression(手动方式)
在 AppDynamics Controller 界面,可以手动配置 Alert & Respond → Health Rules → Alert Suppression,选择合适的时间段进行抑制。
2. 通过 RESTful API 进行 Alert Suppression
如果你需要通过 自动化脚本或外部系统 调整告警抑制,可以使用 AppDynamics 的 Alert & Respond API。
📌 使用 REST API 进行 Alert Suppression
🔹 API 端点
POST /controller/api/rules/{policy-id}/suppressions
policy-id
:对应告警策略(Alert Policy)的 ID。
✅ 示例 1:创建 Alert Suppression(抑制告警)
curl -X POST "https://your-appd-controller.com/controller/api/rules/12345/suppressions" \-H "Content-Type: application/json" \-H "Authorization: Basic YOUR_ENCODED_CREDENTIALS" \-d '{"name": "Maintenance Suppression","description": "Suppress alerts during maintenance","enabled": true,"startTimeMillis": 1711605600000, # 开始时间(UNIX 毫秒时间戳)"endTimeMillis": 1711612800000, # 结束时间(UNIX 毫秒时间戳)"schedule": {"type": "ONE_TIME", # 也可以是 RECURRING"recurrencePattern": null}}'
📌 解释
enabled: true
→ 开启 SuppressionstartTimeMillis / endTimeMillis
→ 设定时间范围schedule.type: ONE_TIME
→ 一次性抑制(也可以设置为RECURRING
周期性)
✅ 示例 2:获取所有 Suppression 规则
curl -X GET "https://your-appd-controller.com/controller/api/rules/alert-suppressions" \-H "Authorization: Basic YOUR_ENCODED_CREDENTIALS"
这个 API 会返回所有已配置的告警抑制规则。
✅ 示例 3:删除 Suppression 规则
curl -X DELETE "https://your-appd-controller.com/controller/api/rules/suppressions/{suppression-id}" \-H "Authorization: Basic YOUR_ENCODED_CREDENTIALS"
{suppression-id}
是你想要删除的告警抑制规则 ID。
📌 自动化 Alert Suppression
如果你希望自动管理 Suppression,比如 在 CI/CD Pipeline、定时任务、维护窗口等场景 自动启用/关闭告警,可以:
- 用 Python/Bash 脚本调用 API
- 集成到 Ansible、Terraform 等自动化工具
- 在 Kubernetes Job 里定期触发(如果你的应用是云原生)
📌 补充:如何获取 API 认证信息
AppDynamics API 需要 Basic Auth 认证:
- 你的用户名格式:
myuser@customer1
- 生成 Base64 认证信息:
结果形如:echo -n "myuser@customer1:mypassword" | base64
bXl1c2VyQGN1c3RvbWVyMTpteXBhc3N3b3Jk
- 在 API 请求头中使用:
Authorization: Basic bXl1c2VyQGN1c3RvbWVyMTpteXBhc3N3b3Jk
📌 结论
- 手动 可通过 AppDynamics UI 进行 Alert Suppression。
- 自动化 方式使用 REST API 来 创建、查询、删除 抑制规则。
- 支持的方式:一次性抑制(ONE_TIME)和周期性抑制(RECURRING)。
- 可集成 CI/CD、Kubernetes、Ansible、Terraform 进行智能管理。
在 AppDynamics 里管理 告警抑制,或者集成到 Spring Boot 项目 做智能告警都可以。