zoukankan      html  css  js  c++  java
  • Mysql 监控脚本

    cat mysql_status_output.py
    #coding=utf-8
    import jaydebeapi
    import sys
    import pymysql
    import os
    from prometheus_client import Gauge,start_http_server
    import time
    #v_host=os.popen('echo $HOSTNAME')
    #hostname=v_host.read()
    #hstname="".join(hostname)
    #print(hostname.strip())
    class MySQL_Status_Output:
        def __init__(self,host,port,user,password):
            try:
                self.db = pymysql.connect(host=host,port=port,user=user,password=password)
                self.cursor = self.db.cursor()
            except Exception as e:
                print('Wrong')
                print(e)
        def mysql_status_select(self,x):
            try:
                sql='show global status like %s'
                data=x
                self.cursor.execute(sql,data)
                v_result=self.cursor.fetchall()
                return v_result
            except Exception as e:
                print(e)
        def mysql_select_sql(self,sql):
            try:
                self.cursor.execute(sql)
                v_result=self.cursor.fetchall()
                return v_result
            except Exception as e:
                print(e)
        def close(self):
            self.db.close()
    if __name__ == "__main__":
        start_http_server(9400)
        mysqlGauge = Gauge('mysqlGauge','Description of gauge', ['mylabelname'])
        while True:
            try:
                time.sleep(1)
                pro_db = MySQL_Status_Output('127.0.0.1',3306,'dbadmin','dbadmin')
                my_result = pro_db.mysql_select_sql('select MONITOR_NAME from dbadmin.db_monitor_tab where status=1 and MONITOR_NAME is not null')
                for j in range(len(my_result)):
                    monitor_name = "".join(tuple(my_result[j]))
                    v_out = pro_db.mysql_status_select(monitor_name)
                    for i in range(int(len(v_out))):
                        mysqlGauge.labels(mylabelname=v_out[i][0]).set(v_out[i][1])
                pro_db.close()
            except Exception as e:
                print('Is Wrong')
                print(e)
  • 相关阅读:
    Codeforces Round #646 (Div. 2)【B. Subsequence Hate题解】
    关于MyBatis常见映射异常
    SQL语句汇总(终篇)—— 表联接与联接查询【转载自https://www.cnblogs.com/ghost-xyx/p/3813688.html】
    SQL语句汇总(二)——数据修改、数据查询【转载自https://www.cnblogs.com/ghost-xyx/p/3798362.html】
    浮动元素引起的问题和解决办法
    PHP 神奇的sprintf函数
    关于this,作用域,属性,原型链的一个小练习
    for...of 与 for...in 区别
    ES6 Promise对象then方法链式调用
    ES6通过WeakMap解决内存泄漏问题
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10750012.html
Copyright © 2011-2022 走看看