#kubernetes #prometheus #cadvisor #promql
#kubernetes #prometheus #cadvisor #promql
Вопрос:
У нас есть метрика container_memory_rss
из cadvisor и метрика kube_pod_container_resource_requests_memory_bytes
из самого Kubernetes.
Возможно ли объединить показатели друг с другом, чтобы мы могли напрямую сравнить соотношение обоих показателей? Более конкретно, я хотел бы в основном «объединить» следующие показатели:
sum(kube_pod_container_resource_requests_memory_bytes) by (pod, namespace)
sum(container_memory_rss) by (container_label_io_kubernetes_pod_name, container_label_io_kubernetes_pod_namespace)
‘Join’ будет относиться к имени модуля и пространству имен.
Может ли PromQL сделать это, учитывая, что названия меток различаются?
Ответ №1:
Вы можете использовать функцию label_replace для изменения меток на одной стороне выражения таким образом, чтобы они совпадали:
sum by (pod_name, namespace) (container_memory_rss)
/
sum by (pod_name, namespace) (
label_replace(
kube_pod_container_resource_requests_memory_bytes,
"pod_name", "$1", "pod", "(.*)"
)
)