Prometheus的报警规则可以通过正则表达式匹配目标数据,当匹配到符合条件的数据时,会触发报警。
对于磁盘I/O读写时间大于30s的报警规则,可以使用以下配置:
yaml复制代码
groups: | |
- name: Disk I/O报警规则 | |
rules: | |
- alert: DiskIOTimeOut | |
expr: | | |
( | |
sum(node_disk_io_time_seconds_total{device=~"/dev/.*"}[5m]) | |
/ | |
sum(node_disk_io_time_seconds_total{device=~"/dev/.*", operation=~"read|write"}[5m]) | |
) > 0.03 | |
for: 10m | |
labels: | |
severity: page | |
annotations: | |
summary: 服务器{{ $labels.instance }}磁盘I/O超时 | |
description: 服务器{{ $labels.instance }}, 磁盘设备: 使用超过80%! | |
以上配置中,expr字段定义了报警规则的表达式,其中node_disk_io_time_seconds_total是一个度量标准,表示磁盘I/O运行的总时间,device=~"/dev/.*"和operation=~"read|write"分别过滤出所有磁盘设备和读写操作的I/O时间,sum(node_disk_io_time_seconds_total{device=~"/dev/.*"}[5m])计算5分钟内所有磁盘设备的总I/O时间,sum(node_disk_io_time_seconds_total{device=~"/dev/.*", operation=~"read|write"}[5m])计算5分钟内所有读写操作的I/O时间。最后通过计算比例,如果超过0.03(即30%),则触发报警。
alert怎么读for: 10m字段定义了报警持续时间,这里是10分钟。labels字段定义了报警标签,这里是严重程度为"page"。annotations字段定义了报警备注,这里是描述了报警的原因和解决方案。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论