SkyWalking 監控告警


對於服務的異常信息,比如接口有較長延遲,skywalking也做出了告警功能

 

kywalking中有一些默認的告警規則,如下:

  • 最近3分鍾內服務的平均響應時間超過1秒
  • 最近2分鍾服務成功率低於80%
  • 最近3分鍾90%服務響應時間超過1秒
  • 最近2分鍾內服務實例的平均響應時間超過1秒

當然除了以上四種,隨着Skywalking不斷迭代也會新增其他規則,這些規則的配置在config/alarm-settings.yml配置文件中

 

每個規則都由相同的屬性組成,這些屬性的含義如下圖:

 

 

 

如果想要調整默認的規則,比如監控返回的信息,監控的參數等等,只需要改動上述配置文件中的參數即可。

當然除了以上默認的幾種規則,skywalking還適配了一些鈎子(webhooks)。其實就是相當於一個回調,一旦觸發了上述規則告警,skywalking則會調用配置的webhook,這樣開發者就可以定制一些處理方法

 

當然這個鈎子也是有些規則的,如下:

  • POST請求
  • application/json 接收數據
  • 接收的參數必須是AlarmMessage中指定的參數。

注意:AlarmMessage這個類隨着skywalking版本的迭代可能出現不同,一定要到對應版本源碼中去找到這個類,拷貝其中的屬性。這個類在源碼的路徑:org.apache.skywalking.oap.server.core.alarm,如下圖:

 

 

@Slf4j
@Api(tags = "AlarmController")
@RequestMapping("/alarm")
@RestController
public class AlarmController {

    @ApiOperation("接受skywalking告警")
    @PostMapping("/receive")
    public void receive(@RequestBody List<AlarmMessage> list) {
        log.info("/alarm/receive:" + JSON.toJSONString(list));
    }

}

接口定制完成后,需要在config/alarm-settings.yml配置文件中添加這個鈎子,如下圖:

 

 

 

 

 

 調用上面案例中的睡眠兩秒的接口,多調用幾次,則會觸發告警,控制台打印日志如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM