Файл правил Prometheus, подобный этому:
groups:
- name: ./example.rules
rules:
- alert: ExampleAlert
expr: vector(1)
Оператору prometheus-оператора Kubernetes требуется дополнительный уровень данных конфигурации 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, я могу использовать Prometheus promtool
для запуска модульных тестов. (см. ссылку 3 ниже)
С файлами, использующими последний, расширенный формат PrometheusRule, я могу использовать kubectl apply -f prometheus_rule_file.yaml
для загрузки правил в мою установку prometheus-operator.
Я хочу писать и поддерживать правила в одном из этих форматов файлов и иметь возможность использовать один и тот же файл правил как с системой модульного тестирования promtool, так и для загрузки того же правила в установку prometheus-operator. Я не вижу простого способа сделать это.
Есть ли способ создать правило, использующее необработанный формат правила Prometheus, и загрузить его в Prometheus-operator PrometheusRule без поддержки отдельного избыточного файла yaml и без написания настраиваемого инструмента для его преобразования?