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/example.jsonnet b/example.jsonnet index 2568be96826783214cb50e4903e2c6895ee69575..00737df14a98c1fe594a450cabebe9fbee9eddfa 100644 --- a/example.jsonnet +++ b/example.jsonnet @@ -29,7 +29,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) } diff --git a/examples/additional-namespaces-servicemonitor.jsonnet b/examples/additional-namespaces-servicemonitor.jsonnet index 6cfe37dbd337aa85815e0660a09d0cb6e964ce8e..ec978da7806e058fab93070d2547f558893798dd 100644 --- a/examples/additional-namespaces-servicemonitor.jsonnet +++ b/examples/additional-namespaces-servicemonitor.jsonnet @@ -7,7 +7,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespaces+: ['my-namespace', 'my-second-namespace'], }, }, - prometheus+: { + exampleApplication: { serviceMonitorMyNamespace: { apiVersion: 'monitoring.coreos.com/v1', kind: 'ServiceMonitor', @@ -39,4 +39,5 @@ 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) } diff --git a/examples/additional-namespaces.jsonnet b/examples/additional-namespaces.jsonnet index 85cae475e97f772c11e77e488ea4d6f2b455b848..45c606a6022487ca5076a11a9342a07f8220eb85 100644 --- a/examples/additional-namespaces.jsonnet +++ b/examples/additional-namespaces.jsonnet @@ -4,7 +4,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + { namespace: 'monitoring', }, - prometheus+:: { + prometheus+: { namespaces+: ['my-namespace', 'my-second-namespace'], }, }, diff --git a/examples/alertmanager-config-external.jsonnet b/examples/alertmanager-config-external.jsonnet index 5d96d23dec49fc7918f0ddc10f6d13d03cc8ecc7..49f6b558dd87e9ecf843e636aec878efe8ead8ad 100644 --- a/examples/alertmanager-config-external.jsonnet +++ b/examples/alertmanager-config-external.jsonnet @@ -1,5 +1,5 @@ ((import 'kube-prometheus/main.libsonnet') + { - _config+:: { + values+:: { alertmanager+: { config: importstr 'alertmanager-config.yaml', }, diff --git a/examples/eks-cni-example.jsonnet b/examples/eks-cni-example.jsonnet index 77fa5d0bed42b5d564a3eb47b5bdd8a75b155d71..c92236fe4810a5cbd343e40dd94652cd4209ba1f 100644 --- a/examples/eks-cni-example.jsonnet +++ b/examples/eks-cni-example.jsonnet @@ -5,7 +5,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + namespace: 'monitoring', }, }, - prometheus+: { + kubernetesControlPlane+: { prometheusRuleEksCNI+: { spec+: { groups+: [ diff --git a/examples/etcd.jsonnet b/examples/etcd.jsonnet index e494b6ad20ffe94f5713b2b49f43b9d0911be864..7126ee314b330a418790056ca1b2ed5453c92193 100644 --- a/examples/etcd.jsonnet +++ b/examples/etcd.jsonnet @@ -6,7 +6,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + }, // Reference info: https://github.com/coreos/kube-prometheus/blob/master/README.md#static-etcd-configuration - etcd+:: { + etcd+: { // Configure this to be the IP(s) to scrape - i.e. your etcd node(s) (use commas to separate multiple values). ips: ['127.0.0.1'], diff --git a/examples/kustomize.jsonnet b/examples/kustomize.jsonnet index ab548b05f37088b364ccdc5f022ac1304cd24052..455b38bd77eb1ef1a912801cc8cc3cdb1ff2cb6b 100644 --- a/examples/kustomize.jsonnet +++ b/examples/kustomize.jsonnet @@ -26,7 +26,7 @@ local manifests = { ['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) } + - { ['kubernetes-' + name]: kp.kubernetesMixin[name] for name in std.objectFields(kp.kubernetesMixin) }; + { ['kubernetes-' + name]: kp.kubernetesControlPlane[name] for name in std.objectFields(kp.kubernetesControlPlane) }; local kustomizationResourceFile(name) = './manifests/' + name + '.yaml'; local kustomization = { diff --git a/examples/minikube.jsonnet b/examples/minikube.jsonnet index dd2f77b42dc9987f48ee8b44c89c4d1f0fdcf0be..87b88d6963625c5c5a03fb2304f4de217e418cff 100644 --- a/examples/minikube.jsonnet +++ b/examples/minikube.jsonnet @@ -8,10 +8,10 @@ local kp = common+: { namespace: 'monitoring', }, - alertmanager+:: { + alertmanager+: { config: importstr 'alertmanager-config.yaml', }, - grafana+:: { + grafana+: { config: { // http://docs.grafana.org/installation/configuration/ sections: { // Do not require grafana users to login/authenticate @@ -40,7 +40,7 @@ local kp = }, }, }, - alertmanager+:: { + alertmanager+: { alertmanager+: { // Reference info: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#alertmanagerspec spec+: { diff --git a/examples/prometheus-additional-alert-rule-example.jsonnet b/examples/prometheus-additional-alert-rule-example.jsonnet index 63ec2ea740944ba0f8f6526a54e583067d8c3a51..483b9cb1f656411909d0672a5077817f1018ec5a 100644 --- a/examples/prometheus-additional-alert-rule-example.jsonnet +++ b/examples/prometheus-additional-alert-rule-example.jsonnet @@ -4,10 +4,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: [ @@ -36,4 +42,5 @@ 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) } diff --git a/examples/prometheus-additional-recording-rule-example.jsonnet b/examples/prometheus-additional-recording-rule-example.jsonnet index c2abc4d39c9b669b2deba19518cce8e59ae2fc1c..5e67b03f018e95b2afad9a2f0e40ef62af4e3d99 100644 --- a/examples/prometheus-additional-recording-rule-example.jsonnet +++ b/examples/prometheus-additional-recording-rule-example.jsonnet @@ -4,10 +4,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: [ @@ -30,4 +36,5 @@ 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) } diff --git a/examples/prometheus-additional-rendered-rule-example.jsonnet b/examples/prometheus-additional-rendered-rule-example.jsonnet index 296768512d59e88cbee858833a52e7425cc5b5e1..66c7937c15bdbdc12cf4106fb594aee8431877c3 100644 --- a/examples/prometheus-additional-rendered-rule-example.jsonnet +++ b/examples/prometheus-additional-rendered-rule-example.jsonnet @@ -4,10 +4,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, }, }, }, @@ -20,4 +26,5 @@ 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) } diff --git a/examples/weave-net-example.jsonnet b/examples/weave-net-example.jsonnet index a7eca242c2402e53190d6d8906ed87785c519480..eeeb622df0ed30eab3a985f5302f1aa588b7f317 100644 --- a/examples/weave-net-example.jsonnet +++ b/examples/weave-net-example.jsonnet @@ -5,7 +5,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + namespace: 'monitoring', }, }, - prometheus+: { + kubernetesControlPlane+: { prometheusRuleWeaveNet+: { spec+: { groups: std.map( diff --git a/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet b/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet new file mode 100644 index 0000000000000000000000000000000000000000..dd2282db59c31cd8aa330241e3a6b63ace72875e --- /dev/null +++ b/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet @@ -0,0 +1,262 @@ +local relabelings = import '../addons/dropping-deprecated-metrics-relabelings.libsonnet'; + +local defaults = { + namespace: error 'must provide namespace', + commonLabels:: { + 'app.kubernetes.io/name': 'kube-prometheus', + 'app.kubernetes.io/part-of': 'kube-prometheus', + }, + mixin: { + ruleLabels: {}, + _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.+"', + }, + }, +}; + +function(params) { + local k8s = self, + config:: defaults + params, + + mixin:: (import 'github.com/kubernetes-monitoring/kubernetes-mixin/mixin.libsonnet') { + _config+:: k8s.config.mixin._config, + }, + + prometheusRule: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'PrometheusRule', + metadata: { + labels: k8s.config.commonLabels + k8s.config.mixin.ruleLabels, + name: 'kubernetes-monitoring-rules', + namespace: k8s.config.namespace, + }, + spec: { + local r = if std.objectHasAll(k8s.mixin, 'prometheusRules') then k8s.mixin.prometheusRules.groups else {}, + local a = if std.objectHasAll(k8s.mixin, 'prometheusAlerts') then k8s.mixin.prometheusAlerts.groups else {}, + groups: a + r, + }, + }, + + serviceMonitorKubeScheduler: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'ServiceMonitor', + metadata: { + name: 'kube-scheduler', + namespace: k8s.config.namespace, + labels: { 'app.kubernetes.io/name': 'kube-scheduler' }, + }, + spec: { + jobLabel: 'app.kubernetes.io/name', + endpoints: [{ + port: 'https-metrics', + interval: '30s', + scheme: 'https', + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + tlsConfig: { insecureSkipVerify: true }, + }], + selector: { + matchLabels: { 'app.kubernetes.io/name': 'kube-scheduler' }, + }, + namespaceSelector: { + matchNames: ['kube-system'], + }, + }, + }, + + serviceMonitorKubelet: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'ServiceMonitor', + metadata: { + name: 'kubelet', + namespace: k8s.config.namespace, + labels: { 'app.kubernetes.io/name': 'kubelet' }, + }, + spec: { + jobLabel: 'app.kubernetes.io/name', + endpoints: [ + { + port: 'https-metrics', + scheme: 'https', + interval: '30s', + honorLabels: true, + tlsConfig: { insecureSkipVerify: true }, + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + metricRelabelings: relabelings, + relabelings: [{ + sourceLabels: ['__metrics_path__'], + targetLabel: 'metrics_path', + }], + }, + { + port: 'https-metrics', + scheme: 'https', + path: '/metrics/cadvisor', + interval: '30s', + honorLabels: true, + honorTimestamps: false, + tlsConfig: { + insecureSkipVerify: true, + }, + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + relabelings: [{ + sourceLabels: ['__metrics_path__'], + targetLabel: 'metrics_path', + }], + metricRelabelings: [ + // Drop a bunch of metrics which are disabled but still sent, see + // https://github.com/google/cadvisor/issues/1925. + { + sourceLabels: ['__name__'], + regex: 'container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)', + action: 'drop', + }, + ], + }, + { + port: 'https-metrics', + scheme: 'https', + path: '/metrics/probes', + interval: '30s', + honorLabels: true, + tlsConfig: { insecureSkipVerify: true }, + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + relabelings: [{ + sourceLabels: ['__metrics_path__'], + targetLabel: 'metrics_path', + }], + }, + ], + selector: { + matchLabels: { 'app.kubernetes.io/name': 'kubelet' }, + }, + namespaceSelector: { + matchNames: ['kube-system'], + }, + }, + }, + + serviceMonitorKubeControllerManager: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'ServiceMonitor', + metadata: { + name: 'kube-controller-manager', + namespace: k8s.config.namespace, + labels: { 'app.kubernetes.io/name': 'kube-controller-manager' }, + }, + spec: { + jobLabel: 'app.kubernetes.io/name', + endpoints: [{ + port: 'https-metrics', + interval: '30s', + scheme: 'https', + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + tlsConfig: { + insecureSkipVerify: true, + }, + metricRelabelings: relabelings + [ + { + sourceLabels: ['__name__'], + regex: 'etcd_(debugging|disk|request|server).*', + action: 'drop', + }, + ], + }], + selector: { + matchLabels: { 'app.kubernetes.io/name': 'kube-controller-manager' }, + }, + namespaceSelector: { + matchNames: ['kube-system'], + }, + }, + }, + + serviceMonitorApiserver: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'ServiceMonitor', + metadata: { + name: 'kube-apiserver', + namespace: k8s.config.namespace, + labels: { 'app.kubernetes.io/name': 'apiserver' }, + }, + spec: { + jobLabel: 'component', + selector: { + matchLabels: { + component: 'apiserver', + provider: 'kubernetes', + }, + }, + namespaceSelector: { + matchNames: ['default'], + }, + endpoints: [{ + port: 'https', + interval: '30s', + scheme: 'https', + tlsConfig: { + caFile: '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt', + serverName: 'kubernetes', + }, + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + metricRelabelings: relabelings + [ + { + sourceLabels: ['__name__'], + regex: 'etcd_(debugging|disk|server).*', + action: 'drop', + }, + { + sourceLabels: ['__name__'], + regex: 'apiserver_admission_controller_admission_latencies_seconds_.*', + action: 'drop', + }, + { + sourceLabels: ['__name__'], + regex: 'apiserver_admission_step_admission_latencies_seconds_.*', + action: 'drop', + }, + { + sourceLabels: ['__name__', 'le'], + regex: 'apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)', + action: 'drop', + }, + ], + }], + }, + }, + + serviceMonitorCoreDNS: { + apiVersion: 'monitoring.coreos.com/v1', + kind: 'ServiceMonitor', + metadata: { + name: 'coredns', + namespace: k8s.config.namespace, + labels: { 'app.kubernetes.io/name': 'coredns' }, + }, + spec: { + jobLabel: 'app.kubernetes.io/name', + selector: { + matchLabels: { 'app.kubernetes.io/name': 'kube-dns' }, + }, + namespaceSelector: { + matchNames: ['kube-system'], + }, + endpoints: [{ + port: 'metrics', + interval: '15s', + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + }], + }, + }, + + +} diff --git a/jsonnet/kube-prometheus/components/mixin/kubernetes.libsonnet b/jsonnet/kube-prometheus/components/mixin/kubernetes.libsonnet deleted file mode 100644 index f9e5791fdf262d850d8e9c44ebadf45d475a1ba6..0000000000000000000000000000000000000000 --- a/jsonnet/kube-prometheus/components/mixin/kubernetes.libsonnet +++ /dev/null @@ -1,49 +0,0 @@ -local defaults = { - name: 'kubernetes', - namespace: error 'must provide namespace', - commonLabels:: { - 'app.kubernetes.io/name': 'kube-prometheus', - 'app.kubernetes.io/component': 'exporter', - 'app.kubernetes.io/part-of': 'kube-prometheus', - }, - mixin: { - ruleLabels: {}, - _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.+"', - }, - }, -}; - -function(params) { - local m = self, - config:: defaults + params, - - mixin:: (import 'github.com/kubernetes-monitoring/kubernetes-mixin/mixin.libsonnet') { - _config+:: m.config.mixin._config, - }, - - prometheusRule: { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'PrometheusRule', - metadata: { - labels: m.config.commonLabels + m.config.mixin.ruleLabels, - name: m.config.name + '-rules', - namespace: m.config.namespace, - }, - spec: { - local r = if std.objectHasAll(m.mixin, 'prometheusRules') then m.mixin.prometheusRules.groups else {}, - local a = if std.objectHasAll(m.mixin, 'prometheusAlerts') then m.mixin.prometheusAlerts.groups else {}, - groups: a + r, - }, - }, -} diff --git a/jsonnet/kube-prometheus/components/prometheus.libsonnet b/jsonnet/kube-prometheus/components/prometheus.libsonnet index 58b8e517211549fb80cf5ea0a2f7b10a7718c893..9bbefd47f16db6e0810d78f423b80fde954a0a36 100644 --- a/jsonnet/kube-prometheus/components/prometheus.libsonnet +++ b/jsonnet/kube-prometheus/components/prometheus.libsonnet @@ -1,5 +1,3 @@ -local relabelings = import '../addons/dropping-deprecated-metrics-relabelings.libsonnet'; - local defaults = { local defaults = self, namespace: error 'must provide namespace', @@ -297,217 +295,6 @@ function(params) { }, }, - serviceMonitorKubeScheduler: { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'ServiceMonitor', - metadata: { - name: 'kube-scheduler', - namespace: p.config.namespace, - labels: { 'app.kubernetes.io/name': 'kube-scheduler' }, - }, - spec: { - jobLabel: 'app.kubernetes.io/name', - endpoints: [{ - port: 'https-metrics', - interval: '30s', - scheme: 'https', - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - tlsConfig: { insecureSkipVerify: true }, - }], - selector: { - matchLabels: { 'app.kubernetes.io/name': 'kube-scheduler' }, - }, - namespaceSelector: { - matchNames: ['kube-system'], - }, - }, - }, - - serviceMonitorKubelet: { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'ServiceMonitor', - metadata: { - name: 'kubelet', - namespace: p.config.namespace, - labels: { 'app.kubernetes.io/name': 'kubelet' }, - }, - spec: { - jobLabel: 'app.kubernetes.io/name', - endpoints: [ - { - port: 'https-metrics', - scheme: 'https', - interval: '30s', - honorLabels: true, - tlsConfig: { insecureSkipVerify: true }, - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - metricRelabelings: relabelings, - relabelings: [{ - sourceLabels: ['__metrics_path__'], - targetLabel: 'metrics_path', - }], - }, - { - port: 'https-metrics', - scheme: 'https', - path: '/metrics/cadvisor', - interval: '30s', - honorLabels: true, - honorTimestamps: false, - tlsConfig: { - insecureSkipVerify: true, - }, - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - relabelings: [{ - sourceLabels: ['__metrics_path__'], - targetLabel: 'metrics_path', - }], - metricRelabelings: [ - // Drop a bunch of metrics which are disabled but still sent, see - // https://github.com/google/cadvisor/issues/1925. - { - sourceLabels: ['__name__'], - regex: 'container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s)', - action: 'drop', - }, - ], - }, - { - port: 'https-metrics', - scheme: 'https', - path: '/metrics/probes', - interval: '30s', - honorLabels: true, - tlsConfig: { insecureSkipVerify: true }, - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - relabelings: [{ - sourceLabels: ['__metrics_path__'], - targetLabel: 'metrics_path', - }], - }, - ], - selector: { - matchLabels: { 'app.kubernetes.io/name': 'kubelet' }, - }, - namespaceSelector: { - matchNames: ['kube-system'], - }, - }, - }, - - serviceMonitorKubeControllerManager: { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'ServiceMonitor', - metadata: { - name: 'kube-controller-manager', - namespace: p.config.namespace, - labels: { 'app.kubernetes.io/name': 'kube-controller-manager' }, - }, - spec: { - jobLabel: 'app.kubernetes.io/name', - endpoints: [{ - port: 'https-metrics', - interval: '30s', - scheme: 'https', - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - tlsConfig: { - insecureSkipVerify: true, - }, - metricRelabelings: relabelings + [ - { - sourceLabels: ['__name__'], - regex: 'etcd_(debugging|disk|request|server).*', - action: 'drop', - }, - ], - }], - selector: { - matchLabels: { 'app.kubernetes.io/name': 'kube-controller-manager' }, - }, - namespaceSelector: { - matchNames: ['kube-system'], - }, - }, - }, - - serviceMonitorApiserver: { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'ServiceMonitor', - metadata: { - name: 'kube-apiserver', - namespace: p.config.namespace, - labels: { 'app.kubernetes.io/name': 'apiserver' }, - }, - spec: { - jobLabel: 'component', - selector: { - matchLabels: { - component: 'apiserver', - provider: 'kubernetes', - }, - }, - namespaceSelector: { - matchNames: ['default'], - }, - endpoints: [{ - port: 'https', - interval: '30s', - scheme: 'https', - tlsConfig: { - caFile: '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt', - serverName: 'kubernetes', - }, - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - metricRelabelings: relabelings + [ - { - sourceLabels: ['__name__'], - regex: 'etcd_(debugging|disk|server).*', - action: 'drop', - }, - { - sourceLabels: ['__name__'], - regex: 'apiserver_admission_controller_admission_latencies_seconds_.*', - action: 'drop', - }, - { - sourceLabels: ['__name__'], - regex: 'apiserver_admission_step_admission_latencies_seconds_.*', - action: 'drop', - }, - { - sourceLabels: ['__name__', 'le'], - regex: 'apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)', - action: 'drop', - }, - ], - }], - }, - }, - - serviceMonitorCoreDNS: { - apiVersion: 'monitoring.coreos.com/v1', - kind: 'ServiceMonitor', - metadata: { - name: 'coredns', - namespace: p.config.namespace, - labels: { 'app.kubernetes.io/name': 'coredns' }, - }, - spec: { - jobLabel: 'app.kubernetes.io/name', - selector: { - matchLabels: { 'app.kubernetes.io/name': 'kube-dns' }, - }, - namespaceSelector: { - matchNames: ['kube-system'], - }, - endpoints: [{ - port: 'metrics', - interval: '15s', - bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', - }], - }, - }, - // Include thanos sidecar Service only if thanos config was passed by user [if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'serviceThanosSidecar']: { apiVersion: 'v1', diff --git a/jsonnet/kube-prometheus/main.libsonnet b/jsonnet/kube-prometheus/main.libsonnet index bd2a60b321289c94631e3411011436dae4361f63..aa684c8df883161009c07710137495d8a0a6cc88 100644 --- a/jsonnet/kube-prometheus/main.libsonnet +++ b/jsonnet/kube-prometheus/main.libsonnet @@ -1,9 +1,9 @@ local alertmanager = import './components/alertmanager.libsonnet'; local blackboxExporter = import './components/blackbox-exporter.libsonnet'; local grafana = import './components/grafana.libsonnet'; +local kubernetesControlPlane = import './components/k8s-control-plane.libsonnet'; local kubeStateMetrics = import './components/kube-state-metrics.libsonnet'; local customMixin = import './components/mixin/custom.libsonnet'; -local kubernetesMixin = import './components/mixin/kubernetes.libsonnet'; local nodeExporter = import './components/node-exporter.libsonnet'; local prometheusAdapter = import './components/prometheus-adapter.libsonnet'; local prometheusOperator = import './components/prometheus-operator.libsonnet'; @@ -58,7 +58,7 @@ local prometheus = import './components/prometheus.libsonnet'; image: $.values.common.images.grafana, prometheusName: $.values.prometheus.name, // TODO(paulfantom) This should be done by iterating over all objects and looking for object.mixin.grafanaDashboards - dashboards: $.nodeExporter.mixin.grafanaDashboards + $.prometheus.mixin.grafanaDashboards + $.kubernetesMixin.mixin.grafanaDashboards, + dashboards: $.nodeExporter.mixin.grafanaDashboards + $.prometheus.mixin.grafanaDashboards + $.kubernetesControlPlane.mixin.grafanaDashboards, }, kubeStateMetrics: { namespace: $.values.common.namespace, @@ -96,7 +96,7 @@ local prometheus = import './components/prometheus.libsonnet'; }, mixin+: { ruleLabels: $.values.common.ruleLabels }, }, - kubernetesMixin: { + kubernetesControlPlane: { namespace: $.values.common.namespace, mixin+: { ruleLabels: $.values.common.ruleLabels }, }, @@ -114,7 +114,7 @@ local prometheus = import './components/prometheus.libsonnet'; prometheus: prometheus($.values.prometheus), prometheusAdapter: prometheusAdapter($.values.prometheusAdapter), prometheusOperator: prometheusOperator($.values.prometheusOperator), - kubernetesMixin: kubernetesMixin($.values.kubernetesMixin), + kubernetesControlPlane: kubernetesControlPlane($.values.kubernetesControlPlane), kubePrometheus: customMixin($.values.kubePrometheus) + { namespace: { apiVersion: 'v1', diff --git a/jsonnet/kube-prometheus/platforms/aws.libsonnet b/jsonnet/kube-prometheus/platforms/aws.libsonnet index 04d67d0055e0faee5dfcb878c70cb95ce44f61c2..27a61c2b87bc25e67c29bad4c4d88041a27d3fc3 100644 --- a/jsonnet/kube-prometheus/platforms/aws.libsonnet +++ b/jsonnet/kube-prometheus/platforms/aws.libsonnet @@ -14,7 +14,7 @@ local service(name, namespace, labels, selector, ports) = { }; { - prometheus+: { + kubernetesControlPlane+: { kubeControllerManagerPrometheusDiscoveryService: service( 'kube-controller-manager-prometheus-discovery', 'kube-system', diff --git a/jsonnet/kube-prometheus/platforms/bootkube.libsonnet b/jsonnet/kube-prometheus/platforms/bootkube.libsonnet index 8e73509dd8e469b35a8256271ef90ff26b9ab01b..e4651ae92c14ab6df95ec37d0e906ec432187614 100644 --- a/jsonnet/kube-prometheus/platforms/bootkube.libsonnet +++ b/jsonnet/kube-prometheus/platforms/bootkube.libsonnet @@ -14,7 +14,7 @@ local service(name, namespace, labels, selector, ports) = { }; { - prometheus+:: { + kubernetesControlPlane+: { kubeControllerManagerPrometheusDiscoveryService: service( 'kube-controller-manager-prometheus-discovery', 'kube-system', diff --git a/jsonnet/kube-prometheus/platforms/eks.libsonnet b/jsonnet/kube-prometheus/platforms/eks.libsonnet index c72e5c8ba219964e72396b945669e10f44969181..815c1234d1b6bc6e61c981b06dbb70d7d904269a 100644 --- a/jsonnet/kube-prometheus/platforms/eks.libsonnet +++ b/jsonnet/kube-prometheus/platforms/eks.libsonnet @@ -5,7 +5,7 @@ minimumAvailableIPsTime: '10m', }, }, - prometheus+: { + kubernetesControlPlane+: { serviceMonitorCoreDNS+: { spec+: { endpoints: [ diff --git a/jsonnet/kube-prometheus/platforms/gke.libsonnet b/jsonnet/kube-prometheus/platforms/gke.libsonnet index b8b83c28b471466c21c8ee6a662b68cc84f35f5b..973eeffb86d4d05262b1ecfb5b8e81d2e372de98 100644 --- a/jsonnet/kube-prometheus/platforms/gke.libsonnet +++ b/jsonnet/kube-prometheus/platforms/gke.libsonnet @@ -1,6 +1,6 @@ (import '../addons/managed-cluster.libsonnet') + { - _config+:: { - prometheusAdapter+:: { + values+:: { + prometheusAdapter+: { config+: { resourceRules:: null, }, diff --git a/jsonnet/kube-prometheus/platforms/kops-coredns.libsonnet b/jsonnet/kube-prometheus/platforms/kops-coredns.libsonnet index 749e937c4ff72d02a5a67fc52e887327eeec5b78..b9688173f19fa10291c9c89452c0310843d38ae3 100644 --- a/jsonnet/kube-prometheus/platforms/kops-coredns.libsonnet +++ b/jsonnet/kube-prometheus/platforms/kops-coredns.libsonnet @@ -1,5 +1,5 @@ { - prometheus+:: { + kubernetesControlPlane+: { kubeDnsPrometheusDiscoveryService: { apiVersion: 'v1', kind: 'Service', diff --git a/jsonnet/kube-prometheus/platforms/kops.libsonnet b/jsonnet/kube-prometheus/platforms/kops.libsonnet index 54be338ebc92cce58bf0f5cae6236573b8654ab8..914ffb029902890348bed3f3894913c788d09d2b 100644 --- a/jsonnet/kube-prometheus/platforms/kops.libsonnet +++ b/jsonnet/kube-prometheus/platforms/kops.libsonnet @@ -14,7 +14,7 @@ local service(name, namespace, labels, selector, ports) = { }; { - prometheus+:: { + kubernetesControlPlane+: { kubeControllerManagerPrometheusDiscoveryService: service( 'kube-controller-manager-prometheus-discovery', 'kube-system', diff --git a/jsonnet/kube-prometheus/platforms/kubeadm.libsonnet b/jsonnet/kube-prometheus/platforms/kubeadm.libsonnet index 3621c2aac5d9493ef2ae2f12e6f8a24759ea333e..dec785d9de9000d45687a84fe9ae936b16b664c3 100644 --- a/jsonnet/kube-prometheus/platforms/kubeadm.libsonnet +++ b/jsonnet/kube-prometheus/platforms/kubeadm.libsonnet @@ -14,7 +14,7 @@ local service(name, namespace, labels, selector, ports) = { }; { - prometheus+: { + kubernetesControlPlane+: { kubeControllerManagerPrometheusDiscoveryService: service( 'kube-controller-manager-prometheus-discovery', 'kube-system', diff --git a/jsonnet/kube-prometheus/platforms/kubespray.libsonnet b/jsonnet/kube-prometheus/platforms/kubespray.libsonnet index f34cab677c51d99611827dcebc8786d98ea255e1..3b35e8e10526692ad7a5ddb165075f1f87a964fa 100644 --- a/jsonnet/kube-prometheus/platforms/kubespray.libsonnet +++ b/jsonnet/kube-prometheus/platforms/kubespray.libsonnet @@ -15,7 +15,7 @@ local service(name, namespace, labels, selector, ports) = { { - prometheus+: { + kubernetesControlPlane+: { kubeControllerManagerPrometheusDiscoveryService: service( 'kube-controller-manager-prometheus-discovery', 'kube-system', 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