像这样的 Prometheus 规则文件:
groups:
- name: ./example.rules
rules:
- alert: ExampleAlert
expr: vector(1)
Kubernetes prometheus-operator 需要额外一层 yaml 配置数据,如下所示:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
creationTimestamp: null
labels:
prometheus: example
role: alert-rules
name: prometheus-example-rules
spec:
groups:
- name: ./example.rules
rules:
- alert: ExampleAlert
expr: vector(1)
对于使用前一种原始 Prometheus 规则格式的文件,我可以使用 Prometheuspromtool
运行单元测试。(见下面的链接3)
对于使用后者扩展 PrometheusRule 格式的文件,我可以使用kubectl apply -f prometheus_rule_file.yaml
将规则加载到我的 prometheus-operator 安装中。
我想以其中一种文件格式编写和维护规则,并能够在 promtool 的单元测试系统中使用相同的规则文件,并将相同的规则加载到 prometheus-operator 安装中。我没有看到一个简单的方法来做到这一点。
有没有一种方法可以让我使用原始 Prometheus 规则格式的规则并将其加载到 prometheus-operator PrometheusRule 中,而无需维护单独的冗余 yaml 文件,也无需编写自定义工具来转换它?