Visión general del marco de supervisión de Milvus
Este tema explica cómo Milvus utiliza Prometheus para supervisar las métricas y Grafana para visualizar las métricas y crear alertas.
Prometheus en Milvus
Prometheus es un conjunto de herramientas de supervisión y alerta de código abierto para implementaciones de Kubernetes. Recopila y almacena métricas como datos de series temporales. Esto significa que las métricas se almacenan con marcas de tiempo cuando se registran, junto con pares clave-valor opcionales denominados etiquetas.
Actualmente Milvus utiliza los siguientes componentes de Prometheus:
- Prometheus endpoint para extraer datos de endpoints establecidos por exportadores.
- Prometheus operator para gestionar eficazmente las instancias de supervisión de Prometheus.
- Kube-prometheus para proporcionar una monitorización de clústeres Kubernetes de extremo a extremo fácil de operar.
Nombres de métricas
Un nombre de métrica válido en Prometheus contiene tres elementos: espacio de nombres, subsistema y nombre. Estos tres elementos están conectados con "_".
El espacio de nombres de las métricas de Milvus supervisadas por Prometheus es "milvus". Dependiendo del rol al que pertenezca una métrica, su subsistema debe ser uno de los ocho roles siguientes: "rootcoord", "proxy", "querycoord", "querynode", "indexcoord", "indexnode", "datacoord", "datanode".
Por ejemplo, la métrica Milvus que calcula el número total de vectores consultados se denomina milvus_proxy_search_vectors_count
.
Tipos de métricas
Prometheus admite cuatro tipos de métricas:
- Contador: un tipo de métrica acumulativa cuyo valor solo puede aumentar o ponerse a cero al reiniciarse.
- Gauge: un tipo de métrica cuyo valor puede subir o bajar.
- Histograma: un tipo de métrica que se cuenta en función de cubos configurables. Un ejemplo común es la duración de la solicitud.
- Resumen: un tipo de métrica similar al histograma que calcula cuantiles configurables sobre una ventana de tiempo deslizante.
Etiquetas de métricas
Prometheus diferencia muestras con el mismo nombre de métrica etiquetándolas. Una etiqueta es un atributo determinado de una métrica. Las métricas con el mismo nombre deben tener el mismo valor para el campo variable_labels
. La siguiente tabla enumera los nombres y significados de las etiquetas comunes de las métricas de Milvus.
Nombre de la etiqueta | Definición | Valores |
---|---|---|
"node_id" | La identidad única de un rol. | Un ID único global generado por milvus. |
"status" | El estado de una operación o solicitud procesada. | "abandono", "éxito" o "fallo". |
"tipo_consulta" | El tipo de una solicitud de lectura. | "search" o "query". |
"msg_type" | El tipo de mensajes. | "insert", "delete", "search" o "query". |
"segment_state" | El estado de un segmento. | "Sealed", "Growing", "Flushed", "Flushing", "Dropped" o "Importing". |
"cache_state" | Estado de un objeto almacenado en caché. | "Acierto" o "fallo". |
"cache_name" | El nombre de un objeto almacenado en caché. Esta etiqueta se utiliza junto con la etiqueta "cache_state". | Por ejemplo, "CollectionID", "Schema", etc. |
"nombre_canal" | Temas físicos en el almacenamiento de mensajes (Pulsar o Kafka). | Por ejemplo, "by-dev-rootcoord-dml_0", "by-dev-rootcoord-dml_255", etc. |
"nombre_función" | El nombre de una función que gestiona determinadas peticiones. | Por ejemplo, "CreateCollection", "CreatePartition", "CreateIndex", etc. |
"nombre_usuario" | El nombre de usuario utilizado para la autenticación. | Un nombre de usuario de su preferencia. |
"estado_tarea_índice" | El estado de una tarea de índice en metaalmacenamiento. | "no emitida", "en curso", "fallida", "finalizada" o "reciclada". |
Grafana en Milvus
Grafana es una pila de visualización de código abierto que puede conectarse con todas las fuentes de datos. Al extraer métricas, ayuda a los usuarios a comprender, analizar y supervisar datos masivos.
Milvus utiliza los paneles personalizables de Grafana para la visualización de métricas.
Lo que sigue
Después de conocer el flujo de trabajo básico de la monitorización y las alertas, aprenda: