Comments (13)
I am running cgroupv1 but I think it's not related?
from kepler.
I think this might be the way to get containerd ID (see 6bdfe6263b2e1 below in 2 output)
root@kind-control-plane:/proc/1959# cat cmdline
/usr/local/bin/containerd-shim-runc-v2-namespacek8s.io-id6bdfe6263b2e1e5e96192d15f365216830ba3f28b982e0bccec61b41beb7f831-address/run/containerd/containerd.sockroot@kind-control-plane:/proc/1959# crictl ps | grep 6bdfe6263b2e1e
root@kind-control-plane:/proc/1959# crictl ps | grep 6bdfe6263b2
db90aabe3ba00 295c7be079025 About an hour ago Running nginx 0 6bdfe6263b2e1 nginx-deployment-6595874d85-h7csj
from kepler.
from kepler.
I guess not .. both use containerd/docker below
RHEL
[root@ji4 ~]# cat /proc/28069/cgroup
11:blkio:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/system.slice/containerd.service
10:cpuset:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope
9:memory:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/system.slice/containerd.service
8:perf_event:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope
7:devices:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/system.slice/containerd.service
6:hugetlb:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope
5:cpuacct,cpu:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/system.slice/containerd.service
4:net_prio,net_cls:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope
3:freezer:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope
2:pids:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/system.slice/containerd.service
1:name=systemd:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/system.slice/containerd.service
Ubuntu
# cat /proc/15945/cgroup
0::/system.slice/containerd.service
root@jitest39:~# cat /proc/15945/cmdline
/usr/bin/containerd-shim-runc-v2-namespacemoby-id3f3488e110e93031b1528ecfb2bc5332eae24cf8e578b38e660755c894768196-address/run/containerd/containerd.sock
from kepler.
Is the container in a pod? The path you shared has no pod information.
I'm asking this because most of the logic was built for a path that contains the pod information...
from kepler.
here is my containerd config
# uname -a
Linux hchen-KVM 5.15.0-46-generic #49~20.04.1-Ubuntu SMP Thu Aug 4 19:15:44 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# crictl info |jq '.config.containerd.runtimes'
{
"runc": {
"runtimeType": "io.containerd.runc.v2",
"runtimeEngine": "",
"PodAnnotations": null,
"ContainerAnnotations": null,
"runtimeRoot": "",
"options": {
"BinaryName": "",
"CriuImagePath": "",
"CriuPath": "",
"CriuWorkPath": "",
"IoGid": 0,
"IoUid": 0,
"NoNewKeyring": false,
"NoPivotRoot": false,
"Root": "",
"ShimCgroup": "",
"SystemdCgroup": false
},
"privileged_without_host_devices": false,
"baseRuntimeSpec": ""
}
}
This is the cgroup file of the nginx container
# crictl inspect da30281270470 |jq '.info.pid'|xargs -I {} cat /proc/{}/cgroup
13:freezer:/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
12:devices:/system.slice/containerd.service/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
11:cpuset:/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
10:misc:/
9:pids:/system.slice/containerd.service/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
8:memory:/system.slice/containerd.service/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
7:cpu,cpuacct:/system.slice/containerd.service/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
6:net_cls,net_prio:/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
5:rdma:/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
4:blkio:/system.slice/containerd.service/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
3:hugetlb:/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
2:perf_event:/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
1:name=systemd:/system.slice/containerd.service/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
0::/kubepods-burstable-podc63842bc_1aee_4496_b0e4_7d94d882d124.slice:cri-containerd:da302812704700d9834690640e4cac1e696607573d081b89410f0c41d6a20e84
from kepler.
ok, I used docker at above output , seems I should use k8s ,then I used such at Ubuntu host
root@kind-control-plane:/# crictl info |jq '.config.containerd.runtimes'
{
"runc": {
"runtimeType": "io.containerd.runc.v2",
"runtimePath": "",
"runtimeEngine": "",
"PodAnnotations": null,
"ContainerAnnotations": null,
"runtimeRoot": "",
"options": {
"SystemdCgroup": true
},
"privileged_without_host_devices": false,
"baseRuntimeSpec": "/etc/containerd/cri-base.json",
"cniConfDir": "",
"cniMaxConfNum": 0
},
"test-handler": {
"runtimeType": "io.containerd.runc.v2",
"runtimePath": "",
"runtimeEngine": "",
"PodAnnotations": null,
"ContainerAnnotations": null,
"runtimeRoot": "",
"options": {
"SystemdCgroup": true
},
"privileged_without_host_devices": false,
"baseRuntimeSpec": "/etc/containerd/cri-base.json",
"cniConfDir": "",
"cniMaxConfNum": 0
}
}
root@kind-control-plane:/# crictl inspect db90aabe3ba00 |jq '.info.pid'|xargs -I {} cat /proc/{}/cgroup
0::/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-besteffort.slice/kubelet-kubepods-besteffort-pod36f20d9d_cbc1_4ebd_b111_536eaa6a332e.slice/cri-containerd-db90aabe3ba00bab92a9bd3f0b4a9face4601651c91d28c02a953a8c81ce2cc4.scope
# crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD
db90aabe3ba00 295c7be079025 3 days ago Running nginx 0 6bdfe6263b2e1 nginx-deployment-6595874d85-h7csj
677824b3d4028 295c7be079025 3 days ago Running nginx 0 caf965c196f45 nginx-deployment-6595874d85-wdtm6
c9ccfaeab8d2c 4c1e997385b8f 3 days ago Running local-path-provisioner 0 00a0f1acb89cc local-path-provisioner-9cd9bd544-whx5v
a0abc2de4709e a4ca41631cc7a 3 days ago Running coredns 0 1707c426eaf31 coredns-6d4b75cb6d-5kzhk
3cb62afd253ed a4ca41631cc7a 3 days ago Running coredns 0 5fc632cd15576 coredns-6d4b75cb6d-8sfzh
dc39c4066a25e 6fb66cd78abfe 3 days ago Running kindnet-cni 0 2f1bb833036cf kindnet-2g7jj
10f1959548023 6960c0e47829d 3 days ago Running kube-proxy 0 5ce6ee6f8d893 kube-proxy-7qcfd
9449d49b96f8f aebe758cef4cd 3 days ago Running etcd 0 ec5f3b762fdb5 etcd-kind-control-plane
59b734a871285 9ef4b1de3be49 3 days ago Running kube-apiserver 0 d7388bcc51046 kube-apiserver-kind-control-plane
9cd14730bbfdc efa8a439d1460 3 days ago Running kube-controller-manager 0 2617c809f1f39 kube-controller-manager-kind-control-plane
eeab955c1cbf7 41f5241e3396e 3 days ago Running kube-scheduler 0 5f201df358cd7 kube-scheduler-kind-control-plane
from kepler.
so looks like it should support by existing code, will add some UT to prove
from kepler.
I got this from RHEL , same to yours @rootfs ,so we need support both (maybe more like SLES but can be done later)
# crictl inspect ecbcea5cd29af |jq '.info.pid'|xargs -I {} cat /proc/{}/cgroup
11:blkio:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
10:cpuset:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
9:memory:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
8:perf_event:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
7:devices:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
6:hugetlb:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
5:cpuacct,cpu:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
4:net_prio,net_cls:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
3:freezer:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
2:pids:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
1:name=systemd:/system.slice/docker-c27755f0fa91e81ababc85ef05cb227227a4228da2e5cb2f4999299c89d4ac69.scope/kubelet.slice/kubelet-kubepods.slice/kubelet-kubepods-burstable.slice/kubelet-kubepods-burstable-podd8992f589d8dd12c4342376ccb459375.slice/cri-containerd-ecbcea5cd29afb25ba519715e827cda9e66cd0a914207f49ce0a292a6aa84d66.scope
from kepler.
@jichenjc it you want to give it a try? would you also like to write a unit test too? That'll make sure the regex works for all.
from kepler.
yes, I am working this now
from kepler.
@jichenjc can we close this issue?
from kepler.
thanks for the reminder @marceloamaral
from kepler.
Related Issues (20)
- CI enhancement, add logic when we need to test build logic HOT 5
- consume our SBOM files
- Support to recognize the VM that is not launched by Libvirt HOT 8
- idle power calculations for container metrics don't look right HOT 6
- GPU NVIDIA H100 PCIe not supported HOT 16
- unmatched exported metric name and value
- Improve GPU power attribution HOT 4
- No VM detected in the Kepler exporter HOT 7
- rpmautospec is missing HOT 2
- Kepler release-0.7.3 reporting higher kepler_container_joules_total values on BM HOT 1
- Support multiple GPUs HOT 2
- Investigate how to use dcgm embedded mode HOT 1
- Integrate curvefit function into local estimator
- Github rate limit issue HOT 1
- wrong kepler version info printed in logs HOT 1
- Metric kepler_container_bpf_net_tx_irq_total showing as zero HOT 2
- [CI] build image parameter and metric parameters HOT 1
- Kernel consumption too high HOT 23
- Integrate Kepler with Graphite ? HOT 5
- In `GetGPUPower()`, Kepler should use the per GPU Power consumption to calculate the process's how much power consumed by the process HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kepler.