skywalking(二)アラーム関連配置


前言
        前回に引き続きskywalking+nacos+gateway+demoserviceを配置しました。この記事は主にskywalkingアラーム規則の配置とdingdingアラーム関連データの送信を提供します。
本文
アラームの基本的な流れ
        skywalking送信アラームの基本原理は、skywalking-collectorが収集したリンク追跡のデータを一定期間ごとにポーリングし、設定された警告規則(例えば、サービス応答時間、サービス応答時間の割合)などに従って、閾値に達したらレスポンスのアラーム情報を送信することである。警告メッセージの送信は、スレッドが非同期でwebhookインターフェースを呼び出して行われ、開発者は、指定されたwebhookインターフェースにおいて、独自に各種の警告方式を作成し、警告やメール警告などを書き込むことができる。
アラーム関連配置
  • skywalking関連警告配置をオープンし、config/alarm-settings.ymlを編集し、以下のように開けます。第一のルール‘endpoint_’percentル'は、規則名であり、重複することができず、かつ'uでなければならない。rule'は最後である中のプロパティ:
  • 属性
    意味
    metrics-name
    指定されたルール(ルール名と違って、ここでは対応するアラーム中のルールmapです。具体的には確認できます。https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md#list-off-all-potental-metrics-nameの中のいくつかの一般的な、endpoint_percentル——端点相応の半点比アラーム、service_percentrule-サービスは相応の百分率で警告します。
    エスホルド
    しきい値は、metrics-nameと以下の比較符号と一致する。
    op
    オペレータを比較して設定できます。
    period
    どれぐらいの頻度で現在の指標データが警告ルールに合致しているかを確認します。
    counts
    何回警告したら警告メッセージを送りますか?
    silence-period
    どれぐらいの間に同じ警告メッセージを無視しますか?
    メッセージ
    アラームメッセージの内容
    include-names
    この規則を使って警告するサービスリスト
    rules:
      # Rule unique name, must be ended with `_rule`.
      endpoint_percent_rule:
        # Metrics value need to be long, double or int
        metrics-name: endpoint_percent
        threshold: 75
        op: <
        # The length of time to evaluate the metrics
        period: 10
        # How many times after the metrics match the condition, will trigger alarm
        count: 3
        # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
        silence-period: 10
        
      service_percent_rule:
        metrics-name: service_percent
        # [Optional] Default, match all services in this metrics
        include-names:
          - service_a
          - service_b
        threshold: 85
        op: <
        period: 10
        count: 4
    
    webhooks:
     - http://127.0.0.1//alarm/test
    
  • webhookインターフェースurlの定義(住所カスタム)は、規則制定の他に、警告ルールが達成された後、skywalking呼び出しが必要なwebhookインターフェースであり、上述のような構成は、urlの字下げに注意しなければならない。
  •         設定が完了したら、skywalkingを再起動して有効になります。
    警告webhookインターフェースはドッキングします。
            上記のwebhookインターフェースを作成し、http://127.0.0.1//alarm/test 現在のバージョンwebhookインターフェースはpost+request bodyであり、bodyの内容は以下の通りである。
    [
        {
            "scopeId":1,  //          (        org.apache.skywalking.oap.server.core.source.DefaultScopeDefine)
            "name":"gateway", //      
            "id0":3,  //         
            "id1":0,  //       
            "alarmMessage":"Response time of service gateway is more than 1000ms in 3 minutes of last 10 minutes.",
            "startTime":1569552742633  //       
        },
        {
            "scopeId":1,
            "name":"en-exercise",
            "id0":2,
            "id1":0,
            "alarmMessage":"Response time of service en-exercise is more than 1000ms in 3 minutes of last 10 minutes.",
            "startTime":1569552742633
        }
    ]
    
            そこで定義されたインターフェースは以下の通りである。
    @RequestMapping("/alarm")
    @RestController
    public class AlarmController {
        @Autowired
        AlarmService alarmService;
    
        @RequestMapping(value = "/test",method = RequestMethod.POST)
        public void alarm(@RequestBody List 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;
    }
    
    警告と具体的なドッキング
            上記のように、webhookインターフェースでデータを取得した後、serviceで関連ロジックalarm Service.doAlarmを処理します。そのため、自分で警告の発送する地方を制定することができて、例えば釘付け、メールなど、具体的なアクセス方式は文書とブログを釘付けしてすべて説明があって、もう多すぎて述べません。
    おわりに
            この文章は主にskywalking警告の簡単な原理、アラーム規則の配置、webhook受信インターフェースの作成などを紹介しています。今後はskywalkingを個性的に開発して、皆さんとたくさん交流したいです。
    参考:https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md