首页 > 解决方案 > 以纳秒为单位的 Kubernetes CPU

问题描述

我试图解释使用 Telegraf 和 k3s 集群上的 Kubernetes 插件获取的指标。我看到结果是以纳秒为单位报告 CPU,以字节为单位报告内存和磁盘。更重要的是,我想了解如何将 ns 中显示的 CPU 使用率转换为%?
下面是一个这样的示例捕获:

kubernetes_pod_container,container_name=telegraf-ds,host=ah-ifc2,namespace=default,node_name=ah-ifc2,pod_name=telegraf-ds-dxdhz, rootfs_available_bytes=73470144512i,logsfs_available_bytes=0i,logsfs_capacity_bytes=0i,cpu_usage_nanocores=243143i,memory_usage_bytes=0i,memory_working_set_bytes=25997312i,memory_major_page_faults=0i,rootfs_used_bytes=95850790i,logsfs_used_bytes=4096i,cpu_usage_core_nanoseconds=4301919390i,memory_rss_bytes=0i,memory_page_faults=0i,rootfs_capacity_bytes=196569534464i 1616950920000000000

此外,诸如 Chronograf/Grafana 之类的任何可视化工具如何将这些原始数据转换为更可操作的格式,例如cpu%, memory/disk utilization%

谢谢,任何建议都会有所帮助。

标签: kubernetesdevopsprometheusgrafanatelegraf

解决方案


如果您有(纳)秒的总和,您可以查看导数来计算百分比。

例子:

  • 当时00:00:00cpu使用计数器在1,000,000,000ns
  • 当时00:00:10cpu使用计数器在3,000,000,000ns

从这些信息中,我们可以得出结论,在 10 秒和 10 秒之间00:00:0000:00:10该进程使用 cpu 的时间为3,000,000,00 - 1,000,000,000 = 2,000,000,000纳秒。

换句话说,它在 10 秒中使用了 2 秒的 cpu,给了我们 20% 的 cpu 使用率。


推荐阅读