1. tsar
阿里巴巴開源的實時系統監控工具。其內部的sunfire有部分指標就是基於該工具每分鍾采集一次來獲取的。
github
監控項及數據來源一覽
監控項 | 來源 | 細分項 |
---|---|---|
CPU | /proc/stat | user: 表示CPU執行用戶進程的時間,通常期望用戶空間CPU越高越好. |
sys: 表示CPU在內核運行時間,系統CPU占用率高,表明系統某部分存在瓶頸.通常值越低越好. | ||
wait: CPU在等待I/O操作完成所花費的時間.系統部應該花費大量時間來等待I/O操作,否則就說明I/O存在瓶頸. | ||
hirq: 系統處理硬中斷所花費的時間百分比 | ||
sirq: 系統處理軟中斷所花費的時間百分比 | ||
util: CPU總使用的時間百分比 | ||
nice: 系統調整進程優先級所花費的時間百分比 | ||
steal: 被強制等待(involuntary wait)虛擬CPU的時間,此時hypervisor在為另一個虛擬處理器服務 | ||
ncpu: CPU的總個數 | ||
mem | /proc/meminfo | free: 空閑的物理內存的大小 |
used: 已經使用的內存大小 | ||
buff: buff使用的內存大小,buffer is something that has yet to be "written" to disk. | ||
cach: 操作系統會把經常訪問的東西放在cache中加快執行速度,A cache is something that has been "read" from the disk and stored for later use | ||
total: 系統總的內存大小 | ||
util: 內存使用率 | ||
load | /proc/loadavg | load1: 一分鍾的系統平均負載 |
load5: 五分鍾的系統平均負載 | ||
load15:十五分鍾的系統平均負載 | ||
runq: 在采樣時刻,運行隊列的任務的數目,與/proc/stat的procs_running表示相同意思 | ||
plit: 在采樣時刻,系統中活躍的任務的個數(不包括運行已經結束的任務) | ||
traffic | /proc/net/dev | bytin: 入口流量byte/s |
bytout: 出口流量byte/s | ||
pktin: 入口pkt/s | ||
pktout: 出口pkt/s | ||
tcp | /proc/net/snmp | active:主動打開的tcp連接數目 |
pasive:被動打開的tcp連接數目 | ||
iseg: 收到的tcp報文數目 | ||
outseg:發出的tcp報文數目 | ||
EstRes:Number of resets that have occurred at ESTABLISHED | ||
AtmpFa:Number of failed connection attempts | ||
CurrEs:當前狀態為ESTABLISHED的tcp連接數 | ||
retran:系統的重傳率 | ||
udp | /proc/net/snmp | idgm: 收到的udp報文數目 |
odgm: 發送的udp報文數目 | ||
noport:udp協議層接收到目的地址或目的端口不存在的數據包 | ||
idmerr:udp層接收到的無效數據包的個數 | ||
io | /proc/diskstats | 指標較多,略 |
partition | /etc/mtab + statfs | bfree: 分區空閑的字節 |
bused: 分區使用中的字節 | ||
btotl: 分區總的大小 | ||
util: 分區使用率 | ||
ifree: 可用文件結點數 | ||
itotl: 文件結點總數 | ||
iutil: 文件結點使用率 | ||
pcsw | cswch: 進程切換次數 | |
proc: 新建的進程數 | ||
tcpx | /proc/net/netstat /proc/net/snmp | 多個指標,略 |
percpu ncpu | 同cpu模塊 | |
pernic | 同traffic模塊 | |
應用proc | /proc/pid/stat:獲取進程的cpu信息 /proc/pid/status:獲取進程的mem信息 /proc/pid/io:獲取進程的讀寫IO信息 | user: 某個進程用戶態cpu消耗 |
sys: 某個進程系統態cpu消耗 | ||
total:某個進程總的cpu消耗 | ||
mem: 某個進程的內存消耗百分比 | ||
RSS: 某個進程的虛擬內存消耗,這是駐留在物理內存的一部分.它沒有交換到硬盤.它包括代碼,數據和棧 | ||
read: 進程io讀字節 | ||
write:進程的io寫字節 | ||
nginx | nginx采集模塊 |
2. JAVA應用監控 —— metric
注冊監聽點及監控周期,進行被監控指標的輸出。
引用及使用方式:系統監控-Metric