¿Cómo ejecutar psutil dentro de un contenedor acoplable?

Estoy tratando de monitorear la CPU y la memory de mi contenedor docker desde dentro de mi aplicación python. Estoy planeando usar psutil para este trabajo. He leído en otros foros que el /proc se puede cambiar en psutil.

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

Esto me da el siguiente error:

  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 

¿Puede alguien decirme si es posible get la misma información sobre el contenedor en lugar del host, si es así? cómo ? Gracias

¿Por qué /proc/ ruta por defecto /proc/ ?

Esto solo funciona:

 import psutil psutil.cpu_percent(interval=1) 

Cada contenedor ya ha montado su información / proc correctamente. Entonces, psutil puede funcionar sin montar ningún extra.


Editar: verlo funcionando

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' 

Construir y ejecutar:

 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