{{- /* Generated from 'k8s.rules.pod-owner' group from https://github.com/prometheus-operator/kube-prometheus.git Do not change in-place! In order to change this file first read following link: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack */ -}} {{- $kubeTargetVersion := default .Capabilities.KubeVersion.GitVersion .Values.kubeTargetVersionOverride }} {{- if and (semverCompare ">=1.14.0-0" $kubeTargetVersion) (semverCompare "<9.9.9-9" $kubeTargetVersion) .Values.defaultRules.create .Values.defaultRules.rules.k8sPodOwner }} {{- $kubeStateMetricsJob := include "kube-prometheus-stack-kube-state-metrics.name" . }} apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" .) "k8s.rules.pod-owner" | trunc 63 | trimSuffix "-" }} namespace: {{ template "kube-prometheus-stack.namespace" . }} labels: app: {{ template "kube-prometheus-stack.name" . }} {{ include "kube-prometheus-stack.labels" . | indent 4 }} {{- if .Values.defaultRules.labels }} {{ toYaml .Values.defaultRules.labels | indent 4 }} {{- end }} {{- if .Values.defaultRules.annotations }} annotations: {{ toYaml .Values.defaultRules.annotations | indent 4 }} {{- end }} spec: groups: - name: k8s.rules.pod_owner rules: - expr: |- max by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster, namespace, workload, pod) ( label_replace( label_replace( kube_pod_owner{job="{{ $kubeStateMetricsJob }}", owner_kind="ReplicaSet"}, "replicaset", "$1", "owner_name", "(.*)" ) * on ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}replicaset, namespace) group_left(owner_name) topk by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}replicaset, namespace) ( 1, max by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}replicaset, namespace, owner_name) ( kube_replicaset_owner{job="{{ $kubeStateMetricsJob }}"} ) ), "workload", "$1", "owner_name", "(.*)" ) ) labels: workload_type: deployment {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- with .Values.defaultRules.additionalRuleLabels }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- toYaml . | nindent 8 }} {{- end }} {{- end }} record: namespace_workload_pod:kube_pod_owner:relabel - expr: |- max by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster, namespace, workload, pod) ( label_replace( kube_pod_owner{job="{{ $kubeStateMetricsJob }}", owner_kind="DaemonSet"}, "workload", "$1", "owner_name", "(.*)" ) ) labels: workload_type: daemonset {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- with .Values.defaultRules.additionalRuleLabels }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- toYaml . | nindent 8 }} {{- end }} {{- end }} record: namespace_workload_pod:kube_pod_owner:relabel - expr: |- max by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster, namespace, workload, pod) ( label_replace( kube_pod_owner{job="{{ $kubeStateMetricsJob }}", owner_kind="StatefulSet"}, "workload", "$1", "owner_name", "(.*)" ) ) labels: workload_type: statefulset {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- with .Values.defaultRules.additionalRuleLabels }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- toYaml . | nindent 8 }} {{- end }} {{- end }} record: namespace_workload_pod:kube_pod_owner:relabel - expr: |- max by ({{ range $.Values.defaultRules.additionalAggregationLabels }}{{ . }},{{ end }}cluster, namespace, workload, pod) ( label_replace( kube_pod_owner{job="{{ $kubeStateMetricsJob }}", owner_kind="Job"}, "workload", "$1", "owner_name", "(.*)" ) ) labels: workload_type: job {{- if or .Values.defaultRules.additionalRuleLabels .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- with .Values.defaultRules.additionalRuleLabels }} {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.defaultRules.additionalRuleGroupLabels.k8sPodOwner }} {{- toYaml . | nindent 8 }} {{- end }} {{- end }} record: namespace_workload_pod:kube_pod_owner:relabel {{- end }}