Visão geral da estrutura de monitoramento do Milvus
Este tópico explica como o Milvus usa o Prometheus para monitorar métricas e o Grafana para visualizar métricas e criar alertas.
Prometheus no Milvus
O Prometheus é um kit de ferramentas de monitoramento e alerta de código aberto para implementações do Kubernetes. Ele coleta e armazena métricas como dados de série temporal. Isso significa que as métricas são armazenadas com carimbos de data e hora quando registradas, juntamente com pares de valores-chave opcionais chamados rótulos.
Atualmente, o Milvus usa os seguintes componentes do Prometheus:
- Endpoint do Prometheus para extrair dados de endpoints definidos por exportadores.
- Operador do Prometheus para gerenciar efetivamente as instâncias de monitoramento do Prometheus.
- Kube-prometheus para fornecer monitoramento de cluster Kubernetes de ponta a ponta fácil de operar.
Nomes de métricas
Um nome de métrica válido no Prometheus contém três elementos: namespace, subsistema e nome. Esses três elementos são conectados com "_".
O namespace das métricas do Milvus monitoradas pelo Prometheus é "milvus". Dependendo da função a que uma métrica pertence, o seu subsistema deve ser uma das oito funções seguintes: "rootcoord", "proxy", "querycoord", "querynode", "indexcoord", "indexnode", "datacoord", "datanode".
Por exemplo, a métrica Milvus que calcula o número total de vectores consultados tem o nome de milvus_proxy_search_vectors_count
.
Tipos de métricas
O Prometheus suporta quatro tipos de métricas:
- Contador: um tipo de métrica cumulativa cujo valor só pode aumentar ou ser redefinido para zero ao ser reiniciado.
- Gauge: um tipo de métrica cujo valor pode subir ou descer.
- Histograma: um tipo de métrica que é contada com base em intervalos configuráveis. Um exemplo comum é a duração do pedido.
- Resumo: um tipo de métrica semelhante ao histograma que calcula os quantis configuráveis numa janela de tempo deslizante.
Rótulos de métricas
O Prometheus diferencia amostras com o mesmo nome de métrica rotulando-as. Um rótulo é um determinado atributo de uma métrica. As métricas com o mesmo nome devem ter o mesmo valor para o campo variable_labels
. A tabela a seguir lista os nomes e os significados dos rótulos comuns das métricas do Milvus.
Nome da etiqueta | Definição | Valores |
---|---|---|
"node_id" | A identidade única de uma função. | Um ID globalmente único gerado por milvus. |
"status" (estado) | O estado de uma operação ou pedido processado. | "abandono", "sucesso" ou "falha". |
"query_type" (tipo de consulta) | O tipo de um pedido de leitura. | "search" (pesquisa) ou "query" (consulta). |
"msg_type" (tipo de mensagem) | O tipo de mensagens. | "insert", "delete", "search" ou "query". |
"segment_state" (estado do segmento) | O estado de um segmento. | "Sealed", "Growing", "Flushed", "Flushing", "Dropped" ou "Importing". |
"cache_state" | O estado de um objeto em cache. | "hit" ou "miss". |
"cache_name" | O nome de um objeto em cache. Esta etiqueta é utilizada em conjunto com a etiqueta "cache_state". | Por exemplo, "CollectionID", "Schema", etc. |
"channel_name" (nome do canal) | Tópicos físicos no armazenamento de mensagens (Pulsar ou Kafka). | Por exemplo, "by-dev-rootcoord-dml_0", "by-dev-rootcoord-dml_255", etc. |
"function_name" (nome da função) | O nome de uma função que trata de determinados pedidos. | Por exemplo, "CreateCollection", "CreatePartition", "CreateIndex", etc. |
"user_name" | O nome de utilizador utilizado para a autenticação. | Um nome de utilizador da sua preferência. |
"index_task_status" | O estado de uma tarefa de índice no meta-armazenamento. | "unissued" (não emitido), "in-progress" (em andamento), "failed" (falhou), "finished" (concluído) ou "recycled" (reciclado). |
Grafana em Milvus
Grafana é uma pilha de visualização de código aberto que pode se conectar a todas as fontes de dados. Ao obter métricas, ajuda os utilizadores a compreender, analisar e monitorizar dados massivos.
Milvus usa os painéis personalizáveis do Grafana para visualização de métricas.
O que vem a seguir
Depois de aprender sobre o fluxo de trabalho básico de monitoramento e alerta, aprenda: