github.com/grafana/pyroscope@v1.18.0/operations/monitoring/rules/k8s-rules-pod-owner.rules.yaml (about) 1 groups: 2 - name: k8s.rules.pod_owner 3 rules: 4 - expr: | 5 max by (cluster, namespace, workload, pod) ( 6 label_replace( 7 label_replace( 8 kube_pod_owner{job=~"(.*/)?kube-state-metrics", owner_kind="ReplicaSet"}, 9 "replicaset", "$1", "owner_name", "(.*)" 10 ) * on(replicaset, namespace) group_left(owner_name) topk by(replicaset, namespace) ( 11 1, max by (replicaset, namespace, owner_name) ( 12 kube_replicaset_owner{job=~"(.*/)?kube-state-metrics"} 13 ) 14 ), 15 "workload", "$1", "owner_name", "(.*)" 16 ) 17 ) 18 labels: 19 workload_type: deployment 20 record: namespace_workload_pod:kube_pod_owner:relabel 21 - expr: | 22 max by (cluster, namespace, workload, pod) ( 23 label_replace( 24 kube_pod_owner{job=~"(.*/)?kube-state-metrics", owner_kind="DaemonSet"}, 25 "workload", "$1", "owner_name", "(.*)" 26 ) 27 ) 28 labels: 29 workload_type: daemonset 30 record: namespace_workload_pod:kube_pod_owner:relabel 31 - expr: | 32 max by (cluster, namespace, workload, pod) ( 33 label_replace( 34 kube_pod_owner{job=~"(.*/)?kube-state-metrics", owner_kind="StatefulSet"}, 35 "workload", "$1", "owner_name", "(.*)" 36 ) 37 ) 38 labels: 39 workload_type: statefulset 40 record: namespace_workload_pod:kube_pod_owner:relabel 41 - expr: | 42 max by (cluster, namespace, workload, pod) ( 43 label_replace( 44 kube_pod_owner{job=~"(.*/)?kube-state-metrics", owner_kind="Job"}, 45 "workload", "$1", "owner_name", "(.*)" 46 ) 47 ) 48 labels: 49 workload_type: job 50 record: namespace_workload_pod:kube_pod_owner:relabel