コード例 #1
0
    def set_cluster_data(self):
        nodes = self.list_nodes()
        pods = self.list_pods()
        namespaces = self.list_namespaces()
        deployments = self.list_deployments()

        cpu_usage = 0
        cpu_total = 0
        mem_total = 0
        mem_usage = 0
        count = len(nodes)
        for n in nodes:
            # 不计算异常node数据
            cpu_total = cpu_total + float(n['cpu'])
            cpu_usage = cpu_usage + float(n['cpu_usage'])
            mem_total = mem_total + float(n['mem'])
            mem_usage = mem_usage + float(n['mem_usage'])
            if n['cpu_usage'] == 0 and n['mem_usage'] == 0:
                count = count - 1
        if count > 0:
            cpu_usage = cpu_usage / count
            mem_usage = mem_usage / count
        sort_restart_pod_list = quick_sort_pods(self.restart_pods)
        error_pods = quick_sort_pods(self.error_pods)

        cluster_data = ClusterData(cluster=self.cluster, token=self.token, pods=pods, nodes=nodes,
                                   namespaces=namespaces, deployments=deployments, cpu_usage=cpu_usage,
                                   cpu_total=cpu_total,
                                   mem_total=mem_total, mem_usage=mem_usage, restart_pods=sort_restart_pod_list,
                                   warn_containers=self.warn_containers, error_loki_containers=[],
                                   error_pods=error_pods)
        return self.redis_cli.set(self.cluster.name, json.dumps(cluster_data.__dict__))
コード例 #2
0
 def push_token_to_redis(self):
     self.token = self.cluster.get_cluster_token()
     cluster_data = ClusterData(cluster=self.cluster, token=self.token, pods=[], nodes=[],
                                namespaces=[], deployments=[], cpu_usage=0, cpu_total=0, mem_total=0,
                                mem_usage=0, restart_pods=[], warn_containers=[], error_loki_containers=[],
                                error_pods=[])
     self.redis_cli.set(self.cluster.name, json.dumps(cluster_data.__dict__))
     self.get_api_instance()
コード例 #3
0
 def set_cluster_data(self):
     nodes = self.list_nodes()
     pods = self.list_pods()
     namespaces = self.list_namespaces()
     deployments = self.list_deployments()
     cluster_data = ClusterData(cluster=self.cluster, token=self.token, pods=pods, nodes=nodes,
                                namespaces=namespaces,deployments=deployments)
     return self.redis_cli.set(self.cluster.name, json.dumps(cluster_data.__dict__))
コード例 #4
0
    def set_cluster_data(self):
        self.check_authorization(2)
        nodes = self.list_nodes()
        pods = self.list_pods()
        namespaces = self.list_namespaces()
        deployments = self.list_deployments()

        cpu_usage = 0
        cpu_total = 0
        mem_total = 0
        mem_usage = 0
        count = len(nodes)
        warn_nodes = []
        for n in nodes:
            # 不计算异常node数据
            cpu_total = cpu_total + float(n['cpu'])
            cpu_usage = cpu_usage + float(n['cpu_usage'])
            mem_total = mem_total + float(n['mem'])
            mem_usage = mem_usage + float(n['mem_usage'])
            if float(n['cpu_usage']) == 0 and float(n['mem_usage']) == 0:
                count = count - 1
            elif float(n['cpu_usage']) > 0.8 or float(n['mem_usage']) > 0.8:
                warn_nodes.append(n)
        if count > 0:
            cpu_usage = cpu_usage / count
            mem_usage = mem_usage / count
        if len(warn_nodes) > 0:
            message_client = MessageClient()
            message = self.get_usage_message(warn_nodes)
            message_client.insert_message(message)

        sort_restart_pod_list = quick_sort_pods(self.restart_pods)
        error_pods = quick_sort_pods(self.error_pods)

        cluster_data = ClusterData(cluster=self.cluster,
                                   token=self.token,
                                   pods=pods,
                                   nodes=nodes,
                                   namespaces=namespaces,
                                   deployments=deployments,
                                   cpu_usage=cpu_usage,
                                   cpu_total=cpu_total,
                                   mem_total=mem_total,
                                   mem_usage=mem_usage,
                                   restart_pods=sort_restart_pod_list,
                                   warn_containers=self.warn_containers,
                                   error_loki_containers=[],
                                   error_pods=error_pods)
        return self.redis_cli.set(self.cluster.name,
                                  json.dumps(cluster_data.__dict__))