collectd的cpu插件并不支持查看单个应用cpu使用率的情况,因为有python插件,便可以编写脚本来进行监控,在此通过top命令获取应用的CPU使用率,因为单个应用有多个pid,所以在此将其排序后,使应用名称相同的cpu使用率相加。此代码片段列表,元组,字典相互转换较多。
def get_stats():
line_split=()
subprocess.Popen("top -b -n 1 | grep -E 'mysql|rcuob' | awk '{print $12,$9}' > /root/cpu_info" ,shell=True)
with open('/root/cpu_info', 'r') as f:
lines = f.readlines()
for line in lines:
lines_split = line.split()