那么如何对AppDynamics 进行 alert pression

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 → 开启 Suppression
  • startTimeMillis / 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、定时任务、维护窗口等场景 自动启用/关闭告警,可以:

  1. 用 Python/Bash 脚本调用 API
  2. 集成到 Ansible、Terraform 等自动化工具
  3. 在 Kubernetes Job 里定期触发(如果你的应用是云原生)

📌 补充:如何获取 API 认证信息

AppDynamics API 需要 Basic Auth 认证:

  1. 你的用户名格式:
    myuser@customer1
    
  2. 生成 Base64 认证信息:
    echo -n "myuser@customer1:mypassword" | base64
    
    结果形如:
    bXl1c2VyQGN1c3RvbWVyMTpteXBhc3N3b3Jk
    
  3. 在 API 请求头中使用:
    Authorization: Basic bXl1c2VyQGN1c3RvbWVyMTpteXBhc3N3b3Jk
    

📌 结论

  • 手动 可通过 AppDynamics UI 进行 Alert Suppression。
  • 自动化 方式使用 REST API创建、查询、删除 抑制规则。
  • 支持的方式:一次性抑制(ONE_TIME)和周期性抑制(RECURRING)。
  • 可集成 CI/CD、Kubernetes、Ansible、Terraform 进行智能管理。

在 AppDynamics 里管理 告警抑制,或者集成到 Spring Boot 项目 做智能告警都可以。

posted @ 2025-03-24 23:40  gongchengship  阅读(5)  评论(0)    收藏  举报