ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Keep API 完整指南:十分钟跑通告警自动化,三步接入自定义 Provider

Keep API 完整指南:十分钟跑通告警自动化,三步接入自定义 Provider Keep API 完整指南十分钟跑通告警自动化三步接入自定义 Provider【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep告警散落在七八个监控系统里、值班时被电话轰炸你需要一个统一入口把它们收拢。Keep 是开源告警管理与自动化平台Keep API 把这个入口变成了可编程接口。下面从生成密钥到扩展对接完成第一次告警自动化。一、能力地图先弄清它能干什么这一节给你一张大致地图 ️写代码之前先知道这组接口能做什么。Keep 把第三方对接拆成 Provider 工作流 两件事Provider 是某个具体系统的连接器工作流定义某类告警来了该做什么。Provider 的交互分成三类数据查询从 Datadog、Cloudwatch 等拉取指标与日志告警管理读写 Sentry、PagerDuty 里的告警与事件状态通知分发推送到 Slack、Email、Twilio 短信三类组合起来就是告警自动化的常见闭环接收 → 判断 → 处置。目前已内置 130 第三方服务逐一可在 Provider 总览 里查到。二、十分钟上手从生成 API Key 到跑通第一条工作流这一节带你走最短路径 拿密钥、读一条告警、提交一条工作流。1. 生成你的第一把 API KeyKeep API 用 API Key 认证所有请求带同一个头。密钥可以直接在 UI 的 API Key 页面生成也可以调密钥管理接口创建敏感配置统一由 secretmanager 模块托管代码里不落明文。2. 拉出第一条告警这条请求会列出每条告警的最新状态支持分页参数curl -H Authorization: Api-Key YOUR_API_KEY \ http://localhost:8080/api/v1/alerts?limit20page0响应里的关键字段字段含义示例值fingerprint告警唯一标识更新时保持稳定m0em5xk2name告警名称内存使用率过高status当前状态firingseverity严重级别criticalproviderId来源 Providernode-exporter-013. 提交第一个工作流调POST /api/v1/workflows请求体由触发条件和动作组成。这条示例让内存使用率过高告警一出现就转发到 Slack{ name: mem-pressure-notifier, triggers: [{ type: alert, filters: [{ key: name, value: 内存使用率过高 }] }], actions: [{ provider: slack, type: notify, message: 内存告警已触发请及时查看 }] }提交后这条工作流会出现在 UI 里触发条件命中即生效。三、平台没对接的系统自己接一个列表里没有现成 Provider 时这一节教你二次开发 的三步走写类 → 定义配置 → 注册新系统就能被工作流调用。第一步写 Provider 类继承 BaseProvider核心是实现三个方法validate_config校验并保存认证配置_query写数据查询逻辑dispose释放连接class InfluxdbLiteProvider(BaseProvider): PROVIDER_DISPLAY_NAME InfluxDB Lite PROVIDER_CATEGORY [Monitoring] def validate_config(self): self.authentication_config InfluxdbLiteAuthConfig(**self.config.authentication) def _query(self, query): return self._api_client.query(query) def dispose(self): self._api_client.close()第二步用 dataclass 定义认证配置每个字段用 metadata 声明required和sensitiveUI 会据此自动生成带掩码的表单dataclasses.dataclass class InfluxdbLiteAuthConfig: endpoint: str dataclasses.field(metadata{required: True, description: API 地址}) token: str dataclasses.field(metadata{required: True, sensitive: True})第三步在包里导出注册__init__.py里导出这两个名字工厂就能发现它之后在 Provider 页面安装即可from .influxdb_lite_provider import InfluxdbLiteProvider, InfluxdbLiteAuthConfig __all__ [InfluxdbLiteProvider, InfluxdbLiteAuthConfig]更完整的约定webhook、分类声明等见 新增 Provider 指南。四、两个实战组合分级路由 Grafana 出图这一节给两个能直接抄的组合 按严重级别分流告警以及用 API 取数出图。工作流引擎的核心在 workflowmanager工作流全部用 YAML 定义支持条件分支。工作流集成最常见的用法就是下面这个内存告警按严重级别分流critical 去 PagerDuty 建单其余走 Slack 通知workflow: id: mem-alert-router name: Memory Alert Router triggers: - type: alert filters: - key: name value: 内存使用率过高 actions: - name: page-pagerduty if: {{ alert.severity critical }} provider: type: pagerduty with: title: 内存告警升级{{ alert.name }} - name: slack-notice if: {{ alert.severity ! critical }} provider: type: slack with: message: 内存告警 {{ alert.name }}{{ alert.severity }}先记录一下这份文件可以直接放进 examples/workflows/ 当模板用。另一个组合是可视化用 Provider 调查询接口拿到指标序列后交给 Grafana 出图接入方式参考 grafana-provider五、性能调优清单三条习惯少踩坑这一节把三条接口使用习惯 ⚡ 压成清单逐条核对批量同步告警时体感差距很明显批量优先批量查询和富化走/api/v1/alerts/batch一次处理别循环调单条接口条件请求带上If-None-Match数据没变化直接返回 304省流量也省解析长任务异步先提交再拿X-Request-ID轮询状态不阻塞等结果六、资源索引文档、工具与延伸阅读这一节把卡住时该去哪查的地方列全Swagger UI本地部署后直接打开/api/docs全部接口可在线试调Postman 集合examples/providers/ 里有现成的 Provider 测试请求SDK 生成docs/openapi.json 是标准 OpenAPI 契约丢给 openapi-generator 就能生成客户端代码链路追踪otel-shared 目录自带 OpenTelemetry 配置工作流执行带 trace延伸阅读工作流开发指南 · Provider 开发最佳实践 · 系统架构详解参与开发入口在 CONTRIBUTING.md你现在就可以开始生成一把 API Key用 curl 拉一条真实告警从 examples/workflows/ 抄一个模板改掉通知对象上线遇到没对接的系统按第三节三步写下你的第一个自定义 Provider【免费下载链接】keepThe open-source AIOps and alert management platform项目地址: https://gitcode.com/GitHub_Trending/kee/keep创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表