cAdvisor เป็นโปแกรมที่ไว้ใช้ตรวจสอบการใช้ทรัพยาการณ์ของ Docker และ เครื่อง Host ที่มีการแสดงผลแบบกราฟที่เข้าใจง่ายและสะดวกในการใช้งาน
ติดตั้ง curl ด้วยคำสั่ง
sudo apt-get install curl
ติดตั้ง Docker ด้วยคำสั่ง
curl -sSL https://get.docker.com/ubuntu/ | sudo sh
ติดตั้ง cAdvisor ด้วยคำสั่ง
sudo docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
สร้าง Containers ที่มีการทำงานของ MySQL เพื่อให้เห็นการทำงานของ cAdvisor ได้มากขึ้นด้วยคำสั่ง
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
ไปที่เว็บเบราว์เซอร์เข้าไปที่ http://127.0.0.1:8080 จะพบกับหน้าแรกของ cAdvisor หน้านี้จะไว้ใช้คตรวจสอบการทำงานของเครื่อง Host ที่ได้ทำการลง Docker ดังนี้
Isolation
- Shares : จำนวน Memory (RAM) ที่เครื่อง Host แบ่งให้ Docker ใช้งานมีหน่วยเป็น Megabyte
- Allowed Cores 0 1 : หมายเลขและจำนวน Cores ของ CPU ที่ Docker สามารถใช้งานได้ (ในภาพสามารถใช้งานได้ 2 Cores คือ 0 กับ 1)
- Limit : จำนวน Memory ที่แต่ละ Container สามารถนำไปใช้ได้ ( ในภาพ กำหนดให้ไม่มีจำกัด )
Usage
- Overview : ปริมาณการใช้งาน CPU และ Memory ที่เครื่อง Host ใช้
- CPU
- Total Usage : ปริมาณการใช้งาน CPU ทั้งหมดแสดงผลเป็นกราฟเส้นทุก 10 วินาที
- Usage per Core : ปริมาณการใช้งาน CPU แบ่งแยกแต่ละ Core โดยใช้กราฟเส้นแยกสีแต่ละ Core แตกต่างกัน
- Usage Breakdown : ปริมาณการใช้งาน CPU แบ่งแยกตามการใช้งานของ User และ Kernel
Memory
- Total Usage : ปริมาณการใช้งาน Memory โดยรวม
Filesystem
- Partition : ตำแหน่งและปริมาณการใช้งานพื้นที่เก็บข้อมูลของเครื่อง Host
วิธีการตรวจสอบปริมาณการใช้ทรัพยากรณ์ของแต่ละ Container สามารถตรวจสอบได้โดยไปที่ Docker Containers
จะพบกับรายการ Containers ที่ทำงานอยู่ในหัวข้อ Subcontainers เลือกที่ Container ที่ต้องการตรวจสอบในตัวอย่างเลือก cadvisor
เมื่อเลือกเข้ามาแล้วจะพบกับรายงานผลการใช้งานทรัพยกรณ์ของ Container ซึ่งมีการรายงานผลที่เหมือนกันแต่มีการเพิ่มการรายงานผลดังนี้
Network
- Throughput : ปริมาณการใช้งานข้อมูลบนระบบเครือข่ายทั้งรับ (Rx) และ ส่ง (Tx) ข้อมูลมีหน่วยเป็น byte
- Errors : ปริมาณข้อมูลที่มีความผิดพลาดระหว่างกระบวนการรับและส่งข้อมูล
วิธีการเรียกดูค่าจาก REST API สามารถเรียดูได้จากเว็บเบราว์เซอร์ด้วยการโครงสร้าง URL ดังนี้
http://:/api//
เรียกดูข้อมูลของเครื่อง Host
http://127.0.0.1:8080/api/v1.2/machine
เรียกดูข้อมูลของ Container ทั้งหมด
http://127.0.0.1:8080/api/v1.2/docker/
เรียกดูโดยระบุ Container ที่ต้องการ
http://127.0.0.1:8080/api/v1.2/docker/container_name
โดยทำการเปลี่ยนค่า container_name เป็นชื่อ Container ที่ต้องการเช่น
http://127.0.0.1:8080/api/v1.2/docker/some-mysql