diff --git a/README.md b/README.md index dfaea1062cb26bda422325057d1235ee2636c47e..592a0d35ed41fad3fdda9264f9fa945ab8e3e24e 100644 --- a/README.md +++ b/README.md @@ -243,7 +243,7 @@ local kp = { ['blackbox-exporter-' + name]: kp.blackboxExporter[name] for name in std.objectFields(kp.blackboxExporter) } + { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } + { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } + -{ ['kubernetes-' + name]: kp.kubernetesMixin[name] for name in std.objectFields(kp.kubernetesMixin) } +{ ['kubernetes-' + name]: kp.kubernetesControlPlane[name] for name in std.objectFields(kp.kubernetesControlPlane) } { ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } + { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } + { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } @@ -586,7 +586,7 @@ In the above example the configuration has been inlined, but can just as well be [embedmd]:# (examples/alertmanager-config-external.jsonnet) ```jsonnet ((import 'kube-prometheus/main.libsonnet') + { - _config+:: { + values+:: { alertmanager+: { config: importstr 'alertmanager-config.yaml', }, @@ -606,7 +606,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespace: 'monitoring', }, - prometheus+:: { + prometheus+: { namespaces+: ['my-namespace', 'my-second-namespace'], }, }, @@ -640,7 +640,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespaces+: ['my-namespace', 'my-second-namespace'], }, }, - prometheus+: { + exampleApplication: { serviceMonitorMyNamespace: { apiVersion: 'monitoring.coreos.com/v1', kind: 'ServiceMonitor', @@ -672,7 +672,8 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } + { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } + { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } + -{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } + +{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) } ``` > NOTE: make sure your service resources have the right labels (eg. `'app': 'myapp'`) applied. Prometheus uses kubernetes labels to discover resources inside the namespaces. diff --git a/docs/EKS-cni-support.md b/docs/EKS-cni-support.md index 4cb36bc975ea9b4351a403eb34f9fb8233ac219b..266d5fcbab1e7402765c8b4f142283b6ba25ca1c 100644 --- a/docs/EKS-cni-support.md +++ b/docs/EKS-cni-support.md @@ -14,7 +14,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + namespace: 'monitoring', }, }, - prometheus+: { + kubernetesControlPlane+: { prometheusRuleEksCNI+: { spec+: { groups+: [ diff --git a/docs/developing-prometheus-rules-and-grafana-dashboards.md b/docs/developing-prometheus-rules-and-grafana-dashboards.md index 59447941982c00d799f0a7f1ae9f8f7ffc147747..814ccf88815e1f257800bedcdc33fd780550ffee 100644 --- a/docs/developing-prometheus-rules-and-grafana-dashboards.md +++ b/docs/developing-prometheus-rules-and-grafana-dashboards.md @@ -41,7 +41,7 @@ local kp = { ['blackbox-exporter-' + name]: kp.blackboxExporter[name] for name in std.objectFields(kp.blackboxExporter) } + { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } + { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } + -{ ['kubernetes-' + name]: kp.kubernetesMixin[name] for name in std.objectFields(kp.kubernetesMixin) } +{ ['kubernetes-' + name]: kp.kubernetesControlPlane[name] for name in std.objectFields(kp.kubernetesControlPlane) } { ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } + { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } + { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } @@ -65,10 +65,16 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespace: 'monitoring', }, }, - prometheus+: { - prometheusRule+: { - spec+: { - groups+: [ + exampleApplication: { + prometheusRuleExample: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'PrometheusRule', + metadata: { + name: 'my-prometheus-rule', + namespace: $.values.common.namespace, + }, + spec: { + groups: [ { name: 'example-group', rules: [ @@ -97,7 +103,8 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } + { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } + { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } + -{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } + +{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) } ``` ### Recording rules @@ -114,10 +121,16 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespace: 'monitoring', }, }, - prometheus+: { - prometheusRule+: { - spec+: { - groups+: [ + exampleApplication: { + prometheusRuleExample: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'PrometheusRule', + metadata: { + name: 'my-prometheus-rule', + namespace: $.values.common.namespace, + }, + spec: { + groups: [ { name: 'example-group', rules: [ @@ -140,7 +153,8 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } + { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } + { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } + -{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } + +{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) } ``` ### Pre-rendered rules @@ -167,10 +181,16 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespace: 'monitoring', }, }, - prometheus+: { - prometheusRule+: { - spec+: { - groups+: (import 'existingrule.json').groups, + exampleApplication: { + prometheusRuleExample: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'PrometheusRule', + metadata: { + name: 'my-prometheus-rule', + namespace: $.values.common.namespace, + }, + spec: { + groups: (import 'existingrule.json').groups, }, }, }, @@ -183,7 +203,8 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } + { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } + { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } + -{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } + +{ ['example-application-' + name]: kp.exampleApplication[name] for name in std.objectFields(kp.exampleApplication) } ``` ### Changing default rules diff --git a/docs/weave-net-support.md b/docs/weave-net-support.md index 8766bfc8388bf77e8ad5d6813895286166028621..e8c2dfce4109a155fefaa254251a9ccc9149a684 100644 --- a/docs/weave-net-support.md +++ b/docs/weave-net-support.md @@ -24,7 +24,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + namespace: 'monitoring', }, }, - prometheus+: { + kubernetesControlPlane+: { prometheusRuleWeaveNet+: { spec+: { groups: std.map( diff --git a/kustomization.yaml b/kustomization.yaml index 2ebd021b9be4b6317fb4029991d9443ed42059df..8cc445727d50f2be813a802abde8161681ac13fb 100644 --- a/kustomization.yaml +++ b/kustomization.yaml @@ -30,6 +30,11 @@ resources: - ./manifests/kube-state-metrics-serviceAccount.yaml - ./manifests/kube-state-metrics-serviceMonitor.yaml - ./manifests/kubernetes-prometheusRule.yaml +- ./manifests/kubernetes-serviceMonitorApiserver.yaml +- ./manifests/kubernetes-serviceMonitorCoreDNS.yaml +- ./manifests/kubernetes-serviceMonitorKubeControllerManager.yaml +- ./manifests/kubernetes-serviceMonitorKubeScheduler.yaml +- ./manifests/kubernetes-serviceMonitorKubelet.yaml - ./manifests/node-exporter-clusterRole.yaml - ./manifests/node-exporter-clusterRoleBinding.yaml - ./manifests/node-exporter-daemonset.yaml @@ -62,11 +67,6 @@ resources: - ./manifests/prometheus-service.yaml - ./manifests/prometheus-serviceAccount.yaml - ./manifests/prometheus-serviceMonitor.yaml -- ./manifests/prometheus-serviceMonitorApiserver.yaml -- ./manifests/prometheus-serviceMonitorCoreDNS.yaml -- ./manifests/prometheus-serviceMonitorKubeControllerManager.yaml -- ./manifests/prometheus-serviceMonitorKubeScheduler.yaml -- ./manifests/prometheus-serviceMonitorKubelet.yaml - ./manifests/setup/0namespace-namespace.yaml - ./manifests/setup/prometheus-operator-0alertmanagerConfigCustomResourceDefinition.yaml - ./manifests/setup/prometheus-operator-0alertmanagerCustomResourceDefinition.yaml diff --git a/manifests/kubernetes-prometheusRule.yaml b/manifests/kubernetes-prometheusRule.yaml index d3ee9527b90e186425129efcc5fbaf2bd0f31a2b..4dc01f2f49d9561a9ae3d4b54c0a5617eb50e0a1 100644 --- a/manifests/kubernetes-prometheusRule.yaml +++ b/manifests/kubernetes-prometheusRule.yaml @@ -2,12 +2,11 @@ apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: labels: - app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-prometheus app.kubernetes.io/part-of: kube-prometheus prometheus: k8s role: alert-rules - name: kubernetes-rules + name: kubernetes-monitoring-rules namespace: monitoring spec: groups: diff --git a/manifests/prometheus-serviceMonitorApiserver.yaml b/manifests/kubernetes-serviceMonitorApiserver.yaml similarity index 100% rename from manifests/prometheus-serviceMonitorApiserver.yaml rename to manifests/kubernetes-serviceMonitorApiserver.yaml diff --git a/manifests/prometheus-serviceMonitorCoreDNS.yaml b/manifests/kubernetes-serviceMonitorCoreDNS.yaml similarity index 100% rename from manifests/prometheus-serviceMonitorCoreDNS.yaml rename to manifests/kubernetes-serviceMonitorCoreDNS.yaml diff --git a/manifests/prometheus-serviceMonitorKubeControllerManager.yaml b/manifests/kubernetes-serviceMonitorKubeControllerManager.yaml similarity index 100% rename from manifests/prometheus-serviceMonitorKubeControllerManager.yaml rename to manifests/kubernetes-serviceMonitorKubeControllerManager.yaml diff --git a/manifests/prometheus-serviceMonitorKubeScheduler.yaml b/manifests/kubernetes-serviceMonitorKubeScheduler.yaml similarity index 100% rename from manifests/prometheus-serviceMonitorKubeScheduler.yaml rename to manifests/kubernetes-serviceMonitorKubeScheduler.yaml diff --git a/manifests/prometheus-serviceMonitorKubelet.yaml b/manifests/kubernetes-serviceMonitorKubelet.yaml similarity index 100% rename from manifests/prometheus-serviceMonitorKubelet.yaml rename to manifests/kubernetes-serviceMonitorKubelet.yaml