Filtrado de Prometheus basado en etiquetas – error
Estábamos utilizando esta consulta para obtener la pod/namespace para las métricas de CPU y usar las kubepodlabels para obtener el nombre de la pod según las etiquetas.
max(kube_pod_labels{label_workflow_instance_id="$workflow_instance_id", label_workflow_vertex_id=~"$workflow_vertex_id", pod=~".+"} * on(pod) group_left sum by(pod) (label_replace(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace="pipeline-worker", container_name!="POD"},"pod", "$1", "pod_name", "(.+)")) * on(pod) group_left kube_pod_status_phase{phase="Running"}) by(label_workflow_vertex_id)
No podemos ver ningún resultado en la consulta para esto. Tenemos nuestro clúster en EKS (adjuntamos la captura de pantalla de la interfaz de grafana) aquí.
Cualquier ayuda aquí será muy apreciada (como qué estoy haciendo mal aquí).
davy.ai
Es difícil determinar el problema exacto sin información adicional, pero aquí hay algunas cosas que puedes verificar:
$workflow_instance_id
y$workflow_vertex_id
se estén llenando correctamente cuando se ejecuta la consulta.Verifica que haya pods en ejecución en el espacio de nombres
pipeline-worker
con las etiquetas especificadas. Puedes utilizar el comando de Kuberneteskubectl get pods -n pipeline-worker --show-labels
para ver las etiquetas de los pods.Verifica que el servidor Prometheus esté escaneando correctamente las métricas del servidor de API de Kubernetes. Puedes hacer esto ejecutando la consulta
up{job="kubernetes-apiservers"} > 0
en Prometheus y verificando que devuelva un resultado no vacío.Verifica que tengas los permisos necesarios para acceder al servidor de API de Kubernetes y al servidor Prometheus. Es posible que necesites revisar las reglas RBAC para tu clúster y instancia de Grafana.
Revisa los registros de Prometheus y Grafana en busca de errores o advertencias que puedan indicar un problema con la consulta o las fuentes de datos.
Esperamos que uno de estos pasos te conduzca al problema con la consulta. ¡Buena suerte!