82 lines
2.5 KiB
Jsonnet
82 lines
2.5 KiB
Jsonnet
local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
|
|
local configMapList = k.core.v1.configMapList;
|
|
|
|
(import 'grafana/grafana.libsonnet') +
|
|
(import 'kube-state-metrics/kube-state-metrics.libsonnet') +
|
|
(import 'node-exporter/node-exporter.libsonnet') +
|
|
(import 'alertmanager/alertmanager.libsonnet') +
|
|
(import 'prometheus-operator/prometheus-operator.libsonnet') +
|
|
(import 'prometheus/prometheus.libsonnet') +
|
|
(import 'prometheus-adapter/prometheus-adapter.libsonnet') +
|
|
(import 'kubernetes-mixin/mixin.libsonnet') +
|
|
(import 'alerts/alerts.libsonnet') +
|
|
(import 'rules/rules.libsonnet') + {
|
|
kubePrometheus+:: {
|
|
namespace: k.core.v1.namespace.new($._config.namespace),
|
|
},
|
|
grafana+:: {
|
|
dashboardDefinitions: configMapList.new(super.dashboardDefinitions),
|
|
serviceMonitor: {
|
|
apiVersion: 'monitoring.coreos.com/v1',
|
|
kind: 'ServiceMonitor',
|
|
metadata: {
|
|
name: 'grafana',
|
|
namespace: $._config.namespace,
|
|
},
|
|
spec: {
|
|
selector: {
|
|
matchLabels: {
|
|
app: 'grafana',
|
|
},
|
|
},
|
|
endpoints: [
|
|
{
|
|
port: 'http',
|
|
interval: '15s',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
} + {
|
|
_config+:: {
|
|
namespace: 'default',
|
|
|
|
cadvisorSelector: 'job="kubelet"',
|
|
kubeletSelector: 'job="kubelet"',
|
|
kubeStateMetricsSelector: 'job="kube-state-metrics"',
|
|
nodeExporterSelector: 'job="node-exporter"',
|
|
notKubeDnsSelector: 'job!="kube-dns"',
|
|
kubeSchedulerSelector: 'job="kube-scheduler"',
|
|
kubeControllerManagerSelector: 'job="kube-controller-manager"',
|
|
kubeApiserverSelector: 'job="apiserver"',
|
|
coreDNSSelector: 'job="kube-dns"',
|
|
podLabel: 'pod',
|
|
|
|
alertmanagerSelector: 'job="alertmanager-main"',
|
|
prometheusSelector: 'job="prometheus-k8s"',
|
|
prometheusOperatorSelector: 'job="prometheus-operator"',
|
|
|
|
jobs: {
|
|
Kubelet: $._config.kubeletSelector,
|
|
KubeScheduler: $._config.kubeSchedulerSelector,
|
|
KubeControllerManager: $._config.kubeControllerManagerSelector,
|
|
KubeAPI: $._config.kubeApiserverSelector,
|
|
KubeStateMetrics: $._config.kubeStateMetricsSelector,
|
|
NodeExporter: $._config.nodeExporterSelector,
|
|
Alertmanager: $._config.alertmanagerSelector,
|
|
Prometheus: $._config.prometheusSelector,
|
|
PrometheusOperator: $._config.prometheusOperatorSelector,
|
|
CoreDNS: $._config.coreDNSSelector,
|
|
},
|
|
|
|
prometheus+:: {
|
|
rules: $.prometheusRules + $.prometheusAlerts,
|
|
},
|
|
|
|
grafana+:: {
|
|
dashboards: $.grafanaDashboards,
|
|
},
|
|
},
|
|
}
|