
以上就是一个告警产生到发送的总流程
prometheus可以通过配置alter_rule来进行配置一些表达式,当一段时间内持续的触发这些表达式时,就会将这个alter推送到altermanager
yaml
- alert: PrometheusTargetSyncFailure
annotations:
description: '{{ printf "%.0f" $value }} targets in Prometheus {{$labels.namespace}}/{{$labels.pod}} have failed to sync because invalid configuration was supplied.'
runbook_url: https://runbooks.prometheus-operator.dev/runbooks/prometheus/prometheustargetsyncfailure
summary: Prometheus has failed to sync targets.
expr: |
increase(prometheus_target_sync_failed_total{job="prometheus-k8s",namespace="monitoring"}[30m]) > 0
for: 5m
labels:
severity: critical以上示例中,是一个名为
PrometheusTargetSyncFailure的alter,当持续5分钟都触发了increase(prometheus_target_sync_failed_total{job="prometheus-k8s",namespace="monitoring"}[30m]) > 0时,这个警告将会被推送到altermanager
在altermanager又对这些alter进行了一些操作
- 分组(Grouping):
分组将性质相似的警报分类为单个通知。这在大规模停机时尤其有用,因为许多系统同时出现故障,可能同时触发数百到数千个警报。
- 抑制(Grouping)
抑制是一个概念,即如果某些其他警报已经启动,则抑制某些警报的通知。
- 静默(Silences)
静默是一种简单的方法,可以在给定的时间内静音警报。静默是基于匹配器配置的,就像路由树一样。检查传入警报是否匹配活动静默的所有相等匹配器或正则表达式匹配器。如果他们这样做,这个警报将不会被发出