Alertmanager

resolve_timeout

此配置项位于alertmanager主配置文件的global块中。
Alertmanager告警的机制是收到Prometheus发来的信息说某条规则达到阈值,需要进行告警,那么Alertmanager根据配置的规则进行告警。但Prometheus并不会发送某条Rule的恢复信息,此时需要Alertmanager自己进行判断,判断的方式就是当Alertmanager经过多少时间没有收到Prometheus对于同一条Rule信息的告警信息后,Alertmanager返回恢复信息。
此时,如何判断Prometheus多久发送一条告警信息?涉及Prometheus配置的两个时间配置项,如下:

for

此配置项位于Prometheus Rule配置文件中。
表示状态持续时间,如果状态持续多长时间,那么就推送至Alertmanager。

evaluation_interval

此配置项位于Prometheus主配置文件的global块中。
表示告警规则的拉取间隔时长

通过如上两项配置可以计算Prometheus向Alertmanager发送一条告警信息的间隔时间为evaluation_interval+for的和
在配置上应该配置resolve_timeout的值大于evaluation_interval+for的和,这样可以避免在状态未恢复时,Alertmanager发送恢复信息,然后又发送告警信息,如此往复。。

repeat_interval

此配置项位于Alertmanager主配置文件的route块中。
表示如果一条告警通知已成功发送,且在间隔repeat_interval后,该告警仍然未被设置为resolved,则会再次发送该告警通知。通俗理解就是当告警规则一直被触发,每隔repeat_interval发送一次告警。
而实际上体现的告警间隔时间应该是repeat_interval+group_interval的值。

group_wait

此配置项位于Alertmanager主配置文件的route块中。
表示若一组新的告警产生,则会等group_wait后再发送通知,该功能主要用于当告警在很短时间内接连产生时,在group_wait内合并为单一的告警后再发送。

group_interval

此配置项位于Alertmanager主配置文件的route块中。
表示再次告警时间间隔。

Prometheus

scrape_interval

此配置项位于Prometheus主配置文件的global块中。
表示全局默认的数据拉取间隔

scrape_timeout

此配置项位于Prometheus主配置文件的global块中。
全局默认的单次数据拉取超时,当报context deadline exceeded错误时需要在特定的job下配置该字段。

星霜荏苒 居诸不息