Panoramica del quadro di monitoraggio di Milvus
Questo argomento spiega come Milvus utilizza Prometheus per monitorare le metriche e Grafana per visualizzare le metriche e creare avvisi.
Prometheus in Milvus
Prometheus è un toolkit open-source per il monitoraggio e gli avvisi per le implementazioni Kubernetes. Raccoglie e memorizza le metriche come dati di serie temporali. Ciò significa che le metriche sono memorizzate con timestamp quando vengono registrate, insieme a coppie chiave-valore opzionali chiamate etichette.
Attualmente Milvus utilizza i seguenti componenti di Prometheus:
- Prometheus endpoint per estrarre i dati dagli endpoint impostati dagli esportatori.
- Operatore Prometheus per gestire efficacemente le istanze di monitoraggio di Prometheus.
- Kube-prometheus per fornire un monitoraggio end-to-end del cluster Kubernetes facile da gestire.
Nomi delle metriche
Un nome di metrica valido in Prometheus contiene tre elementi: spazio dei nomi, sottosistema e nome. Questi tre elementi sono collegati con "_".
Lo spazio dei nomi delle metriche Milvus monitorate da Prometheus è "milvus". A seconda del ruolo a cui appartiene una metrica, il suo sottosistema deve essere uno dei seguenti otto ruoli: "rootcoord", "proxy", "querycoord", "querynode", "indexcoord", "indexnode", "datacoord", "datanode".
Ad esempio, la metrica di Milvus che calcola il numero totale di vettori interrogati si chiama milvus_proxy_search_vectors_count
.
Tipi di metriche
Prometheus supporta quattro tipi di metriche:
- Counter: un tipo di metrica cumulativa il cui valore può aumentare o essere azzerato solo al riavvio.
- Gauge: un tipo di metrica il cui valore può salire o scendere.
- Istogramma: un tipo di metrica che viene contata in base a bucket configurabili. Un esempio comune è la durata delle richieste.
- Riepilogo: un tipo di metrica simile all'istogramma che calcola i quantili configurabili su una finestra temporale scorrevole.
Etichette delle metriche
Prometheus differenzia i campioni con lo stesso nome di metrica etichettandoli. Un'etichetta è un determinato attributo di una metrica. Le metriche con lo stesso nome devono avere lo stesso valore per il campo variable_labels
. La tabella seguente elenca i nomi e i significati delle etichette comuni delle metriche Milvus.
Nome dell'etichetta | Definizione | Valori |
---|---|---|
"node_id" | L'identità unica di un ruolo. | Un ID unico a livello globale generato da milvus. |
"status" | Lo stato di un'operazione o di una richiesta elaborata. | "abbandono", "successo" o "fallimento". |
"Tipo_di_query" | Il tipo di richiesta di lettura. | "search" o "query". |
"msg_type" | Il tipo di messaggi. | "insert", "delete", "search" o "query". |
"stato_segmento" | Lo stato di un segmento. | "Sigillato", "In crescita", "Spurgato", "Eliminato" o "Importazione". |
"Stato_cache | Lo stato di un oggetto memorizzato nella cache. | "hit" o "miss". |
"cache_name" | Il nome di un oggetto memorizzato nella cache. Questa etichetta viene utilizzata insieme all'etichetta "cache_state". | Ad esempio, "CollectionID", "Schema", ecc. |
"nome_canale" | Argomenti fisici nell'archiviazione dei messaggi (Pulsar o Kafka). | Ad esempio, "by-dev-rootcoord-dml_0", "by-dev-rootcoord-dml_255", ecc. |
"nome_funzione" | Il nome di una funzione che gestisce determinate richieste. | Ad esempio, "CreateCollection", "CreatePartition", "CreateIndex", ecc. |
"nome_utente" | Il nome dell'utente utilizzato per l'autenticazione. | Un nome utente di vostra preferenza. |
"stato_attività_indice" | Lo stato di un'attività di indice nel meta-deposito. | "non emesso", "in corso", "fallito", "finito" o "riciclato". |
Grafana in Milvus
Grafana è uno stack di visualizzazione open-source in grado di connettersi con tutte le fonti di dati. Grazie all'estrazione di metriche, aiuta gli utenti a comprendere, analizzare e monitorare dati enormi.
Milvus utilizza i cruscotti personalizzabili di Grafana per la visualizzazione delle metriche.
Il prossimo passo
Dopo aver appreso il flusso di lavoro di base del monitoraggio e degli avvisi, imparate: