【云原生】python获取docker stats 容器cpu使用率

这篇文章展示了如何使用Python和DockerAPI来获取并计算Docker容器的CPU使用率。代码通过比较两次采样的CPU使用数据来计算利用率,并且提到了内存、网络IO等其他资源的统计方法类似。此外,还提供了获取Docker客户端及容器列表的方法。
摘要由CSDN通过智能技术生成

以下只展示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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别出BUG求求了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值