diff --git a/jsonnet/kube-prometheus/kube-prometheus.libsonnet b/jsonnet/kube-prometheus/kube-prometheus.libsonnet index 1e757670420399a3572e0cd0ca1aa841e5a2f91f..6bafcff1b6675b1cd2e7cdd84eda3c83a9332a4f 100644 --- a/jsonnet/kube-prometheus/kube-prometheus.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus.libsonnet @@ -6,7 +6,7 @@ local kubeStateMetrics = import './kube-state-metrics/kube-state-metrics.libsonn local nodeExporter = import './node-exporter/node-exporter.libsonnet'; local prometheusAdapter = import './prometheus-adapter/prometheus-adapter.libsonnet'; -local mixins = import './mixins/monitoring-mixins.libsonnet'; +local monitoringMixins = import './mixins/monitoring-mixins.libsonnet'; (import 'github.com/brancz/kubernetes-grafana/grafana/grafana.libsonnet') + (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/prometheus-operator/prometheus-operator.libsonnet') + @@ -40,6 +40,11 @@ local mixins = import './mixins/monitoring-mixins.libsonnet'; image: 'directxman12/k8s-prometheus-adapter:v0.8.2', prometheusURL: 'http://prometheus-' + $._config.prometheus.name + '.' + $._config.namespace + '.svc.cluster.local:9090/', }), + mixins+:: monitoringMixins({ + namespace: $._config.namespace, + alertmanagerName: 'main', + prometheusName: 'k8s', + }), kubePrometheus+:: { namespace: { apiVersion: 'v1', @@ -183,21 +188,21 @@ local mixins = import './mixins/monitoring-mixins.libsonnet'; }, local allRules = - mixins.mixins.nodeExporter.prometheusRules + - mixins.mixins.kubernetes.prometheusRules + - mixins.mixins.base.prometheusRules + - mixins.mixins.kubeStateMetrics.prometheusAlerts + - mixins.mixins.nodeExporter.prometheusAlerts + - mixins.mixins.alertmanager.prometheusAlerts + - mixins.mixins.prometheusOperator.prometheusAlerts + - mixins.mixins.kubernetes.prometheusAlerts + - mixins.mixins.prometheus.prometheusAlerts + - mixins.mixins.base.prometheusAlerts, + $.mixins.nodeExporter.prometheusRules + + $.mixins.kubernetes.prometheusRules + + $.mixins.base.prometheusRules + + $.mixins.kubeStateMetrics.prometheusAlerts + + $.mixins.nodeExporter.prometheusAlerts + + $.mixins.alertmanager.prometheusAlerts + + $.mixins.prometheusOperator.prometheusAlerts + + $.mixins.kubernetes.prometheusAlerts + + $.mixins.prometheus.prometheusAlerts + + $.mixins.base.prometheusAlerts, local allDashboards = - mixins.mixins.nodeExporter.grafanaDashboards + - mixins.mixins.kubernetes.grafanaDashboards + - mixins.mixins.prometheus.grafanaDashboards, + $.mixins.nodeExporter.grafanaDashboards + + $.mixins.kubernetes.grafanaDashboards + + $.mixins.prometheus.grafanaDashboards, prometheus+:: { rules: allRules }, grafana+:: { diff --git a/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet b/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet index afdd92ead92d3969813372951b3266b4f7fb6c0d..14682543042ab1afcab666ebb7f47e85b6acc086 100644 --- a/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet +++ b/jsonnet/kube-prometheus/mixins/monitoring-mixins.libsonnet @@ -1,11 +1,13 @@ -{ - // Add you mixins here. - mixins+:: { - _config:: { // TODO(paulfantom): figure out how to pass this from higher up - prometheusName: 'k8s', - alertmanagerName: 'main', - namespace: 'default', - }, +local defaults = { + local defaults = self, + namespace: error 'must provide namespace', + prometheusName: error 'must provide namespace', + alertmanagerName: error 'must provide namespace', +}; + +function(params) { + local m = self, + config:: defaults + params, base+: (import '../alerts/general.libsonnet') + (import '../alerts/node.libsonnet') + @@ -44,16 +46,14 @@ prometheusOperator: (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') { _config+:: { - //prometheusOperatorSelector: 'job="prometheus-operator",namespace="' + $._config.namespace + '"', - prometheusOperatorSelector: 'job="prometheus-operator",namespace="monitoring"', + prometheusOperatorSelector: 'job="prometheus-operator",namespace="' + m.config.namespace + '"', }, }, prometheus: (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') { _config+:: { - //prometheusSelector: 'job="prometheus-' + $._config.prometheusName + '",namespace="' + $._config.namespace + '"', - prometheusSelector: 'job="prometheus-k8s",namespace="monitoring"', + prometheusSelector: 'job="prometheus-' + m.config.prometheusName + '",namespace="' + m.config.namespace + '"', prometheusName: '{{$labels.namespace}}/{{$labels.pod}}', }, }, @@ -63,8 +63,7 @@ _config+:: { alertmanagerName: '{{ $labels.namespace }}/{{ $labels.pod}}', alertmanagerClusterLabels: 'namespace,service', - //alertmanagerSelector: 'job="alertmanager-' + $._config.alertmanagerName + '",namespace="' + $._config.namespace + '"', - alertmanagerSelector: 'job="alertmanager-main",namespace="monitoring"', + alertmanagerSelector: 'job="alertmanager-' + m.config.alertmanagerName + '",namespace="' + m.config.namespace + '"', }, }, @@ -76,6 +75,4 @@ diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"', }, }, - - }, }