mirror of
https://github.com/prometheus-operator/kube-prometheus.git
synced 2025-11-06 19:11:48 +01:00
jsonnet/kube-prometheus: create k8s control plane component
* Extract ServiceMonitors related to k8s control plane from prometheus object into separate one * Add kubernetes-mixin to new object Signed-off-by: paulfantom <pawel@krupa.net.pl>
This commit is contained in:
parent
bc1026ae2b
commit
c80a82b19a
262
jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet
Normal file
262
jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet
Normal file
@ -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',
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@ -1,5 +1,3 @@
|
|||||||
local relabelings = import '../addons/dropping-deprecated-metrics-relabelings.libsonnet';
|
|
||||||
|
|
||||||
local defaults = {
|
local defaults = {
|
||||||
local defaults = self,
|
local defaults = self,
|
||||||
namespace: error 'must provide namespace',
|
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
|
// Include thanos sidecar Service only if thanos config was passed by user
|
||||||
[if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'serviceThanosSidecar']: {
|
[if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'serviceThanosSidecar']: {
|
||||||
apiVersion: 'v1',
|
apiVersion: 'v1',
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
local alertmanager = import './components/alertmanager.libsonnet';
|
local alertmanager = import './components/alertmanager.libsonnet';
|
||||||
local blackboxExporter = import './components/blackbox-exporter.libsonnet';
|
local blackboxExporter = import './components/blackbox-exporter.libsonnet';
|
||||||
local grafana = import './components/grafana.libsonnet';
|
local grafana = import './components/grafana.libsonnet';
|
||||||
|
local kubernetesControlPlane = import './components/k8s-control-plane.libsonnet';
|
||||||
local kubeStateMetrics = import './components/kube-state-metrics.libsonnet';
|
local kubeStateMetrics = import './components/kube-state-metrics.libsonnet';
|
||||||
local customMixin = import './components/mixin/custom.libsonnet';
|
local customMixin = import './components/mixin/custom.libsonnet';
|
||||||
local kubernetesMixin = import './components/mixin/kubernetes.libsonnet';
|
|
||||||
local nodeExporter = import './components/node-exporter.libsonnet';
|
local nodeExporter = import './components/node-exporter.libsonnet';
|
||||||
local prometheusAdapter = import './components/prometheus-adapter.libsonnet';
|
local prometheusAdapter = import './components/prometheus-adapter.libsonnet';
|
||||||
local prometheusOperator = import './components/prometheus-operator.libsonnet';
|
local prometheusOperator = import './components/prometheus-operator.libsonnet';
|
||||||
@ -58,7 +58,7 @@ local prometheus = import './components/prometheus.libsonnet';
|
|||||||
image: $.values.common.images.grafana,
|
image: $.values.common.images.grafana,
|
||||||
prometheusName: $.values.prometheus.name,
|
prometheusName: $.values.prometheus.name,
|
||||||
// TODO(paulfantom) This should be done by iterating over all objects and looking for object.mixin.grafanaDashboards
|
// 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: {
|
kubeStateMetrics: {
|
||||||
namespace: $.values.common.namespace,
|
namespace: $.values.common.namespace,
|
||||||
@ -96,7 +96,7 @@ local prometheus = import './components/prometheus.libsonnet';
|
|||||||
},
|
},
|
||||||
mixin+: { ruleLabels: $.values.common.ruleLabels },
|
mixin+: { ruleLabels: $.values.common.ruleLabels },
|
||||||
},
|
},
|
||||||
kubernetesMixin: {
|
kubernetesControlPlane: {
|
||||||
namespace: $.values.common.namespace,
|
namespace: $.values.common.namespace,
|
||||||
mixin+: { ruleLabels: $.values.common.ruleLabels },
|
mixin+: { ruleLabels: $.values.common.ruleLabels },
|
||||||
},
|
},
|
||||||
@ -114,7 +114,7 @@ local prometheus = import './components/prometheus.libsonnet';
|
|||||||
prometheus: prometheus($.values.prometheus),
|
prometheus: prometheus($.values.prometheus),
|
||||||
prometheusAdapter: prometheusAdapter($.values.prometheusAdapter),
|
prometheusAdapter: prometheusAdapter($.values.prometheusAdapter),
|
||||||
prometheusOperator: prometheusOperator($.values.prometheusOperator),
|
prometheusOperator: prometheusOperator($.values.prometheusOperator),
|
||||||
kubernetesMixin: kubernetesMixin($.values.kubernetesMixin),
|
kubernetesControlPlane: kubernetesControlPlane($.values.kubernetesControlPlane),
|
||||||
kubePrometheus: customMixin($.values.kubePrometheus) + {
|
kubePrometheus: customMixin($.values.kubePrometheus) + {
|
||||||
namespace: {
|
namespace: {
|
||||||
apiVersion: 'v1',
|
apiVersion: 'v1',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user