Java应用系统监控方法简介

1. tsar

阿里巴巴开源的实时系统监控工具。其内部的sunfire有部分指标就是基于该工具每分钟采集一次来获取的。
github

监控项及数据来源一览

摘自tsar/info.md

监控项 来源 细分项
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

3. 企业级集群监控 —— open-falcon

中文文档

你可能感兴趣的:(Java应用系统监控方法简介)