1

我在 kubernetes 中部署 prometheus2.0,然后我需要知道每个 pod 的内存使用情况。我找到了两个指标:container_memory_usage_byteskube_pod_container_resource_limits_memory_bytessum(container_memory_usage_bytes) by (pod_name)显示 pods memory used bytes 已经消耗,sum(kube_pod_container_resource_limits_memory_bytes) by (pod)显示 pods 内存限制是 kubernetes 配置的,我只是为了计算这两个值然后我可以获得所有 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 来使用这两个指标?

4

1 回答 1

1

你可以通过几种方法来处理这个问题。最好使用 cadvisor 的 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
于 2018-05-14T08:56:34.887 回答