当前位置: 首页 > news >正文

【SkyWalking】配置告警规则并通过 Webhook 推送钉钉通知

🧭 本文为 【SkyWalking 系列】第 3 篇
👉 系列导航:点击跳转

【SkyWalking】配置告警规则并通过 Webhook 推送钉钉通知

简介

介绍 SkyWalking 告警机制、告警规则格式以及如何通过 webhook 方式将告警信息发送到钉钉。

引入

服务响应超时、失败率升高是系统预警的重点。SkyWalking 提供默认规则与自定义 webhook 推送机制,快速闭环告警链路。


SkyWalking 告警配置详解

在微服务系统中,及时发现接口异常、响应变慢、调用失败等问题是保障系统稳定性的关键。SkyWalking 不仅能提供可视化链路追踪,也内置了告警机制,能够自动监控服务运行状态并触发预警。

1 告警触发场景示例

当某个接口出现较长延迟、失败率升高时,SkyWalking 会自动检测并触发告警,如下图所示:

在这里插入图片描述

你可以在 Web UI 的 Alarm 页面 中查看最近的告警记录,包括服务名称、告警时间、告警指标和描述等信息。

2 SkyWalking 默认内置的告警规则

SkyWalking 提供了一些常用的默认规则,这些规则覆盖了服务响应时间、成功率、调用性能等关键维度。例如:

告警名称触发条件说明
服务平均响应时间告警最近 3 分钟内服务的平均响应时间 > 1 秒
服务成功率告警最近 2 分钟内服务成功率 < 80%
服务 P90 响应时间告警最近 3 分钟内 P90 响应时间 > 1 秒
实例平均响应时间告警最近 2 分钟内服务实例的平均响应时间 > 1 秒

随着 SkyWalking 的版本不断迭代,也在持续新增其他告警规则

3 告警配置文件位置与格式

所有告警规则统一配置在:config/alarm-settings.yml

配置文件示例截图如下所示:

在这里插入图片描述

4 告警规则结构说明

每条规则都是以 YAML 格式编写,由如下属性组成:

属性含义说明
metrics-name指标名称,如 service_resp_time、service_percentile
op运算符,如 ><=
threshold阈值(超过/低于该值触发告警)
period检查周期(单位:分钟)
count连续满足条件的次数,才会触发告警
silence-period告警静默周期,单位分钟,在此期间不重复告警
message告警通知内容,支持模板变量,如 {{name}}{{value}}

每个规则都由相同的属性组成,这些属性的含义如下图:

示例规则:
rules:slow_response_rule:metrics-name: service_resp_timeop: ">"threshold: 1000period: 1count: 3silence-period: 5message: |[服务慢响应告警]服务名称: {{ name }}平均响应时间: {{ value }}ms

如果想要调整默认的规则,比如监控返回的信息,监控的参数等等,只需要改动上述配置文件中的参数即可。

5 告警通知:Webhook 钩子集成

如果你想将告警信息实时推送给运维人员或系统平台(如钉钉、飞书、微信、邮件等),SkyWalking 提供了对 Webhook 机制的原生支持

Webhook 本质上是一个 POST 请求,一旦告警被触发,SkyWalking 会自动将告警信息以 JSON 格式推送到你配置的 HTTP 接口。

✅ 修改规则参数

除了内置的几种默认规则外,你也可以按需修改响应时间、成功率等阈值,或者新增自定义规则,只需编辑:config/alarm-settings.yml

通过调整其中的参数即可灵活控制告警粒度与频率。

✅ Webhook 告警触发机制说明
  • 告警触发后,将以 POST 请求 的方式调用指定的 webhook 地址;
  • 请求体为 application/json 格式,内容为 AlarmMessage 实例;
  • Webhook 接口的入参字段必须与 AlarmMessage 类一致。

⚠️ 注意:

AlarmMessage 类在不同 SkyWalking 版本中字段可能会变化,请前往你使用版本的源码中查看:

