🧭 本文为 【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.pswp.cn/diannao/90822.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90822.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90822.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于 验证码系统 详解

验证码系统的目的是&#xff1a;阻止自动化脚本访问网页资源&#xff0c;验证访问者是否为真实人类用户。它通过各种测试&#xff08;图像、行为、计算等&#xff09;判断请求是否来自机器人。一、验证码系统的整体架构验证码系统通常由 客户端 服务端 风控模型 数据采集 四…

微服务集成snail-job分布式定时任务系统实践

前言 从事开发工作的同学&#xff0c;应该对定时任务的概念并不陌生&#xff0c;就是我们的系统在运行过程中能够自动执行的一些任务、工作流程&#xff0c;无需人工干预。常见的使用场景包括&#xff1a;数据库的定时备份、文件系统的定时上传云端服务、每天早上的业务报表数…

依赖注入的逻辑基于Java语言

对于一个厨师&#xff0c;要做一道菜。传统的做法是&#xff1a;你需要什么食材&#xff0c;就自己去菜市场买什么。这意味着你必须知道去哪个菜市场、怎么挑选食材、怎么讨价还价等等。你不仅要会做菜&#xff0c;还要会买菜&#xff0c;职责变得复杂了。 而依赖注入就像是有一…

skywalking镜像应用springboot的例子

目录 1、skywalking-ui连接skywalking-oap服务失败问题 2、k8s环境 检查skywalking-oap服务状态 3、本地iidea启动服务连接skywalking oap服务 4、基于apache-skywalking-java-agent-9.4.0.tgz构建skywalking-agent镜像 4.1、Dockerfile内容如下 4.2、AbstractBuilder.M…

3. java 堆和 JVM 内存结构

1. JVM介绍和运行流程-CSDN博客 2. 什么是程序计数器-CSDN博客 3. java 堆和 JVM 内存结构-CSDN博客 4. 虚拟机栈-CSDN博客 5. JVM 的方法区-CSDN博客 6. JVM直接内存-CSDN博客 7. JVM类加载器与双亲委派模型-CSDN博客 8. JVM类装载的执行过程-CSDN博客 9. JVM垃圾回收…

UnityShader——SSAO

目录 1.是什么 2.原理 3.各部分解释 2.1.从屏幕空间到视图空间 2.2.以法线半球为基&#xff0c;获取随机向量 2.3.应用偏移&#xff0c;并将其转换为uv坐标 2.4.获取深度 2.5.比较并计算贡献 2.6.最后计算 4.改进 4.1.平滑过渡 4.2.模糊 5.变量和语句解释 5.1._D…

【设计模式】外观模式(门面模式)

外观模式&#xff08;Facade Pattern&#xff09;详解一、外观模式简介 外观模式&#xff08;Facade Pattern&#xff09; 是一种 结构型设计模式&#xff0c;它为一个复杂的子系统提供一个统一的高层接口&#xff0c;使得子系统更容易使用。 外观模式又称为门面模式&#xff0…

【6.1.1 漫画分库分表】

漫画分库分表 “数据量大了不可怕&#xff0c;可怕的是不知道如何优雅地拆分。” &#x1f3ad; 人物介绍 架构师老王&#xff1a;资深数据库架构专家&#xff0c;精通各种分库分表方案Java小明&#xff1a;对分库分表充满疑问的开发者ShardingSphere师傅&#xff1a;Apache S…

Tomcat问题:启动脚本startup.bat中文乱码问题解决

一、问题描述 我们第一次下载或者打开Tomcat时可能在控制台会出现中文乱码问题二、解决办法 我的是8.x版本的tomcat用notepad打开&#xff1a;logging.properties 找到&#xff1a;java.util.logging.ConsoleHandler.encoding设置成GBK&#xff0c;重启tomcat即可

Linux中Gitee的使用

一、Gitee简介&#xff1a;Gitee&#xff08;码云&#xff09;是中国的一个代码托管和协作开发平台&#xff0c;类似于GitHub或GitLab&#xff0c;主要面向开发者提供代码管理、项目协作及开源生态服务。适用场景个人开发者&#xff1a;托管私有代码或参与开源项目。中小企业&a…

