python抓取jenkins slave总数、online数、offline数写道mysql并展现到grafana:
mysql -u root -p‘xxxx‘
create database jenkins default character set utf8;
create table slaves(time datetime,online float,offline float,total float);
grant all on ming.* to [email protected]‘10.0.0.2‘ identified by ‘xxxx‘;
exit
apt-get install python-jenkins
apt-get install python-pymysql
vi aa.py
#!/usr/bin/python
#coding:utf-8
import jenkins
import collections
import pymysql
import time
server = jenkins.Jenkins(‘http://10.0.0.2:8080/jenkins‘, username="ming", password="xxxxx")
nodes = server.get_nodes()
To = len(nodes)
on = collections.Counter(str(nodes))[‘F‘]
off = collections.Counter(str(nodes))[‘T‘]
ti = time.localtime()
conn = pymysql.connect(host="10.0.0.3",port=3306,database=‘jenkins‘,user=‘ming‘,password=‘xxxxx‘,charset=‘utf8‘)
cur = conn.cursor()
cur.execute("insert into slaves (time,online,offline,total) values (%s,%s,%s,%s)", [ti,on,off,To])
conn.commit()
conn.close();
print (‘Data has been inserted‘)
:wq
python aa.py
grafa:
select UNIX_TIMESTAMP(time) as time_sec, total-1 as total from slaves group by time_sec;
select UNIX_TIMESTAMP(time) as time_sec, online-1 as online from slaves group by time_sec;
select UNIX_TIMESTAMP(time) as time_sec, offline as offline from slaves group by time_sec;
原文地址:http://blog.51cto.com/yangzhiming/2316740