前言
对于监控系统来说,不可能让人一直盯着监控看板,而更多的是以自动提醒的方式,比如邮件、短信或微信推送等,当达到或超出预设的告警指标时,就自动发送消息提醒,下面就来说说如何配置SkyWalking的告警。
正文
在说告警之前呢,给小伙伴先演示一下SkyWalking跟踪数据库操作链路及监控数据库指标,支持EF Core的形式操作数据库,可以显示对应的SQL语句和执行时间等信息。
1. 跟踪数据库请求
对于项目来说,直接或间接访问数据库是避免不了的;对于业务数据量比较大或高并发场景,很多时候会因为数据库操作过慢或不及时返回数据,导致整个系统体验极差,所以对系统操作数据库的跟踪和监控少不了,以下就来演示一下SkyWalking对数据库操作的跟踪和监控。
1.1 环境准备
1.2 项目集成EF Core
关于EF Core的使用,之前分享过一篇很详细的文章,可参考查阅(跟我一起学.NetCore之EF Core 实战入门,一看就会)。
集成EF Core之后,为方便演示看效果,得增加一个API进行访问,这个API就是简单的通过EF访问数据库,如下:
1.3 看效果
运行项目,访问上一步编写的GetUser接口,然后再看SkyWalking的记录情况,如下:
可以切换成列表的形式,看着相对更直观一点:
点击对应每层可显示对应的详细信息,如点击数据库操作相关层,可显示具体的SQL语句及其他信息,如下:
更多操作演示,就留给小伙伴自己操作吧。
2. 告警配置及使用
自动告警基本上是监控系统的标配,接下来看看在SkyWalking中是如何使用的。
2.1 告警规则配置
所谓告警规则其实就是配置的告警条件及检查周期,根据业务需要进行配置。
在SkyWalking中配置告警条件是在后台服务端进行的,即环境搭建中启动的容器skywalking-oap,见上篇文章;
由于演示是采用Docker的形式启动的容器,也没有进行数据卷挂载,所以我们需要进入对应的容器进行配置,如下:
执行如下命令进入到SkyWalking后台容器;如果不是以容器启动的,直接进到配置文件目录修改对应文件即可;
通过cat alarm-settings.yml可以查阅文件内容,如下:
规则常用指标解读:
rule name:规则名称,必须唯一,必须以 _rule结尾;
metrics name:oal(Observability Analysis Language)脚本中的度量名;名称在SkyWalking后端服务中已经定义,进入容器skywalking-oap之后,进入如下目录就可以找到。
如果想更多了解oal,参照文档:
include names:本规则告警生效的实体名称,如服务名,终端名;
exclude-names:将此规则作用于不匹配的实体名称上,如服务名,终端名;
threshold:阈值,可以是一个数组,即可以配置多个值;
op:操作符, 可以设定 >, <, =;
period:多久检查一次当前的指标数据是否符合告警规则;以分钟为单位
count:超过阈值条件,达到count次数,触发告警;
silence period:在同一个周期,指定的silence period时间内,忽略相同的告警消息;
更多告警规则详情,请参照这个地址:
这里挑一个模板规则稍微改一下,用于后续演示,如下:
规则概要:服务成功率在过去2分钟内低于80%
2.2 告警API编写
有了规则之后,如何进行自动发送告警信息呢?
这个本质还是SkyWalking根据规则进行检查,如果符合规则条件,就通过WebHook、gRPCHook、WeChat Hook、Dingtalk Hook等方式进行消息通知;接收到告警数据信息之后,可以自行处理消息。这里为了方便,就采用WebHook的方式进行演示,即触发告警条件之后,SkyWalking会调用配置的WebHook 接口,并传递对应的告警信息;
SkyWalking后端服务会以Post的方式调用WebHook的接口,并以Json的形式向接口传递告警信息,如下格式:
知道传递告警的信息的格式后,写API的时候就得以此格式接收。
这里只是一个常规的API,关于发邮件的配置,之前在一篇文章中分享的很详细(来,Consul 服务发现入个门(一看就会的那种))。
由于SkyWalking的环境搭建在了我的云 服务器 ,本地电脑没有配置外网访问,所以只能将API发布到云服务器上,这样SkyWalking后端服务调用告警接口就可以了,所以这里就在规则配置文件的最下面配置WebHook调用的接口地址即可;步骤如下:
修改alarm-settings.yml的文件,在文件最后配置WebHook地址,可以配置多个,如下:
告警规则和WebHook地址配置完毕之后,重启一下容器,如下:
2.3 运行看效果
启动项目,然后访问之前写好的接口,接口中特意搞了个异常,所以每次都会报错,错误率肯定是低于设置的规则80%,稍等一会就会产生告警信息;
界面上也可以看到告警信息,如下:
因为触发告警时会调用我们编写的WebHook接口,我们针对告警信息发送了邮件,所以同时会收到对应的告警邮件
演示代码:
总结
好了,关于告警的配置和使用就简单说这么多吧,如果有其他配置需求,可以参照官网,使用方式大同小异;后续会记录一些使用经验;

