待更新。

https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/alert/prometheus-recoding-rules

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
annotations:
meta.helm.sh/release-name: kube-prometheus
meta.helm.sh/release-namespace: monitoring
labels:
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: prometheus
app.kubernetes.io/version: v2.22.1
prometheus: k8s
release: kube-prometheus
role: alert-rules
name: hrsn-opsdoc-rules
namespace: monitoring
spec:
groups:
- name: node1.rules
rules:
- expr: rate(kafka_topic_partition_current_offset[30d])
record: kafka_topic_partition_current_offset:rate

Prometheus Rule 或 Record 是怎么被绑定的?

1
kubectl get prometheus -n monitoring k8s -oyaml

这就需要查看我们创建的 prometheus 这个资源对象了,里面有非常重要的一个属性 ruleSelector,用来匹配 rule 规则的过滤器,要求匹配具有 prometheus=k8s 和 role=alert-rules 标签的 PrometheusRule 资源对象,现在明白了吧?

参考博客:

prometheusRule创建后,如何在prometheus容器/etc/prometheus/rules/prometheus-k8s-rulefiles-0目录下生成yaml文件的?

我们创建一个 PrometheusRule 资源对象后,会自动在上面的 prometheus-k8s-rulefiles-0 目录下面生成一个对应的<namespace>-<name>.yaml文件。