我在kubernetes中部署了prometheus2.0,然后我需要了解每个pod的内存使用情况。 我找到两个指标: container_memory_usage_bytes 和 kube_pod_container_resource_limits_memory_bytes , sum(container_memory_usage_bytes)by(pod_name)显示pod已使用的内存已用字节数, sum(kube_pod_container_resource_limits_memory_bytes)by(pod)显示由kubernetes配置的pods内存限制,我只是计算这两个值然后我可以获得所有pod内存使用情况。
但是这两个指标显示了不同的矢量名称,见下文
sum(kube_pod_container_resource_limits_memory_bytes) by (pod)
Element Value
{pod="calico-node-lwmk4"} 536870912
{pod="security-1-0-1857679549-cbg5m"} 4294967296
{pod="msi-joomla-1-0-2319985720-kvjlg"} 536870912
sum(container_memory_usage_bytes) By (pod_name)
Element Value
{pod_name="calico-node-lwmk4"} 90996736
{pod_name="security-1-0-1857679549-cbg5m"} 627601408
{pod_name="msi-joomla-1-0-2319985720-kvjlg"} 59744665
如何通过使用PromQL来使用这两个指标?
答案 0 :(得分:1)
您可以通过以下几种方式处理。最好的是使用metric_relabel_configs(因为cadvisor不遵循命名约定):
metric_relabel_configs:
- source_labels: [pod_name] # Copy pod_name to pod
target_label: pod
- replacement: '' # Remove pod_name label by setting it to empty
target_label: pod_name