SkyWalking:告警配置指南

如题所述

第1个回答  2022-07-11

Apache SkyWalking告警
Apache SkyWalking告警是由一组规则驱动,这些规则定义在config/alarm-settings.yml文件中。

告警规则的定义分为三部分。

告警规则:定义了触发告警所考虑的条件。
webhook:当告警触发时,被调用的服务端点列表。
gRPCHook:当告警触发时,被调用的远程gRPC方法的主机和端口。
Slack Chat Hook:当告警触发时,被调用的Slack Chat接口。
微信 Hook:当告警触发时,被调用的微信接口。
钉钉 Hook:当告警触发时,被调用的钉钉接口。

告警规则有两种类型,单独规则(Individual Rules)和复合规则(Composite Rules),复合规则是单独规则的组合。

单独规则主要有以下几点:

标签的设置必须把数据存储在meter-system中,例如: Prometheus , Micrometer。以上四个标签设置必须实现 LabeledValueHolder 接口。

对于多个值指标,例如 percentile ,阈值是一个数组。像 value1 value2 value3 value4 value5 这样描述。 每个值可以作为度量中每个值的阈值。如果不想通过此值或某些值触发警报,则将值设置为 - 。 例如在 percentile 中, value1 是P50的阈值, value2 是P75的阈值,那么 -,-,value3, value4, value5 的意思是,没有阈值的P50和P75的 percentile 告警规则。

举个例子:

复合规则(Composite Rules)
复合规则仅适用于针对相同实体级别的告警规则,例如都是服务级别的告警规则:service_percent_rule && service_resp_time_percentile_rule。
不可以编写不同实体级别的告警规则,例如服务级别的一个告警规则和端点级别的一个规则:service_percent_rule && endpoint_percent_rule。

复合规则主要有以下几点:

规则名称:在告警信息中显示的唯一名称,必须以_rule结尾。
expression:指定如何组成规则,支持&&, ||, ()操作符。
message:该规则触发时,发送的通知消息。

Slack Chat Hook
您需要遵循传入Webhooks入门指南并创建新的Webhooks。

如果您按以下方式配置了Slack Incoming Webhooks,则告警消息将按 Content-Type 为 application/json 通过HTTP的 POST 方式发送。

举个例子:

微信Hook
只有微信的企业版才支持 Webhooks ,如何使用微信的 Webhooks 可参见如何配置群机器人。

如果您按以下方式配置了微信的 Webhooks ,则告警消息将按 Content-Type 为 application/json 通过HTTP的 POST 方式发送。

举个例子:

钉钉 Hook
您需要遵循自定义机器人开放并创建新的Webhooks。为了安全起见,您可以为Webhook网址配置可选的密钥。

如果您按以下方式配置了钉钉的 Webhooks ,则告警消息将按 Content-Type 为 application/json 通过HTTP的 POST 方式发送。

举个例子: