Prometheus 从原始普罗米修斯规则文件创建普罗米修斯运算符“普罗米修斯规则”(CRD)?

Prometheus 从原始普罗米修斯规则文件创建普罗米修斯运算符“普罗米修斯规则”(CRD)?,prometheus,prometheus-operator,Prometheus,Prometheus Operator,普罗米修斯规则文件如下: groups: - name: ./example.rules rules: - alert: ExampleAlert expr: vector(1) apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: creationTimestamp: null labels: prometheus: example role: alert-rules

普罗米修斯规则文件如下:

groups:
- name: ./example.rules
  rules:
  - alert: ExampleAlert
    expr: vector(1)
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)
Kubernetes-prometheus运算符需要额外一层yaml配置数据,如下所示:

groups:
- name: ./example.rules
  rules:
  - alert: ExampleAlert
    expr: vector(1)
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)
对于使用前一种原始普罗米修斯规则格式的文件,我可以使用普罗米修斯
promtool
来运行单元测试。(见下面的链接3)

对于使用后一种扩展的prometheus规则格式的文件,我可以使用
kubectl apply-f prometheus_rule_file.yaml
将规则加载到我的prometheus operator安装中

我希望以这些文件格式之一编写和维护规则,并且能够在promtool的单元测试系统中使用相同的规则文件,并将相同的规则加载到prometheus操作员安装中。我看不出一个简单的方法来做到这一点

有没有一种方法可以让我使用原始普罗米修斯规则格式创建一个规则,并将其加载到普罗米修斯操作员普罗米修斯规则中,而无需维护单独的冗余yaml文件,也无需编写自定义工具来转换它


  • 我使用helm的方法是创建一个单独的图表,并将规则文件与图表文件放在一起。这意味着您需要独立地部署它们,也许这正是您想要的

    台阶

  • 创建头盔图表:
    头盔创建普罗米修斯规则
  • 创建
    规则
    目录,并将普罗米修斯规则文件放在该目录中
  • 删除
    templates/
    目录中所有不必要的yaml文件
  • 创建新的模板文件
    templates/prometheus rules.yaml
  • 在下面插入示例:


  • 注意:在安装普罗米修斯操作员图表时,一件棘手的事情是要注意
    普罗米修斯。普罗米修斯规范选择或ILUSESHELMVALUES
    值。它将只加载与普罗米修斯操作期间安装的标签相同的规则。在安装prometheus operator时,您可以通过将其设置为false来绕过此问题。请参阅以获取更多详细信息。

    @PathSeeker能否请您共享一个完整的示例头盔警报文件。@bibincatchme当然,您可以在这里看到我的完整示例:此yaml文件引发错误,“错误:prometheus自定义规则/模板/prometheus-rules上的yaml解析错误。yaml:将yaml转换为JSON时出错:yaml:第14行:找不到预期的“:”