可以给我一个 Prometheus 报警规则的实例么
时间: 2023-12-08 08:57:28 浏览: 79
当 CPU 使用率超过 80% 时触发报警:
```
groups:
- name: CPU_Alert_Rules
rules:
- alert: High_CPU_Usage
expr: node_cpu{mode="idle"} < 20
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU usage on {{ $labels.instance }}"
description: "CPU usage is currently {{ $value }}%"
```
相关问题
可以给我一个 Prometheus 2.7.2 报警规则的实例么
以下是一个简单的 Prometheus 2.7.2 报警规则实例:
```
groups:
- name: example_alerts
rules:
- alert: HighRequestRate
expr: sum(rate(http_requests_total[5m])) by (job) > 100
for: 1m
labels:
severity: warning
annotations:
summary: High Request Rate for {{ $labels.job }}
description: The {{ $labels.job }} job is experiencing high request rates.
```
该规则会检查过去 5 分钟内每个 job 的 http_requests_total 指标的速率是否超过 100,并且如果超过 1 分钟,则会发出警报。警报的标签为“severity: warning”,并且包含有关警报的摘要和描述的注释。
Prometheus 报警无法打印severity里的值
在Prometheus中,报警规则是通过PromQL表达式定义的,并且报警规则中并没有直接包含"severity"的值。"severity"是一种常见的标签(label),用于在报警触发时指定报警的严重程度级别。在报警触发时,Prometheus会根据报警规则所匹配的条件生成一个警报实例,并将相关的标签和值作为警报的元数据。
要正确地在Prometheus警报中打印"severity"的值,您需要在报警规则中定义一个带有"severity"标签的表达式,并将所需的严重程度级别作为标签值进行设置。然后,在警报通知配置中,您可以通过模板引擎(如Alertmanager的模板)访问和打印该标签的值。
以下是一个示例报警规则和Alertmanager配置的片段,演示如何在警报通知中打印"severity"标签的值:
```yaml
# Prometheus 报警规则
groups:
- name: example
rules:
- alert: HighCpuUsage
expr: cpu_usage > 90
labels:
severity: critical
# Alertmanager 配置
route:
receiver: 'slack'
group_by: ['severity']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receivers:
- name: slack
slack_configs:
- api_url: 'https://slack_webhook_url'
channel: '#alerts'
text: 'The severity level is {{ .Labels.severity }}'
```
在上述示例中,我们定义了一个名为"HighCpuUsage"的报警规则,并为其添加了一个名为"severity"的标签,标签值为"critical"。在Alertmanager配置中,我们使用模板引擎将警报通知中的"severity"标签值打印出来。
请根据您的具体配置进行相应的修改,以便正确地打印出"severity"标签的值。
阅读全文