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
この規則を使って警告するサービスリスト webhookインターフェースurlの定義(住所カスタム)は、規則制定の他に、警告ルールが達成された後、skywalking呼び出しが必要なwebhookインターフェースであり、上述のような構成は、urlの字下げに注意しなければならない。 設定が完了したら、skywalkingを再起動して有効になります。
警告webhookインターフェースはドッキングします。
上記のwebhookインターフェースを作成し、http://127.0.0.1//alarm/test 現在のバージョンwebhookインターフェースはpost+request bodyであり、bodyの内容は以下の通りである。
上記のように、webhookインターフェースでデータを取得した後、serviceで関連ロジックalarm Service.doAlarmを処理します。そのため、自分で警告の発送する地方を制定することができて、例えば釘付け、メールなど、具体的なアクセス方式は文書とブログを釘付けしてすべて説明があって、もう多すぎて述べません。
おわりに
この文章は主にskywalking警告の簡単な原理、アラーム規則の配置、webhook受信インターフェースの作成などを紹介しています。今後はskywalkingを個性的に開発して、皆さんとたくさん交流したいです。
参考:https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md
前回に引き続きskywalking+nacos+gateway+demoserviceを配置しました。この記事は主にskywalkingアラーム規則の配置とdingdingアラーム関連データの送信を提供します。
本文
アラームの基本的な流れ
skywalking送信アラームの基本原理は、skywalking-collectorが収集したリンク追跡のデータを一定期間ごとにポーリングし、設定された警告規則(例えば、サービス応答時間、サービス応答時間の割合)などに従って、閾値に達したらレスポンスのアラーム情報を送信することである。警告メッセージの送信は、スレッドが非同期でwebhookインターフェースを呼び出して行われ、開発者は、指定されたwebhookインターフェースにおいて、独自に各種の警告方式を作成し、警告やメール警告などを書き込むことができる。
アラーム関連配置
意味
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インターフェースはドッキングします。
上記の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