[转帖]SkyWalking告警使用
SkyWalking告警
SkyWalking提供了强大的监控告警功能,在监控到应用出现问题的时候,会调用webhook或者gRPC hook或者Wechat DingDing等工具报告警告信息
而且SkyWalking已经提供了许多已经写好的监控告警规则参考config目录下的oal

所有的.oal文件中的每一行对应一个metrics name 对应一种监控规则 SkyWalking使用特殊的语法进行监控度量指标的绑定
如
service_resp_time = from(Service.latency).longAvg();
from(Server.latency)表示从服务Service的维度来度量.longAvg()表示度量的平均响应时间
告警配置文件
config/alarm-settings.yml
里面提供了一些默认告警配置比如响应时长监控 数据库慢查询等
拿一个配置来举例
rules:
# Rule unique name, must be ended with `_rule`.
service_resp_time_rule: # 自定义监控项名称 必须以_rule结尾
metrics-name: service_resp_time # metrics-name 度量方式 对应.oal里面一项
op: ">" # 操作符
threshold: 1000 #阈值
period: 10 # 时间窗口 10表示10min
count: 3 # 超过阈值的次数
silence-period: 5 # 停顿时间 如果 5分钟之类多次出现这个告警 不会调用hook
message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes. # 调用 hook的消息模板
以上监控告警项翻译过来就是 一个Service服务下 平均响应时长在10分钟之类有3次以上超过1000ms就调用hook发送message中的数据(如果5min多次超过阈值不会调用2次hook)
其他的告警项可以参考官方文档进行配置 也可以参考官网文档中的oal语法进行自定义度量规则
https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-alarm/
https://skywalking.apache.org/docs/main/latest/en/concepts-and-designs/oal/
编写我们自定的webhook
SkyWalking在触发告警之后可以发送一个POST请求的webHook给我们的服务,我们的服务可以通过获取的他告警的message信息调用自己的短信服务 Wechat DingDing之类的服务通知对应的人员进行故障的处理
下面以简单的webhook为例
首先编写一个javabean来接受post发送过来的数据
@Data
public class SkyWalkingAlarmMessage {<span class="token keyword">private</span> <span class="token keyword">int</span> scopeId<span class="token punctuation">;</span>
<span class="token keyword">private</span> String scope<span class="token punctuation">;</span>
<span class="token keyword">private</span> String name<span class="token punctuation">;</span>
<span class="token keyword">private</span> String id0<span class="token punctuation">;</span>
<span class="token keyword">private</span> String id1<span class="token punctuation">;</span>
<span class="token keyword">private</span> String ruleName<span class="token punctuation">;</span>
<span class="token keyword">private</span> String alarmMessage<span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">long</span> startTime<span class="token punctuation">;</span>
}
添加一个controller接口
@GetMapping("slow")
public String slow() throws InterruptedException {
TimeUnit.SECONDS.sleep(2);
return "slow";
}<span class="token annotation punctuation">@PostMapping</span><span class="token punctuation">(</span><span class="token string">"webhook"</span><span class="token punctuation">)</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">webhook</span><span class="token punctuation">(</span><span class="token annotation punctuation">@RequestBody</span> List<span class="token generics function"><span class="token punctuation"><</span>SkyWalkingAlarmMessage<span class="token punctuation">></span></span> messages<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
messages<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span>System<span class="token punctuation">.</span>out<span class="token operator">:</span><span class="token operator">:</span>println<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
修改alarm-settings.yml配置文件
webhooks:
- http://127.0.0.1:9090/webhook #指定回调地址
# - http://127.0.0.1/go-wechat/然后多次请求 /slow接口造成响应时长慢的问题
最终/webhook收到Skywalking的告警信息

然后我们就可以拿到SkyWalking提供的告警信息来子定制自己的告警逻辑
使用nacos动态配置告警
安装nacos并启动 参考nacos官网文档略过
修改SkyWalking的application.yml配置文件中的configuration标签从none改为nacos
configuration:
selector: ${SW_CONFIGURATION:nacos}修改nacos的相关配置 主要需要修改nacos的地址 端口 账号密码 namespace 和 group
nacos:
# Nacos Server Host
serverAddr: ${SW_CONFIG_NACOS_SERVER_ADDR:127.0.0.1}
# Nacos Server Port
port: ${SW_CONFIG_NACOS_SERVER_PORT:8848}
# Nacos Configuration Group
group: ${SW_CONFIG_NACOS_SERVER_GROUP:skywalking}
# Nacos Configuration namespace
namespace: ${SW_CONFIG_NACOS_SERVER_NAMESPACE:test}
# Unit seconds, sync period. Default fetch every 60 seconds.
period: ${SW_CONFIG_NACOS_PERIOD:60}
# Nacos auth username
username: ${SW_CONFIG_NACOS_USERNAME:"nacos"}
password: ${SW_CONFIG_NACOS_PASSWORD:"nacos"}
# Nacos auth accessKey
accessKey: ${SW_CONFIG_NACOS_ACCESSKEY:""}
secretKey: ${SW_CONFIG_NACOS_SECRETKEY:""}默认Skywalking 在nacos上的namespace为 test group为skywalking
在nacos上创建test的namespace 和 添加group 为skywalking的告警配置

添加告警配置

注意 在nacos的dataId必须跟skywalking官网里面的Dynamic Configuration的key一致 参考官网https://skywalking.apache.org/docs/main/latest/en/setup/backend/dynamic-config/

