docker容器性能監(jiān)控的選擇

寫在前面,目前這里僅僅完成了容器性能的監(jiān)控;如CPU,MEM,DISK,NET; 運(yùn)行在容器的中應(yīng)用的監(jiān)控還未涉及!

Docker監(jiān)控?cái)?shù)據(jù)來源

  • docker stats api

    GET /containers/container_name/stats HTTP/1.1
    
  • cadvisor
    其實(shí)是docker stats api的封裝,同時(shí)提供了web頁面查看,通過cadvisor獲取stats的API

    GET /api/v1.2/docker/<container_name>
    

監(jiān)控框架

不同的監(jiān)控框架都會(huì)有各自要求的數(shù)據(jù)結(jié)構(gòu),在數(shù)據(jù)采集完成后,需要轉(zhuǎn)換成各自要求的數(shù)據(jù)結(jié)構(gòu);

  • Zabbix

    • 架構(gòu)圖


      image
    • 接受的數(shù)據(jù)格式

      key_name = value的形式,一次只能處理一個(gè)

    • Docker容器數(shù)據(jù)的采集方式

      通過docker stats的API采集,自己處理數(shù)據(jù)
      GET /containers/container_name/stats HTTP/1.1

  • Prometheus

    • 架構(gòu)圖

      image
      image
    • 接受的數(shù)據(jù)格式

      <metric name>{<label name>=<label value>, ...}
      
      example:
      api_http_requests_total{method="POST", handler="/messages"}
      
    • Docker容器數(shù)據(jù)的采集方式
      CAdvisor暴露了一個(gè)HTTP接口,且格式為prometheus要求的格式:

      image

  • Open-Falcon
    • 架構(gòu)圖
image
  • 接受數(shù)據(jù)的格式

    {
        "CounterType": "GAUGE", 
        "Endpoint": "open-falcon-test",    #這是一個(gè)特殊的tags,代表主機(jī)名
        "Metric": "redis.keyspace_hit_ratio", 
        "Step": 60, 
        "TAGS": "port=6379", 
        "Timestamp": 1449711164, 
        "Value": 0.72131147540983609
    }
    
  • Docker容器數(shù)據(jù)的采集方式

    基于CAdvisor之上,將docker容器的數(shù)據(jù)轉(zhuǎn)換成了要求的格式,采集指標(biāo)如下:

Counters Notes
cpu.busy cpu使用情況百分比
cpu.user 用戶態(tài)使用的CPU百分比
cpu.system 內(nèi)核態(tài)使用的CPU百分比
cpu.core.busy 每個(gè)cpu的使用情況
mem.memused.percent 內(nèi)存使用百分比
mem.memused 內(nèi)存使用原值
mem.memtotal 內(nèi)存總量
mem.memused.hot 內(nèi)存熱使用情況
disk.io.read_bytes 磁盤io讀字節(jié)數(shù)
disk.io.write_bytes 磁盤io寫字節(jié)數(shù)
net.if.in.bytes 網(wǎng)絡(luò)io流入字節(jié)數(shù)
net.if.in.packets 網(wǎng)絡(luò)io流入包數(shù)
net.if.in.errors 網(wǎng)絡(luò)io流入出錯(cuò)數(shù)
net.if.in.dropped 網(wǎng)絡(luò)io流入丟棄數(shù)
net.if.out.bytes 網(wǎng)絡(luò)io流出字節(jié)數(shù)
net.if.out.packets 網(wǎng)絡(luò)io流出包數(shù)
net.if.out.errors 網(wǎng)絡(luò)io流出出錯(cuò)數(shù)
net.if.out.dropped 網(wǎng)絡(luò)io流出丟棄數(shù)

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容