skywalking告警相关配置
告警基本流程
????????skywalking發(fā)送告警的基本原理是每隔一段時間輪詢skywalking-collector收集到的鏈路追蹤的數(shù)據(jù),再根據(jù)所配置的告警規(guī)則(如服務(wù)響應(yīng)時間、服務(wù)響應(yīng)時間百分比)等,如果達到閾值則發(fā)送響應(yīng)的告警信息。發(fā)送告警信息是以線程池異步的方式調(diào)用webhook接口完成,(具體的webhook接口可以使用者自行定義),從而開發(fā)者可以在指定的webhook接口中自行編寫各種告警方式,釘釘告警、郵件告警等等。
告警相關(guān)配置
開啟skywalking相關(guān)告警配置,編輯 config/alarm-settings.yml,打開之后如下所示:rules即為需要配置的告警規(guī)則的列表;第一個規(guī)則‘endpoint_percent_rule’,是規(guī)則名,不能重復(fù)且必須以’_rule’為結(jié)尾;其中里面的屬性:
屬性?? ?含義
metrics-name?? ?指定的規(guī)則(與規(guī)則名不同,這里是對應(yīng)的告警中的規(guī)則map,具體可查看https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md#list-of-all-potential-metrics-name,其中一些常見的,endpoint_percent_rule——端點相應(yīng)半分比告警,service_percent_rule——服務(wù)相應(yīng)百分比告警)
threshold?? ?閾值,與metrics-name和下面的比較符號相匹配
op?? ?比較操作符,可以設(shè)定>,<,=,即如metrics-name: endpoint_percent, threshold: 75,op: < ,表示如果相應(yīng)時長小于平均75%則發(fā)送告警
period?? ?多久檢查一次當前的指標數(shù)據(jù)是否符合告警規(guī)則
counts?? ?達到多少次告警后,發(fā)送告警消息
silence-period?? ?在多久之內(nèi),忽略相同的告警消息
message?? ?告警消息內(nèi)容
include-names?? ?使用本規(guī)則告警的服務(wù)列表
webhook接口url的定義(地址自定義),除了規(guī)則制定之外,還有達到告警規(guī)則后,需要skywalking調(diào)用的webhook接口,如上所示的配置,一定要注意url的縮進,之前縮進兩個空格,一直沒生效。
????????配置完成之后,重啟skywalking生效;
告警webhook接口對接
????????編寫上述webhook對接的接口,http://127.0.0.1//alarm/test ,當前版本webhook接口調(diào)用的方式是post+requestbody,而body中的內(nèi)容如下:
于是定義的接口如下:
@RequestMapping("/alarm") @RestController public class AlarmController {@AutowiredAlarmService alarmService;@RequestMapping(value = "/test",method = RequestMethod.POST)public void alarm(@RequestBody List<AlarmMessageDto> alarmMessageList){System.out.println(alarmMessageList.toString());//具體處理告警信息alarmService.doAlarm(alarmMessageList);} } //實體類 @Data public class AlarmMessageDto {private int scopeId;private String name;private int id0;private int id1;private String alarmMessage;private long startTime; }?
總結(jié)
以上是生活随笔為你收集整理的skywalking告警相关配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hibernate执行sql的顺序问题
- 下一篇: kafka消费报错