偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SkyWalking 配上告警更優(yōu)秀

安全 應(yīng)用安全
對(duì)于監(jiān)控系統(tǒng)來(lái)說(shuō),不可能讓人一直盯著監(jiān)控看板,而更多的是以自動(dòng)提醒的方式,比如郵件、短信或微信推送等,當(dāng)達(dá)到或超出預(yù)設(shè)的告警指標(biāo)時(shí),就自動(dòng)發(fā)送消息提醒,下面就來(lái)說(shuō)說(shuō)如何配置SkyWalking的告警。

[[432181]]

本文轉(zhuǎn)載自微信公眾號(hào)「Code綜藝圈」,作者Code綜藝圈。轉(zhuǎn)載本文請(qǐng)聯(lián)系Code綜藝圈公眾號(hào)。

前言

對(duì)于監(jiān)控系統(tǒng)來(lái)說(shuō),不可能讓人一直盯著監(jiān)控看板,而更多的是以自動(dòng)提醒的方式,比如郵件、短信或微信推送等,當(dāng)達(dá)到或超出預(yù)設(shè)的告警指標(biāo)時(shí),就自動(dòng)發(fā)送消息提醒,下面就來(lái)說(shuō)說(shuō)如何配置SkyWalking的告警。

正文

在說(shuō)告警之前呢,給小伙伴先演示一下SkyWalking跟蹤數(shù)據(jù)庫(kù)操作鏈路及監(jiān)控?cái)?shù)據(jù)庫(kù)指標(biāo),支持EF Core的形式操作數(shù)據(jù)庫(kù),可以顯示對(duì)應(yīng)的SQL語(yǔ)句和執(zhí)行時(shí)間等信息。

1. 跟蹤數(shù)據(jù)庫(kù)請(qǐng)求

對(duì)于項(xiàng)目來(lái)說(shuō),直接或間接訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)是避免不了的;對(duì)于業(yè)務(wù)數(shù)據(jù)量比較大或高并發(fā)場(chǎng)景,很多時(shí)候會(huì)因?yàn)閿?shù)據(jù)庫(kù)操作過(guò)慢或不及時(shí)返回?cái)?shù)據(jù),導(dǎo)致整個(gè)系統(tǒng)體驗(yàn)極差,所以對(duì)系統(tǒng)操作數(shù)據(jù)庫(kù)的跟蹤和監(jiān)控少不了,以下就來(lái)演示一下SkyWalking對(duì)數(shù)據(jù)庫(kù)操作的跟蹤和監(jiān)控。

1.1 環(huán)境準(zhǔn)備

這里的SkyWalking環(huán)境搭建就不重復(fù)操作了,可以參考上一篇(分布式/微服務(wù)必配APM系統(tǒng),SkyWalking讓你不迷路)。

1.2 項(xiàng)目集成EF Core

關(guān)于EF Core的使用,之前分享過(guò)一篇很詳細(xì)的文章,可參考查閱(跟我一起學(xué).NetCore之EF Core 實(shí)戰(zhàn)入門(mén),一看就會(huì))。

集成EF Core之后,為方便演示看效果,得增加一個(gè)API進(jìn)行訪(fǎng)問(wèn),這個(gè)API就是簡(jiǎn)單的通過(guò)EF訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),如下:

注:這里的項(xiàng)目需要集成SkyWalking,和上一篇一樣,不需要做額外處理。

1.3 看效果

運(yùn)行項(xiàng)目,訪(fǎng)問(wèn)上一步編寫(xiě)的GetUser接口,然后再看SkyWalking的記錄情況,如下:

可以切換成列表的形式,看著相對(duì)更直觀一點(diǎn):

點(diǎn)擊對(duì)應(yīng)每層可顯示對(duì)應(yīng)的詳細(xì)信息,如點(diǎn)擊數(shù)據(jù)庫(kù)操作相關(guān)層,可顯示具體的SQL語(yǔ)句及其他信息,如下:

更多操作演示,就留給小伙伴自己操作吧。

2. 告警配置及使用

自動(dòng)告警基本上是監(jiān)控系統(tǒng)的標(biāo)配,接下來(lái)看看在SkyWalking中是如何使用的。

2.1 告警規(guī)則配置

所謂告警規(guī)則其實(shí)就是配置的告警條件及檢查周期,根據(jù)業(yè)務(wù)需要進(jìn)行配置。

在SkyWalking中配置告警條件是在后臺(tái)服務(wù)端進(jìn)行的,即環(huán)境搭建中啟動(dòng)的容器skywalking-oap,見(jiàn)上篇文章;

