我正在使用以下api从kubernetes节点收集度量:
kubectl get --raw /api/v1/nodes/$1/proxy/metrics/cadvisor
它以普罗米修斯格式返回度量。所以,我把这个发送到logstash并进行一些转换,看:
filter{
mutate {
remove_field => [ "host" ]
}
ruby{
code => "
if (event.get('[container_cpu_usage_seconds_total_container_cpu_id_image_name_namespace_pod][container_cpu_usage_seconds_total]')!=nil)
event.set('container_cpu_usage_percent', (event.get('[container_cpu_usage_seconds_total_container_cpu_id_image_name_namespace_pod][container_cpu_usage_seconds_total]') / (event.get('machine_cpu_cores') * 100)).ceil(2))
end
"
}
}
如您所见,我尝试使用以下公式计算cpu使用率百分比:
container_cpu_usage_seconds_total/ (machine_cpu_cores*100)
试图复制与普罗米修斯相同的公式:
rate(container_cpu_user_seconds_total[30s]) * 100
但我不知道我做的是否正确。记住,我没有普罗米修斯来使用rate(),只是logstash。
暂无答案!
目前还没有任何答案,快来回答吧!