此时skywalking就会监听到nacos上的动态配置的修改

注意 Skywalking只有部分配置支持动态配置 具体参考官方文档里面Dynamic Configuration 中支持的Conig Key
[转帖]SkyWalking告警使用的更多相关文章
- Apache SkyWalking 告警配置指南
Apache SkyWalking Apache SkyWalking是分布式系统的应用程序性能监视工具(Application Performance Management,APM),专为微服务.云 ...
- 全链路跟踪skywalking简介
该文章主要包括以下内容: skywalking的简介 skywalking的使用,支持多种调用中间件(httpclent,springmvc,dubbo,mysql等等) skywalking的tra ...
- Spring Cloud Alibaba - SkyWalking
SkyWalking 简介 分布式链路跟踪是分布式系统的应用程序性能监视工具,专为微服务.云原生架构和基于容器(Docker.K8s)架构而设计: 也就是说Skywalking是用于微服务的" ...
- .NET6接入Skywalking链路追踪完整流程
一.Skywalking介绍 Skywalking是一款分布式链路追踪组件,什么是链路追踪? 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软 ...
- 基于SkyWalking的分布式跟踪系统 - 异常告警
通过前面2篇文章我们搭建了SW的基础环境,监控了微服务,能了解所有服务的运行情况.但是当出现服务响应慢,接口耗时严重时我们需要立即定位到问题,这就需要我们今天的主角--监控告警,同时此篇也是SW系列的 ...
- SkyWalking配上告警更优秀
前言 对于监控系统来说,不可能让人一直盯着监控看板,而更多的是以自动提醒的方式,比如邮件.短信或微信推送等,当达到或超出预设的告警指标时,就自动发送消息提醒,下面就来说说如何配置SkyWalking的 ...
- python实现skywalking邮件告警webhook接口
1.介绍 Skywalking可以对链路追踪到数据进行告警规则配置,例如响应时间.响应百分比等.发送警告通过调用webhook接口完成.webhook接口用户可以自定义. 2.默认告警规则 告警配置文 ...
- 开源APM系统skywalking介绍与使用
介绍 SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performance Management系统.他被用于追踪.监控和诊 ...
- Skywalking部署常见问题以及注意事项
Skywalking部署常见问题以及注意事项 Intro SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performanc ...
- SkyWalking
介绍 SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performance Management系统.他被用于追踪.监控和诊 ...
随机推荐
- 初探Git:理解和使用版本控制的魔法
遥远的古代,有一位美丽的仙女叫做嫦娥.她的丈夫后羿获得了令人长生不老的鹿骨露.一天,嫦娥在好奇心的驱使下,独自偷喝了这瓶仙药. 喝下仙药的瞬间,嫦娥发现自己开始飘起,越飘越高,最后飘向了月亮.嫦娥惊慌 ...
- Android 蓝牙使用
原文地址: Android 蓝牙使用 - Stars-One的杂货小窝 公司项目需求需要实现监听蓝牙耳机连接,且要获取蓝牙耳机电量功能,翻了不少官方文档,记录下技术调研代码 注:本文没有研究蓝牙配对功 ...
- Programming Abstractions in C阅读笔记:p202-p234
<Programming Abstractions in C>学习第65天,p202-p234总结. 一.技术总结 完成第五章学习,第五章介绍递归在实际问题中的进一步应用,例如汉诺塔问题, ...
- 史上最强DIY,手工制作一只会说话的机器狗
摘要:波士顿动力的机器狗,想要么?快来跟我一起动手制作吧. 波士顿动力的机器狗了解吗? 一个会后空翻.会开门.会爬楼梯的AI. 最近,我们实验室就来了一批mini版的机器狗,虽然不会各种高难度杂技动作 ...
- 高效联调,可靠发布!华为云推出CodeArts Release发布管理服务
摘要:华为云全新推出CodeArts Release发布管理服务,旨在将华为多年形成的发布实践外溢,帮助企业提升软件发布质量和效率,降低生产环境的发布风险. 本文分享自华为云社区<高效联调,可靠 ...
- Gartner 权威解读: SBOM 采用率将于2025年达到60%
随着现代软件开发越来越依赖于第三方资源,针对软件供应链的恶意攻击数量也随之激增.据业内权威机构 Gartner 预计,软件物料清单 (SBOM) 的采用率在 2025 年将会达到 60%. Gartn ...
- 如何用AB测试完善产品激励体系
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 用户激励体系,也称用户激励机制,是为了让用户持续使用产品,而设计的一套对应规则.在用户激励体系建立过程中,产品可以 ...
- 火山引擎 DataTester 揭秘:字节如何用 A/B 测试,解决增长问题的?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 上线六年,字节跳动的短视频产品--抖音已成为许多人记录美好生活的平台.除了抖音,字节跳动旗下还同时运营着数十款 ...
- 【Logging 日志库】Cpp 日志库 boost::log 以及 glog 的对比
日志能方便地诊断程序原因.统计程序运行数据,是大型软件系统必不可少的组件之一.本文将从设计上和功能上对比 C++ 语言常见的两款日志库: boost::log 和 google-glog . 设计 b ...
- HDU-3032--Nim or not Nim?(博弈+SG打表)
题目分析: 这是一个经典的Multi-SG游戏的问题. 相较于普通的Nim游戏,该游戏仅仅是多了拆成两堆这样的一个状态.即多了一个SG(x+y)的过程. 而根据SG定理,SG(x+y)这个游戏的结果可 ...