美文网首页
python获取docker stats 容器cpu使用率202

python获取docker stats 容器cpu使用率202

作者: 夏树的宝马 | 来源:发表于2022-09-02 16:01 被阅读0次

    以下只展示cpu的获取,其他的类似内存网络io,同理可以通过解析

    import docker
    import json
    # 地址 也接受tcp的
    base_url="unix://var/run/docker.sock"
    
    
    def get_cpu_pre(docker_stats):
        cpuDelta = docker_stats.get("cpu_stats").get("cpu_usage").get("total_usage") - docker_stats.get("precpu_stats").get(
            "cpu_usage").get("total_usage")
        print(cpuDelta)
    
        systemDelta = docker_stats.get("cpu_stats").get("system_cpu_usage") - docker_stats.get("precpu_stats").get(
            "system_cpu_usage")
        print(systemDelta)
        result = cpuDelta / systemDelta *len(docker_stats.get("cpu_stats").get("cpu_usage").get("percpu_usage"))* 100
        print("cpu % =",result)
    
    def bx():
        client=docker.from_env(base_url=base_url)
        result=client.containers.list()
        print(result)
    
    def get_client():
        client=docker.DockerClient(base_url=base_url)
        result=client.containers.list()
    
        # print(result)
        # for item in result:
        #     # print(dir(item))
        #     print(item.stats(stream=False,decode=True))
    # 容器id 测试时自己写的
        result=client.containers.get("9109ff7aa11b")
        for i in result.stats(decode=True):
            # print(i)
            print(type(i))
            try:
                get_cpu_pre(i)
            except:
                print("失败一次")
                pass
            # print(i)
            # get_cpu_pre(json.loads(i))
    
    
    get_client()
    
    

    相关文章

      网友评论

          本文标题:python获取docker stats 容器cpu使用率202

          本文链接:https://www.haomeiwen.com/subject/yifynrtx.html