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 aa@'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://www.bubuko.com/infodetail-2846540.html