如何在Docker容器中运行psutil?

我正在尝试从我的python应用程序监视我的docker容器的CPU和内存。 我打算使用psutil来完成这项工作。 我已经读过其他论坛上的/proc可以在psutil中进行更改。

 import psutil psutil.PROCFS_PATH = 'proc/self' psutil.cpu_percent() 

这给了我以下错误:

  File "app.py", line 22, in <module> web-vote-app_1 | r = psutil.cpu_percent() web-vote-app_1 | File "/usr/local/lib/python2.7/site-packages/psutil /__init__.py", line 1773, in cpu_percent web-vote-app_1 | _last_cpu_times = cpu_times() web-vote-app_1 | File "/usr/local/lib/python2.7/site-packages/psutil/__init__.py", line 1645, in cpu_times web-vote-app_1 | return _psplatform.cpu_times() web-vote-app_1 | File "/usr/local/lib/python2.7/site-packages/psutil/_pslinux.py", line 544, in cpu_times web-vote-app_1 | fields = [float(x) / CLOCK_TICKS for x in fields] web-vote-app_1 | ValueError: could not convert string to float: (python) web-result_1 | * Running on http://0.0.0.0:5002/ (Press CTRL+C to quit) swarmmicroservicedemov1_web-vote-app_1 exited with code 1 

任何人都可以告诉我,如果可能得到关于容器,而不是主机相同的信息,如果是这样的话。 怎么样 ? 谢谢

你为什么要改变默认的/proc/path?

这只是工作:

 import psutil psutil.cpu_percent(interval=1) 

每个容器已经正确安装了/ proc信息。 所以psutil可以在没有额外安装的情况下工作。


编辑:看到它的工作

Dockerfile:

 FROM python:2 RUN pip install psutil CMD sh -c 'while true; do python -c "import psutil; print psutil.cpu_percent()"; sleep 0.5; done' 

构build并运行:

 docker build . -t psutil-test && docker run -it psutil-test Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM python:2 ---> 2e9467da064d Step 2/3 : RUN pip install psutil ---> Using cache ---> bdb07a51b12b Step 3/3 : CMD sh -c 'while true; do python -c "import psutil; print psutil.cpu_percent()"; sleep 0.5; done' ---> Using cache ---> 028f88f8844c Successfully built 028f88f8844c 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0