由于演示是采用Docker的形式啟動(dòng)的容器,也沒(méi)有進(jìn)行數(shù)據(jù)卷掛載,所以我們需要進(jìn)入對(duì)應(yīng)的容器進(jìn)行配置,如下:

  • 進(jìn)入容器,并到對(duì)應(yīng)的配置目錄

執(zhí)行如下命令進(jìn)入到SkyWalking后臺(tái)容器;如果不是以容器啟動(dòng)的,直接進(jìn)到配置文件目錄修改對(duì)應(yīng)文件即可;

  • 查閱配置規(guī)則文件及配置規(guī)則解讀

通過(guò)cat alarm-settings.yml可以查閱文件內(nèi)容,如下:

規(guī)則常用指標(biāo)解讀:

rule name:規(guī)則名稱(chēng),必須唯一,必須以 _rule結(jié)尾;

metrics name:oal(Observability Analysis Language)腳本中的度量名;名稱(chēng)在SkyWalking后端服務(wù)中已經(jīng)定義,進(jìn)入容器skywalking-oap之后,進(jìn)入如下目錄就可以找到。

如果想更多了解oal,參照文檔:https://github.com/apache/skywalking/blob/master/docs/en/concepts-and-designs/oal.md

include names:本規(guī)則告警生效的實(shí)體名稱(chēng),如服務(wù)名,終端名;

exclude-names:將此規(guī)則作用于不匹配的實(shí)體名稱(chēng)上,如服務(wù)名,終端名;

threshold:閾值,可以是一個(gè)數(shù)組,即可以配置多個(gè)值;

op:操作符, 可以設(shè)定 >, <, =;

period:多久檢查一次當(dāng)前的指標(biāo)數(shù)據(jù)是否符合告警規(guī)則;以分鐘為單位

count:超過(guò)閾值條件,達(dá)到count次數(shù),觸發(fā)告警;

silence period:在同一個(gè)周期,指定的silence period時(shí)間內(nèi),忽略相同的告警消息;

更多告警規(guī)則詳情,請(qǐng)參照這個(gè)地址:https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md

  • 配置規(guī)則文件簡(jiǎn)單修改

