109 lines
5.7 KiB
YAML
109 lines
5.7 KiB
YAML
{{- $Values := (.helm).Values | default .Values }}
|
|
{{- $runbookUrl := ($Values.defaultRules).runbookUrl | default "https://runbooks.prometheus-operator.dev/runbooks" }}
|
|
{{- $clusterLabel := ($Values.global).clusterLabel | default "cluster" }}
|
|
{{- $additionalGroupByLabels := append $Values.defaultRules.additionalGroupByLabels $clusterLabel }}
|
|
{{- $groupLabels := join "," $additionalGroupByLabels }}
|
|
{{- $grafanaHost := ternary (index (($Values.grafana).ingress).hosts 0) (($Values.external).grafana).host ($Values.grafana).enabled }}
|
|
condition: '{{ true }}'
|
|
name: k8s.rules.pod_owner
|
|
rules:
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
max by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_replace(
|
|
label_replace(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="ReplicaSet"},
|
|
"replicaset", "$1", "owner_name", "(.*)"
|
|
) * on (replicaset,namespace,{{ $groupLabels }}) group_left(owner_name) topk by (replicaset,namespace,{{ $groupLabels }}) (
|
|
1, max by (replicaset,namespace,owner_name,{{ $groupLabels }}) (
|
|
kube_replicaset_owner{job="kube-state-metrics", owner_kind=""}
|
|
)
|
|
),
|
|
"workload", "$1", "replicaset", "(.*)"
|
|
)
|
|
)
|
|
labels:
|
|
workload_type: replicaset
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
max by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_replace(
|
|
label_replace(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="ReplicaSet"},
|
|
"replicaset", "$1", "owner_name", "(.*)"
|
|
) * on (replicaset,namespace,{{ $groupLabels }}) group_left(owner_name) topk by (replicaset,namespace,{{ $groupLabels }}) (
|
|
1, max by (replicaset,namespace,owner_name,{{ $groupLabels }}) (
|
|
kube_replicaset_owner{job="kube-state-metrics", owner_kind="Deployment"}
|
|
)
|
|
),
|
|
"workload", "$1", "owner_name", "(.*)"
|
|
)
|
|
)
|
|
labels:
|
|
workload_type: deployment
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
max by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_replace(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="DaemonSet"},
|
|
"workload", "$1", "owner_name", "(.*)"
|
|
)
|
|
)
|
|
labels:
|
|
workload_type: daemonset
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
max by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_replace(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="StatefulSet"},
|
|
"workload", "$1", "owner_name", "(.*)")
|
|
)
|
|
labels:
|
|
workload_type: statefulset
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
group by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_join(
|
|
group by (namespace,job_name,pod,owner_name,{{ $groupLabels }}) (
|
|
label_join(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="Job"}
|
|
, "job_name", "", "owner_name")
|
|
)
|
|
* on (namespace,job_name,{{ $groupLabels }}) group_left()
|
|
group by (namespace,job_name,{{ $groupLabels }}) (
|
|
kube_job_owner{job="kube-state-metrics", owner_kind=~"Pod|"}
|
|
)
|
|
, "workload", "", "owner_name")
|
|
)
|
|
labels:
|
|
workload_type: job
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
max by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_replace(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="", owner_name=""},
|
|
"workload", "$1", "pod", "(.+)")
|
|
)
|
|
labels:
|
|
workload_type: barepod
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: |-
|
|
max by (namespace,workload,pod,{{ $groupLabels }}) (
|
|
label_replace(
|
|
kube_pod_owner{job="kube-state-metrics", owner_kind="Node"},
|
|
"workload", "$1", "pod", "(.+)")
|
|
)
|
|
labels:
|
|
workload_type: staticpod
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|
|
- condition: '{{ true }}'
|
|
expr: "group by (namespace,workload,workload_type,pod,{{ $groupLabels }}) (\n label_join(\n label_join(\n group by (namespace,job_name,pod,{{ $groupLabels }}) (\n label_join(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"}\n , \"job_name\", \"\", \"owner_name\")\n )\n * on (namespace,job_name,{{ $groupLabels }}) group_left(owner_kind, owner_name)\n group by (namespace,job_name,owner_kind,owner_name,{{ $groupLabels }}) (\n kube_job_owner{job=\"kube-state-metrics\", owner_kind!=\"Pod\", owner_kind!=\"\"}\n )\n , \"workload\", \"\", \"owner_name\")\n , \"workload_type\", \"\", \"owner_kind\")\n \n OR\n\n label_replace(\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"}\n , \"replicaset\", \"$1\", \"owner_name\", \"(.+)\"\n )\n * on (namespace,replicaset,{{ $groupLabels }}) group_left(owner_kind, owner_name)\n group by (cluster, namespace, replicaset, owner_kind,\
|
|
\ owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind!=\"Deployment\", owner_kind!=\"\"}\n )\n , \"workload\", \"$1\", \"owner_name\", \"(.+)\")\n OR\n label_replace(\n group by (namespace,pod,owner_name,owner_kind,{{ $groupLabels }}) (\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind!=\"ReplicaSet\", owner_kind!=\"DaemonSet\", owner_kind!=\"StatefulSet\", owner_kind!=\"Job\", owner_kind!=\"Node\", owner_kind!=\"\"}\n )\n , \"workload\", \"$1\", \"owner_name\", \"(.+)\"\n )\n , \"workload_type\", \"$1\", \"owner_kind\", \"(.+)\")\n)"
|
|
record: namespace_workload_pod:kube_pod_owner:relabel
|