local addMixin = (import 'kube-prometheus/lib/mixin.libsonnet'); local etcdMixin = addMixin({ name: 'etcd', mixin: (import 'github.com/etcd-io/etcd/contrib/mixin/mixin.libsonnet') + { _config+: { etcd_instance_labels: 'instance, pod', }, } + // Remove both etcdHighNumberOfFailedGRPCRequests from etcd-mixin for now { prometheusAlerts+: { groups: std.map( function(group) if group.name == 'etcd' then group { rules: std.filter( function(rule) rule.alert != 'etcdHighNumberOfFailedGRPCRequests', group.rules ), } else group, super.groups ), }, }, }); local kp = (import 'kube-prometheus/main.libsonnet') + { values+:: { common+: { namespace: 'monitoring', }, }, }; // We just want the Prometheus Rules { 'prometheus-operator-prometheusRule': kp.prometheusOperator.prometheusRule } + { 'kube-prometheus-prometheusRule': kp.kubePrometheus.prometheusRule } + { 'alertmanager-prometheusRule': kp.alertmanager.prometheusRule } + { 'kube-state-metrics-prometheusRule': kp.kubeStateMetrics.prometheusRule } + { 'kubernetes-prometheusRule': kp.kubernetesControlPlane.prometheusRule } + { 'node-exporter-prometheusRule': kp.nodeExporter.prometheusRule } + { 'prometheus-prometheusRule': kp.prometheus.prometheusRule } + { 'etcd-mixin-prometheusRule': etcdMixin.prometheusRules }