這里挑一個(gè)模板規(guī)則稍微改一下,用于后續(xù)演示,如下:

  1. # 告警規(guī)則名稱(chēng),必須唯一,以_rule結(jié)尾 
  2. service_sla_rule: 
  3.    # 指定metrics-name 
  4.    metrics-name: service_sla 
  5.    # 小于 
  6.    op: "<"  
  7.    # 指定閾值 
  8.    threshold: 8000                                                                               
  9.    # 10分鐘檢測(cè)一次告警規(guī)則                                                  
  10.    period: 10                                                                                    
  11.    # 觸發(fā)2次告警規(guī)則就告警                    
  12.    count: 2                                                                                      
  13.    # 設(shè)置的3分鐘時(shí)間段有相同的告警,不重復(fù)告警. 
  14.    silence-period: 3  
  15.     # 配置告警消息 
  16.    message: Successful rate of service {nameis lower than 80% in 2 minutes of last 10 minutes 

規(guī)則概要:服務(wù)成功率在過(guò)去2分鐘內(nèi)低于80%

2.2 告警API編寫(xiě)

有了規(guī)則之后,如何進(jìn)行自動(dòng)發(fā)送告警信息呢?

這個(gè)本質(zhì)還是SkyWalking根據(jù)規(guī)則進(jìn)行檢查,如果符合規(guī)則條件,就通過(guò)WebHook、gRPCHook、WeChat Hook、Dingtalk Hook等方式進(jìn)行消息通知;接收到告警數(shù)據(jù)信息之后,可以自行處理消息。這里為了方便,就采用WebHook的方式進(jìn)行演示,即觸發(fā)告警條件之后,SkyWalking會(huì)調(diào)用配置的WebHook 接口,并傳遞對(duì)應(yīng)的告警信息;

  • 傳遞的告警信息

SkyWalking后端服務(wù)會(huì)以Post的方式調(diào)用WebHook的接口,并以Json的形式向接口傳遞告警信息,如下格式:

  1.     { 
  2.     "scopeId": 1, // 范圍ID 
  3.     "name""serviceA", //實(shí)體名稱(chēng) 
  4.     // 實(shí)體ID 
  5.     "id0""12",   
  6.     // 用于標(biāo)識(shí)實(shí)體關(guān)系中的目標(biāo)實(shí)體ID,沒(méi)有關(guān)系就為空  
  7.     "id1""",    
  8.     // 規(guī)則名稱(chēng)  alarm-settings.yml中配置的規(guī)則名稱(chēng) 
  9.     "ruleName""service_resp_time_rule"
  10.     // 觸發(fā)告警時(shí)發(fā)送的消息 
  11.     "alarmMessage""alarmMessage xxxx"
  12.     // 告警的時(shí)間戳 
  13.     "startTime": 1560524171000 
  14.     },  
  15.     { 
  16.     "scopeId": 1, 
  17.     "name""serviceB"
  18.     "id0""23"
  19.     "id1"""
  20.     "ruleName""service_resp_time_rule"
  21.     "alarmMessage""alarmMessage yyy"
  22.     "startTime": 1560524171000 
  23.     } 

知道傳遞告警的信息的格式后,寫(xiě)API的時(shí)候就得以此格式接收。

  • 編寫(xiě)告警時(shí)調(diào)用的API,如下:

這里只是一個(gè)常規(guī)的API,關(guān)于發(fā)郵件的配置,之前在一篇文章中分享的很詳細(xì)(來(lái),Consul 服務(wù)發(fā)現(xiàn)入個(gè)門(mén)(一看就會(huì)的那種))。

  • 配置WebHook地址

由于SkyWalking的環(huán)境搭建在了我的云服務(wù)器,本地電腦沒(méi)有配置外網(wǎng)訪(fǎng)問(wèn),所以只能將API發(fā)布到云服務(wù)器上,這樣SkyWalking后端服務(wù)調(diào)用告警接口就可以了,所以這里就在規(guī)則配置文件的最下面配置WebHook調(diào)用的接口地址即可;步驟如下:

修改alarm-settings.yml的文件,在文件最后配置WebHook地址,可以配置多個(gè),如下:

告警規(guī)則和WebHook地址配置完畢之后,重啟一下容器,如下:

  1. docker stop skywalking-oap 
  2. docker start skywalking-oap 

2.3 運(yùn)行看效果

啟動(dòng)項(xiàng)目,然后訪(fǎng)問(wèn)之前寫(xiě)好的接口,接口中特意搞了個(gè)異常,所以每次都會(huì)報(bào)錯(cuò),錯(cuò)誤率肯定是低于設(shè)置的規(guī)則80%,稍等一會(huì)就會(huì)產(chǎn)生告警信息;

界面上也可以看到告警信息,如下:

因?yàn)橛|發(fā)告警時(shí)會(huì)調(diào)用我們編寫(xiě)的WebHook接口,我們針對(duì)告警信息發(fā)送了郵件,所以同時(shí)會(huì)收到對(duì)應(yīng)的告警郵件

演示代碼:https://gitee.com/CodeZoe/microservies-demo/tree/main/SkyWalkingDemo/SkyWalkingDataDemo

總結(jié)

好了,關(guān)于告警的配置和使用就簡(jiǎn)單說(shuō)這么多吧,如果有其他配置需求,可以參照官網(wǎng),使用方式大同小異;后續(xù)會(huì)記錄一些使用經(jīng)驗(yàn);

 

責(zé)任編輯:武曉燕 來(lái)源: Code綜藝圈
相關(guān)推薦

2018-05-07 08:54:34

GolangPython語(yǔ)言

2020-08-04 17:42:28

MyBatis版本升級(jí)

2012-05-03 11:12:28

HP激光打印機(jī)

2018-08-31 08:03:00

深度學(xué)習(xí)GBDT算法CatBoost

2015-08-03 09:09:20

程序員腦子快

2019-09-16 08:33:50

TCP協(xié)議UDP

2013-06-07 10:07:28

開(kāi)發(fā)者優(yōu)秀開(kāi)發(fā)者

2021-08-16 15:42:37

Windows 11Snipping To截圖

2016-03-28 10:01:45

優(yōu)秀程序員關(guān)鍵閱讀

2021-09-18 10:59:08

大數(shù)據(jù)家庭成績(jī)

2012-12-28 09:58:50

程序員代碼編程

2016-03-04 11:06:20

更優(yōu)秀程序員

2017-10-22 16:16:03

程序員編程代碼

2022-02-18 15:07:29

goroutinepanic協(xié)程

2014-08-05 09:15:55

程序員

2014-08-08 10:24:37

程序員

2022-09-27 15:34:05

VSCode插件開(kāi)發(fā)

2014-03-03 15:32:32

程序員資源

2015-11-06 14:54:10

程序員習(xí)慣

2024-12-03 14:21:31

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)