python抓取jenkins slave信息寫道mysql並展現到grafana

python抓取jenkins slave信息寫道mysql並展現到grafana:

注:
包括slave總數、online數、offline數、job排隊數、空閒slave數

mysql -u root -p'xxxx'

create database jenkins default character set utf8;
create table slaves(time datetime,online float,offline float,total float,idle float,Qu 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()
Que = server.get_queue_info()

To = len(nodes)
Qu = len(Que)

on = collections.Counter(str(nodes))['F']

off = collections.Counter(str(nodes))['T']

ti = time.localtime()

e=[]
nodes.remove({'offline': False, 'name': 'master'})
for i in range(len(nodes)-1):
e.append(server.get_node_info(nodes[i]['name'])['idle'])
Id = e.count(True)

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,idle,queue) values (%s,%s,%s,%s,%s,%s)", [ti,on,off,To,Id,Qu])
conn.commit()
conn.close();

print on
print off
print To
print Id
print Qu

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;

SELECT UNIX_TIMESTAMP(time) as time_sec,idle FROM slaves;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章