org.apache.skywalking.oap.server.core.alarm.AlarmMessage

示意图如下:

✅ 示例:创建自定义告警接收模块

你可以创建一个新微服务(如 skywalking-alarm),并定义一个简单的告警接收接口:

@RestController
@RequestMapping("/alarm")
public class AlarmWebhookController {@PostMappingpublic void receiveAlarm(@RequestBody AlarmMessage message) {// 可将告警发送至钉钉、邮件、日志或数据库等System.out.println("接收到告警: " + message);}
}
✅ 配置 alarm-settings.yml 中的 webhook 地址

config/alarm-settings.yml 文件中添加:

webhooks:- http://localhost:1004/alarm  # 自定义告警接收接口地址
✅ 测试告警触发

使用前文中示例接口(如 http://localhost:1003/order/list),进行多次慢响应调用(模拟接口卡顿,例如睡眠 2 秒),触发响应时间告警。

触发成功后,SkyWalking 会:

  • 控制台打印告警日志;
  • 向 webhook 接口发送 JSON 告警数据;
  • 接收模块将其记录或转发至通知渠道。

✅ 总结

Webhook 机制让 SkyWalking 的告警不仅停留在日志层面,还能触发外部通知或自动化运维脚本。配合钉钉机器人、飞书通知、企业微信或邮件平台,你可以快速搭建完整的微服务监控告警链路,提升故障响应效率。


🧩 本文为【SkyWalking系列】第 3 篇
📌 喜欢记得点赞、收藏,或关注我持续更新更多微服务实战内容!
📮 有问题欢迎评论区讨论,看到必回 🙌
👉 下一篇预告:系列4:SkyWalking】性能剖析实战:定位慢接口与阻塞代码(欢迎提前收藏)


http://www.dtcms.com/a/272251.html

相关文章:

  • HP EVA SAN 数据恢复利器:Data recovery plugin for HP StorageWorks EVA
  • 前端项目集成husky + lint-staged + commitlint
  • Web-Bench:基于web标准和框架的benchmark
  • Fiddler中文版全面评测:功能亮点、使用场景与中文网资源整合指南
  • 什么是强化学习(RL)--2
  • 如何在VMware里的飞牛OS访问主机里面图片文件夹
  • 【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题
  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(三)
  • 华为昇腾NPU与NVIDIA CUDA生态兼容层开发实录:手写算子自动转换工具链(AST级代码迁移方案)
  • 缓存穿透与击穿多方案对比与实践指南
  • 设计模式的六大设计原则
  • AI问答之手机相机专业拍照模式的主要几个参数解释
  • 【笔记】使用 html 创建网址快捷方式
  • 达梦数据库DMDRS搭建单向dm8-dm8数据同步
  • 【工具教程】批量提取OCR图片中固定文字保存WPS表格,批量OCR识别图像中的文字保存到Excel表格的操作步骤和注意事项
  • 虚拟环境已安装该包,且已激活,但报错
  • 智能体的记忆系统:短期记忆、长期记忆与知识图谱
  • Spring for Apache Pulsar->Reactive Support->Quick Tour
  • 【LeetCode100】--- 1.两数之和【复习回滚】
  • 氢能源杂谈
  • 深入拆解Spring核心思想之一:IoC
  • 天津医大用网络药理学+分子对接发表中科院二区IF5
  • 【Python】基于Python提取图片验证码
  • SYM32第二十天 ESP8266-01S和电脑实现串口通信(3)
  • 羊肚菌自动采收车设计cad【7张】+三维图+设计说明书
  • 电脑息屏工具,一键黑屏超方便
  • 双esp8266-01之间UDP透传传输,自定义协议
  • LlamaFactory Demo
  • 使用langchain连接llama.cpp部署的本地deepseek大模型开发简单的LLM应用
  • CTFHub————Web{信息泄露[备份文件下载(vim缓存、.DS_Store)]}