jsonnet: wrap mixins into a function and parametrize
Signed-off-by: paulfantom <pawel@krupa.net.pl>
This commit is contained in:
@@ -6,7 +6,7 @@ local kubeStateMetrics = import './kube-state-metrics/kube-state-metrics.libsonn
|
|||||||
local nodeExporter = import './node-exporter/node-exporter.libsonnet';
|
local nodeExporter = import './node-exporter/node-exporter.libsonnet';
|
||||||
local prometheusAdapter = import './prometheus-adapter/prometheus-adapter.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/brancz/kubernetes-grafana/grafana/grafana.libsonnet') +
|
||||||
(import 'github.com/prometheus-operator/prometheus-operator/jsonnet/prometheus-operator/prometheus-operator.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',
|
image: 'directxman12/k8s-prometheus-adapter:v0.8.2',
|
||||||
prometheusURL: 'http://prometheus-' + $._config.prometheus.name + '.' + $._config.namespace + '.svc.cluster.local:9090/',
|
prometheusURL: 'http://prometheus-' + $._config.prometheus.name + '.' + $._config.namespace + '.svc.cluster.local:9090/',
|
||||||
}),
|
}),
|
||||||
|
mixins+:: monitoringMixins({
|
||||||
|
namespace: $._config.namespace,
|
||||||
|
alertmanagerName: 'main',
|
||||||
|
prometheusName: 'k8s',
|
||||||
|
}),
|
||||||
kubePrometheus+:: {
|
kubePrometheus+:: {
|
||||||
namespace: {
|
namespace: {
|
||||||
apiVersion: 'v1',
|
apiVersion: 'v1',
|
||||||
@@ -183,21 +188,21 @@ local mixins = import './mixins/monitoring-mixins.libsonnet';
|
|||||||
},
|
},
|
||||||
|
|
||||||
local allRules =
|
local allRules =
|
||||||
mixins.mixins.nodeExporter.prometheusRules +
|
$.mixins.nodeExporter.prometheusRules +
|
||||||
mixins.mixins.kubernetes.prometheusRules +
|
$.mixins.kubernetes.prometheusRules +
|
||||||
mixins.mixins.base.prometheusRules +
|
$.mixins.base.prometheusRules +
|
||||||
mixins.mixins.kubeStateMetrics.prometheusAlerts +
|
$.mixins.kubeStateMetrics.prometheusAlerts +
|
||||||
mixins.mixins.nodeExporter.prometheusAlerts +
|
$.mixins.nodeExporter.prometheusAlerts +
|
||||||
mixins.mixins.alertmanager.prometheusAlerts +
|
$.mixins.alertmanager.prometheusAlerts +
|
||||||
mixins.mixins.prometheusOperator.prometheusAlerts +
|
$.mixins.prometheusOperator.prometheusAlerts +
|
||||||
mixins.mixins.kubernetes.prometheusAlerts +
|
$.mixins.kubernetes.prometheusAlerts +
|
||||||
mixins.mixins.prometheus.prometheusAlerts +
|
$.mixins.prometheus.prometheusAlerts +
|
||||||
mixins.mixins.base.prometheusAlerts,
|
$.mixins.base.prometheusAlerts,
|
||||||
|
|
||||||
local allDashboards =
|
local allDashboards =
|
||||||
mixins.mixins.nodeExporter.grafanaDashboards +
|
$.mixins.nodeExporter.grafanaDashboards +
|
||||||
mixins.mixins.kubernetes.grafanaDashboards +
|
$.mixins.kubernetes.grafanaDashboards +
|
||||||
mixins.mixins.prometheus.grafanaDashboards,
|
$.mixins.prometheus.grafanaDashboards,
|
||||||
|
|
||||||
prometheus+:: { rules: allRules },
|
prometheus+:: { rules: allRules },
|
||||||
grafana+:: {
|
grafana+:: {
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
{
|
local defaults = {
|
||||||
// Add you mixins here.
|
local defaults = self,
|
||||||
mixins+:: {
|
namespace: error 'must provide namespace',
|
||||||
_config:: { // TODO(paulfantom): figure out how to pass this from higher up
|
prometheusName: error 'must provide namespace',
|
||||||
prometheusName: 'k8s',
|
alertmanagerName: error 'must provide namespace',
|
||||||
alertmanagerName: 'main',
|
};
|
||||||
namespace: 'default',
|
|
||||||
},
|
function(params) {
|
||||||
|
local m = self,
|
||||||
|
config:: defaults + params,
|
||||||
base+:
|
base+:
|
||||||
(import '../alerts/general.libsonnet') +
|
(import '../alerts/general.libsonnet') +
|
||||||
(import '../alerts/node.libsonnet') +
|
(import '../alerts/node.libsonnet') +
|
||||||
@@ -44,16 +46,14 @@
|
|||||||
prometheusOperator:
|
prometheusOperator:
|
||||||
(import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') {
|
(import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') {
|
||||||
_config+:: {
|
_config+:: {
|
||||||
//prometheusOperatorSelector: 'job="prometheus-operator",namespace="' + $._config.namespace + '"',
|
prometheusOperatorSelector: 'job="prometheus-operator",namespace="' + m.config.namespace + '"',
|
||||||
prometheusOperatorSelector: 'job="prometheus-operator",namespace="monitoring"',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
prometheus:
|
prometheus:
|
||||||
(import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') {
|
(import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') {
|
||||||
_config+:: {
|
_config+:: {
|
||||||
//prometheusSelector: 'job="prometheus-' + $._config.prometheusName + '",namespace="' + $._config.namespace + '"',
|
prometheusSelector: 'job="prometheus-' + m.config.prometheusName + '",namespace="' + m.config.namespace + '"',
|
||||||
prometheusSelector: 'job="prometheus-k8s",namespace="monitoring"',
|
|
||||||
prometheusName: '{{$labels.namespace}}/{{$labels.pod}}',
|
prometheusName: '{{$labels.namespace}}/{{$labels.pod}}',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -63,8 +63,7 @@
|
|||||||
_config+:: {
|
_config+:: {
|
||||||
alertmanagerName: '{{ $labels.namespace }}/{{ $labels.pod}}',
|
alertmanagerName: '{{ $labels.namespace }}/{{ $labels.pod}}',
|
||||||
alertmanagerClusterLabels: 'namespace,service',
|
alertmanagerClusterLabels: 'namespace,service',
|
||||||
//alertmanagerSelector: 'job="alertmanager-' + $._config.alertmanagerName + '",namespace="' + $._config.namespace + '"',
|
alertmanagerSelector: 'job="alertmanager-' + m.config.alertmanagerName + '",namespace="' + m.config.namespace + '"',
|
||||||
alertmanagerSelector: 'job="alertmanager-main",namespace="monitoring"',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -76,6 +75,4 @@
|
|||||||
diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"',
|
diskDeviceSelector: 'device=~"mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+"',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user