diff --git a/jsonnet/kube-prometheus/kube-prometheus.libsonnet b/jsonnet/kube-prometheus/kube-prometheus.libsonnet index 6bafcff1b6675b1cd2e7cdd84eda3c83a9332a4f..58392cc018a58d2472375c1e1574a7e74a21d4ba 100644 --- a/jsonnet/kube-prometheus/kube-prometheus.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus.libsonnet @@ -186,7 +186,7 @@ local monitoringMixins = import './mixins/monitoring-mixins.libsonnet'; limits: { cpu: '20m', memory: '40Mi' }, }, }, - + local allRules = $.mixins.nodeExporter.prometheusRules + $.mixins.kubernetes.prometheusRules + diff --git a/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet b/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet index 14682543042ab1afcab666ebb7f47e85b6acc086..bb03583770bd819ee9a3aa62fa43881fe4ff4e42 100644 --- a/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet +++ b/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet @@ -1,78 +1,77 @@ local defaults = { - local defaults = self, namespace: error 'must provide namespace', - prometheusName: error 'must provide namespace', - alertmanagerName: error 'must provide namespace', + prometheusName: error 'must provide Prometheus resource name', + alertmanagerName: error 'must provide Alertmanager resource name', }; function(params) { local m = self, config:: defaults + params, - base+: - (import '../alerts/general.libsonnet') + - (import '../alerts/node.libsonnet') + - (import '../rules/node-rules.libsonnet') + - (import '../rules/general.libsonnet') { - _config+:: { - nodeExporterSelector: 'job="node-exporter"', - hostNetworkInterfaceSelector: 'device!~"veth.+"', - }, + base+: + (import '../alerts/general.libsonnet') + + (import '../alerts/node.libsonnet') + + (import '../rules/node-rules.libsonnet') + + (import '../rules/general.libsonnet') { + _config+:: { + nodeExporterSelector: 'job="node-exporter"', + hostNetworkInterfaceSelector: 'device!~"veth.+"', }, + }, - kubernetes: - (import 'github.com/kubernetes-monitoring/kubernetes-mixin/mixin.libsonnet') { - _config+:: { - cadvisorSelector: 'job="kubelet", metrics_path="/metrics/cadvisor"', - kubeletSelector: 'job="kubelet", metrics_path="/metrics"', - kubeStateMetricsSelector: 'job="kube-state-metrics"', - nodeExporterSelector: 'job="node-exporter"', - kubeSchedulerSelector: 'job="kube-scheduler"', - kubeControllerManagerSelector: 'job="kube-controller-manager"', - kubeApiserverSelector: 'job="apiserver"', - podLabel: 'pod', - runbookURLPattern: 'https://github.com/prometheus-operator/kube-prometheus/wiki/%s', - diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"', - hostNetworkInterfaceSelector: 'device!~"veth.+"', - }, + kubernetes: + (import 'github.com/kubernetes-monitoring/kubernetes-mixin/mixin.libsonnet') { + _config+:: { + cadvisorSelector: 'job="kubelet", metrics_path="/metrics/cadvisor"', + kubeletSelector: 'job="kubelet", metrics_path="/metrics"', + kubeStateMetricsSelector: 'job="kube-state-metrics"', + nodeExporterSelector: 'job="node-exporter"', + kubeSchedulerSelector: 'job="kube-scheduler"', + kubeControllerManagerSelector: 'job="kube-controller-manager"', + kubeApiserverSelector: 'job="apiserver"', + podLabel: 'pod', + runbookURLPattern: 'https://github.com/prometheus-operator/kube-prometheus/wiki/%s', + diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"', + hostNetworkInterfaceSelector: 'device!~"veth.+"', }, + }, - kubeStateMetrics: - (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet') { - _config+:: { - kubeStateMetricsSelector: 'job="kube-state-metrics"', - }, + kubeStateMetrics: + (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet') { + _config+:: { + kubeStateMetricsSelector: 'job="kube-state-metrics"', }, + }, - prometheusOperator: - (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') { - _config+:: { - prometheusOperatorSelector: 'job="prometheus-operator",namespace="' + m.config.namespace + '"', - }, + prometheusOperator: + (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') { + _config+:: { + prometheusOperatorSelector: 'job="prometheus-operator",namespace="' + m.config.namespace + '"', }, + }, - prometheus: - (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') { - _config+:: { - prometheusSelector: 'job="prometheus-' + m.config.prometheusName + '",namespace="' + m.config.namespace + '"', - prometheusName: '{{$labels.namespace}}/{{$labels.pod}}', - }, + prometheus: + (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') { + _config+:: { + prometheusSelector: 'job="prometheus-' + m.config.prometheusName + '",namespace="' + m.config.namespace + '"', + prometheusName: '{{$labels.namespace}}/{{$labels.pod}}', }, + }, - alertmanager: - (import 'github.com/prometheus/alertmanager/doc/alertmanager-mixin/mixin.libsonnet') { - _config+:: { - alertmanagerName: '{{ $labels.namespace }}/{{ $labels.pod}}', - alertmanagerClusterLabels: 'namespace,service', - alertmanagerSelector: 'job="alertmanager-' + m.config.alertmanagerName + '",namespace="' + m.config.namespace + '"', - }, + alertmanager: + (import 'github.com/prometheus/alertmanager/doc/alertmanager-mixin/mixin.libsonnet') { + _config+:: { + alertmanagerName: '{{ $labels.namespace }}/{{ $labels.pod}}', + alertmanagerClusterLabels: 'namespace,service', + alertmanagerSelector: 'job="alertmanager-' + m.config.alertmanagerName + '",namespace="' + m.config.namespace + '"', }, + }, - nodeExporter: - (import 'github.com/prometheus/node_exporter/docs/node-mixin/mixin.libsonnet') { - _config+:: { - nodeExporterSelector: 'job="node-exporter"', - fsSpaceFillingUpCriticalThreshold: 15, - diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"', - }, + nodeExporter: + (import 'github.com/prometheus/node_exporter/docs/node-mixin/mixin.libsonnet') { + _config+:: { + nodeExporterSelector: 'job="node-exporter"', + fsSpaceFillingUpCriticalThreshold: 15, + diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"', }, + }, }