代码里默认cadvisor采集间隔为为 1s(1,000,000,000 nanoseconds)
Falcon中使用率都乘了100, 所以这里是1,000,000,000/100 = 10000000
|
if err := pushCount("cpu.busy", cpuuage1, cpuuage2, `{"total":`, `,"per_cpu_usage":`, countNum, timestamp, tags, containerId, endpoint, 10000000*float64(cpuNum)); err != nil { |
|
return err |
|
} |
|
|
|
if err := pushCount("cpu.user", cpuuage1, cpuuage2, `"user":`, `,"sy`, countNum, timestamp, tags, containerId, endpoint, 10000000*float64(cpuNum)); err != nil { |
|
return err |
|
} |
|
|
|
if err := pushCount("cpu.system", cpuuage1, cpuuage2, `"system":`, `},`, countNum, timestamp, tags, containerId, endpoint, 10000000*float64(cpuNum)); err != nil { |
|
return err |
|
} |
cadvisor中计算方式: https://github.com/google/cadvisor/blob/76538e77a5cbec2f55376dec9836ecfd7cd5dd8a/pages/assets/js/containers.js#L215-L233
- 实际情况中接口http://localhost:8080/api/v1.2/docker 获取到的数据并不是严格的1s, 并且依赖cadvisor 运行时参数
--housekeeping_interval默认为1s. 虽然可能没太大的影响, 但在能获取到时间戳的情况下,这样做实在不是一个科学的方式
- 关于
cpuNum, cpu使用率是否要平均到每个core上有争议.
代码里默认cadvisor采集间隔为为 1s(1,000,000,000 nanoseconds)
Falcon中使用率都乘了100, 所以这里是1,000,000,000/100 = 10000000
micadvisor_open/pushDatas.go
Lines 159 to 169 in 443894c
cadvisor中计算方式: https://github.com/google/cadvisor/blob/76538e77a5cbec2f55376dec9836ecfd7cd5dd8a/pages/assets/js/containers.js#L215-L233
--housekeeping_interval默认为1s. 虽然可能没太大的影响, 但在能获取到时间戳的情况下,这样做实在不是一个科学的方式cpuNum, cpu使用率是否要平均到每个core上有争议.docker stat: update stats.go,Update "docker stats " calculations moby/moby#13627https://github.com/google/cadvisor/blob/76538e77a5cbec2f55376dec9836ecfd7cd5dd8a/pages/assets/js/containers.js#L215-L233