Exemplo n.º 1
0
 def check_segment(self):
     """检查数据库segment节点是否起着"""
     data = self.db_fun_query(
         """select status from gp_segment_configuration where content!='-1' and role='p';""",
         """select * from gp_segment_configuration where content!='-1' and role='p';"""
     )
     api.urlPost(data)
Exemplo n.º 2
0
    def check_overtime_sql(self):
        """检查超时sql,返回超时SQL数量"""
        data = self.db_fun_query(
            """SELECT count(1) FROM pg_stat_activity WHERE current_query != '<IDLE>' AND
current_query NOT ILIKE '%pg_stat_activity%' AND age(clock_timestamp(),query_start)>= '2 hours'::interval;""",
            """SELECT procpid,query_start,age(clock_timestamp(),query_start),usename,current_query FROM pg_stat_activity
WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%' AND age(clock_timestamp(),query_start)
>= '2 hours'::interval ORDER BY query_start desc;""")
        api.urlPost(data)
Exemplo n.º 3
0
 def check_CPU(self):
     """检查CPU"""
     ssh = ssh_server(self.host_obj)
     query_result = fun_query(
         ssh, """vmstat|awk 'NR==3 {print ($13+$14)/100}'""", """vmstat""")
     data = api.format_json(self.project_nick, self.host_obj.host_nick,
                            None, self.service_dict['m_type'],
                            self.service_dict['m_dim'], query_result[0],
                            query_result[1], query_result[2])
     api.urlPost(data)
Exemplo n.º 4
0
 def check_master(self):
     """
     检查数据库MASTER节点是否起着
     1. content='-1' 代表master节点,否则为segment节点
     2. role='p' 代表当前角色为primary
     """
     data = self.db_fun_query(
         """select status from gp_segment_configuration where content='-1' and role='p';""",
         """select * from gp_segment_configuration where content='-1' and role='p';"""
     )
     api.urlPost(data)
Exemplo n.º 5
0
 def check_process(self):
     """检查newbi进程"""
     ssh = ssh_server(self.host_obj)
     query_result = fun_query(
         ssh, """ps -ef | grep jetty | grep -v "grep" | wc -l""",
         """ps -ef | grep jetty | grep -v 'grep'""")
     data = api.format_json(self.project_nick, self.host_obj.host_nick,
                            None, self.service_dict['m_type'],
                            self.service_dict['m_dim'], query_result[0],
                            query_result[1], query_result[2])
     api.urlPost(data)
Exemplo n.º 6
0
 def check_memory(self):
     """检查MEMORY"""
     ssh = ssh_server(self.host_obj)
     query_result = fun_query(ssh,
                              """vmstat|awk 'NR==3 {print $4/1024"MB"}'""",
                              """vmstat""")
     data = api.format_json(self.project_nick, self.host_obj.host_nick,
                            None, self.service_dict['m_type'],
                            self.service_dict['m_dim'], query_result[0],
                            query_result[1], query_result[2])
     api.urlPost(data)
Exemplo n.º 7
0
 def check_disk(self):
     """检查DISK"""
     ssh = ssh_server(self.host_obj)
     query_result = fun_query(
         ssh,
         """iostat -dx|awk 'BEGIN{max=0} {if($14+0>max+0) max=$14} END{print max/100}'""",
         """iostat""")
     data = api.format_json(self.project_nick, self.host_obj.host_nick,
                            None, self.service_dict['m_type'],
                            self.service_dict['m_dim'], query_result[0],
                            query_result[1], query_result[2])
     api.urlPost(data)
Exemplo n.º 8
0
 def check_IOPS(self):
     """检查IOPS"""
     ssh = ssh_server(self.host_obj)
     # 最大的一个iops
     query_result = fun_query(
         ssh,
         """iostat |awk 'BEGIN{max=0} NR>6 {if($2+0>max+0) max=$2} END{print max}'""",
         """iostat""")
     data = api.format_json(self.project_nick, self.host_obj.host_nick,
                            None, self.service_dict['m_type'],
                            self.service_dict['m_dim'], query_result[0],
                            query_result[1], query_result[2])
     api.urlPost(data)
Exemplo n.º 9
0
 def check_process(self):
     """
     检查KETTLE进程是否存在
     1. 创建ssh 对象
     2. 在目标服务器上执行命令
     3. post数据
     :return:
     """
     # 1. 生成ssh对象
     ssh = ssh_server(self.host_obj)
     # 2. 查询数据
     query_result = fun_query(
         ssh, """ps -ef | grep spoon.sh | grep -v 'grep'|wc -l""",
         """ps -ef | grep spoon.sh | grep -v 'grep'""")
     # 3. 格式化数据
     data = api.format_json(self.project_nick, self.host_obj.host_nick,
                            None, self.service_dict['m_type'],
                            self.service_dict['m_dim'], query_result[0],
                            query_result[1], query_result[2])
     # 4. 向接口中post数据
     api.urlPost(data)
Exemplo n.º 10
0
 def check_connections(self):
     """检查数据库连接数"""
     data = self.db_fun_query("""select count(1) from pg_stat_activity;""",
                              """select count(1) from pg_stat_activity;""")
     api.urlPost(data)