谁有好听一点的歌啊 是DJ的 韩文的也行
walking in the sun不爱上她
迈克尔杰克逊Break of Dawn 中文歌词
Break Of Dawn 破晓时分Hold my hand, feel the touch of your body cling to mine 握住我的手,感受我们迸出的火花 You and me, making love all the way through another night 你和我,缠绵在如此的美景良辰 I remember you and I walking though the park at night 想起你我夜晚在公园的漫步 Kiss and touch, nothing much, let it blow just touch and go 深情地亲吻与抚摩 Love me more, never leave me alone by house of love 更爱我,别让我孤独People talk, people say what we have is just a game 总有闲言碎语,说我们无非是在游戏 Oh, I’ll never let you go, come here girl 但我绝不让你走,到我身边来 Just got to make sweet love ‘till the break of dawn 如此良宵,只属于你我 [CHORUS] I don’t want the sun to shine I wanna make love 我不要天亮,只想留住这美好夜晚 Just this Magic in your eyes and in my heart这份魔力,在你眼中闪烁,在我心中奏响 I don’t know what I’m gonna do I can’t stop loving you 没有你的爱,我将不知所措 I won’t stop till break of dawn making’ love 与你缠绵,直到黎明破晓 Hold my hand, feel the sweat, 握紧我的手 yes you’ve got me nervous yet, 心跳在加速 Let me groove, let me soothe, 让我来起舞,让我来抚慰 let me take you on a cruise 让我带你到处去漫游 There’s imagiNATion workingnever been there before Have you ever wanted to dream 你是否曾经梦想 about those places you’ve never know 那些你从未去过的地方 Break of dawn, there’s no sun up in the sky 破晓时分,天空还没有太阳 Break of dawn, I can see it in your eyes 破晓时分,我可以在你眼中看到晨曦的光芒 Break of dawn, girl you got to understand 破晓时分,女孩你要了解 It’s the way that I love you, 这就是我爱你的方式 let me show you I’m your man 我就是你的唯一 Break of dawn 让我证明给你看 [CHORUS x 2] Let’s not wait, the sun is out, let’s get up and let’s get out 朝阳升起,我们外出游玩 It’s the day, a brand new day, let’s both go outside and play 新的一天已经来到, Let us walk down the park, making love till it’s dark 让我们再到公园去漫步,继续我们的缠绵和爱恋 Can you move, can you soothe, 你能来吗,你能抚平我心中的创伤 ‘Till the break of dawn 直到破晓时分 And you know it’s true, oh 你会知道这就是真爱 谢谢采纳~
翻译成英文 谢谢
The blue sky hangs the sun of catch fire the ball heartily of surfing, at this time, the ocean is suffused with to have built-up surge and the big waves is like Nu and sent out huge people barefoot Ya son tramples soft fine but happy voice joke, hour but bend from the waist ten shells, hour but pursue a to descend a string laughter with happiness string on the sea widely to hope to go to, 35 large groups people wear a colourful swimwear, or the joys fight water battle quickly, or happily enjoy a trip to in the sea, or the side wear method ground a heap sand fortressDeep blue sea water and blue sky constituted an incomparable and matchless painting take the sea breeze of in fine threads and salty flavor, lightly fondle peoples noodles delightfully fresh air let everybody free of mind and happy of , the 1 F rushes into 1 F and be like a silk similar and cool sea breeze lightly once fondled, scan widely to hope to go to, brought about the wave head of an on the sea surface, in multiple layers fold, seem in the reef of daut the near the bank and also often sent out the sound of Hua very blue sea water flushes beautiful shell of flickering give out light, and the fire bright sunlight, be like a little stars.
发表评论