Oracle大表数据清理优化与注意事项详解

一、性能优化策略 1. 批量处理优化批量大小选择&#xff1a; 小批量(1,000-10,000行)&#xff1a;减少UNDO生成&#xff0c;但需要更多提交次数中批量(10,000-100,000行)&#xff1a;平衡性能与资源消耗大批量(100,000行)&#xff1a;适合高配置环境&#xff0c;但需监控资源使…

Anaconda及Conda介绍及使用

文章目录Anaconda简介为什么选择 Anaconda&#xff1f;Anaconda 安装Win 平台macOS 平台Linux 平台Anaconda 界面使用Conda简介Conda下载安装conda 命令环境管理包管理其他常用命令Jupyter Notebook&#xff08;可选&#xff09;Anaconda简介 Anaconda 是一个数据科学和机器学…

外包干了一周,技术明显退步

我是一名本科生&#xff0c;自2019年起&#xff0c;我便在南京某软件公司担任功能测试的工作。这份工作虽然稳定&#xff0c;但日复一日的重复性工作让我逐渐陷入了舒适区&#xff0c;失去了前进的动力。两年的时光匆匆流逝&#xff0c;我却在原地踏步&#xff0c;技术没有丝毫…

【QT】多线程相关教程

一、核心概念与 Qt 线程模型 1.线程与进程的区别: 线程是程序执行的最小单元&#xff0c;进程是资源分配的最小单元&#xff0c;线程共享进程的内存空间(堆&#xff0c;全局变量等)&#xff0c;而进程拥有独立的内存空间。Qt线程只要关注同一进程内的并发。 2.为什么使用多线程…

VS 版本更新git安全保护问题的解决

问题&#xff1a;我可能移动了一个VS C# 项目&#xff0c;然后&#xff0c;发现里面的git版本检测不能用了 正在打开存储库: X:\Prj_C#\3D fatal: detected dubious ownership in repository at X:/Prj_C#/3DSnapCatch X:/Prj_C#/3D is owned by:S-1-5-32-544 but the current …

Git常用命令一览

Git 是基于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版本库的方式&#xff0c;不必服务器端软件支持&#xff08;ps&#xff1a;这得分是用什么样的服务端&#xff0c;使用http协议或者git协议等不太一样。并且在…

基于 JSON 文件定位图片缺陷点并保存

基于JSON的图片缺陷处理流程 ├── 1. 输入检查 │ ├── 验证图片文件是否存在 │ └── 验证JSON文件是否存在 │ ├── 2. 数据加载 │ ├── 打开并加载图片 │ └── 读取并解析JSON文件 │ ├── 3. 缺陷信息提取 │ ├── 检查JSON中是否存在shapes字…

Redis基础学习(五大值数据类型的常用操作命令)

目录 一、Redis基本知识与Redis键&#xff08;key&#xff09;常用操作命令。 二、Redis的五大值的数据类型。&#xff08;value&#xff09; 三、Redis关于键&#xff08;key&#xff09;的值常用操作指令表格统计。 &#xff08;1&#xff09;字符串&#xff08;String&#…

Ubuntu——办公软件 LibreOffice 安装与使用指南

十四、LibreOffice 安装与使用1、核心组件组件​​​​图标​​​​对应MS Office​​​​核心功能定位​​​​Writer​​&#x1f4dd;Word专业文档处理与排版​​Calc​​&#x1f4ca;Excel数据计算与分析​​Impress​​&#x1f3ac;PowerPoint演示文稿制作​​Draw​​&…

Securecrt丢失tab以及终端重新配色

今天在使用 Securecrt 的时候&#xff0c;发现 Securecrt 的 tab 标签消失不见了&#xff0c;仔细回想起来&#xff0c;应该是上一次误按了 alt enter 最大化&#xff0c;然后导致配置丢失的问题 还有表现就是菜单中的 Session Tabs 无论勾选还是不勾选都没有任何变化&#xf…