Überblick über das Milvus-Überwachungs-Framework
Dieses Thema erklärt, wie Milvus Prometheus zur Überwachung von Metriken und Grafana zur Visualisierung von Metriken und zur Erstellung von Alarmen verwendet.
Prometheus in Milvus
Prometheus ist ein Open-Source-Überwachungs- und Alarmierungs-Toolkit für Kubernetes-Implementierungen. Es sammelt und speichert Metriken als Zeitseriendaten. Das bedeutet, dass die Metriken mit Zeitstempeln gespeichert werden, wenn sie aufgezeichnet werden, zusammen mit optionalen Schlüssel-Wert-Paaren, den so genannten Labels.
Derzeit verwendet Milvus die folgenden Komponenten von Prometheus:
- Prometheus-Endpunkt zum Abrufen von Daten von Endpunkten, die von Exporteuren festgelegt wurden.
- Prometheus-Operator zur effektiven Verwaltung von Prometheus-Überwachungsinstanzen.
- Kube-prometheus für eine einfach zu bedienende End-to-End-Überwachung von Kubernetes-Clustern.
Metrik-Namen
Ein gültiger Metrikname in Prometheus enthält drei Elemente: Namespace, Subsystem und Name. Diese drei Elemente sind mit "_" verbunden.
Der Namespace der Milvus-Metriken, die von Prometheus überwacht werden, ist "milvus". Je nach der Rolle, zu der eine Metrik gehört, sollte ihr Subsystem eine der folgenden acht Rollen sein: "rootcoord", "proxy", "querycoord", "querynode", "indexcoord", "indexnode", "datacoord", "datanode".
Die Milvus-Metrik, die die Gesamtzahl der abgefragten Vektoren berechnet, heißt zum Beispiel milvus_proxy_search_vectors_count
.
Metrik-Typen
Prometheus unterstützt vier Arten von Metriken:
- Zähler: ein Typ kumulativer Metriken, deren Wert nur bei einem Neustart erhöht oder auf Null zurückgesetzt werden kann.
- Gauge: ein Typ von Metriken, deren Wert entweder steigen oder fallen kann.
- Histogramm: eine Art von Metriken, die auf der Grundlage von konfigurierbaren Bereichen gezählt werden. Ein gängiges Beispiel ist die Anfragedauer.
- Zusammenfassung: Eine Art von Metrik, die dem Histogramm ähnelt und konfigurierbare Quantile über ein gleitendes Zeitfenster berechnet.
Metrik-Bezeichnungen
Prometheus unterscheidet Stichproben mit demselben Metriknamen, indem es sie beschriftet. Ein Label ist ein bestimmtes Attribut einer Metrik. Metriken mit demselben Namen müssen denselben Wert für das Feld variable_labels
haben. In der folgenden Tabelle sind die Namen und Bedeutungen der gebräuchlichen Bezeichnungen von Milvus-Metriken aufgeführt.
Name des Labels | Definition | Werte |
---|---|---|
"node_id" | Die eindeutige Identität einer Rolle. | Eine von milvus generierte, weltweit eindeutige ID. |
"status" | Der Status einer verarbeiteten Operation oder Anfrage. | "abandon", "success", oder "fail". |
"query_type" | Der Typ einer Leseanfrage. | "search" oder "query". |
"msg_type" | Die Art der Meldungen. | "einfügen", "löschen", "suchen" oder "abfragen". |
"segment_state" | Der Status eines Segments. | "Sealed", "Growing", "Flushed", "Flushing", "Dropped", oder "Importing". |
"cache_state" | Der Status eines zwischengespeicherten Objekts. | "Hit" oder "Miss". |
"cache_name" | Der Name eines zwischengespeicherten Objekts. Diese Bezeichnung wird zusammen mit der Bezeichnung "cache_state" verwendet. | Z.B. "CollectionID", "Schema", usw. |
"kanal_name | Physische Themen im Nachrichtenspeicher (Pulsar oder Kafka). | Z. B. "by-dev-rootcoord-dml_0", "by-dev-rootcoord-dml_255", usw. |
"funktion_name" | Der Name einer Funktion, die bestimmte Anfragen bearbeitet. | Z.B. "CreateCollection", "CreatePartition", "CreateIndex", usw. |
"user_name" | Der für die Authentifizierung verwendete Benutzername. | Geben Sie einen Benutzernamen Ihrer Wahl an. |
"index_task_status" | Der Status eines Index-Tasks im Metaspeicher. | "unissued", "in-progress", "failed", "finished", oder "recycled". |
Grafana in Milvus
Grafana ist ein Open-Source-Visualisierungs-Stack, der mit allen Datenquellen verbunden werden kann. Durch das Abrufen von Metriken hilft es Benutzern, große Datenmengen zu verstehen, zu analysieren und zu überwachen.
Milvus nutzt die anpassbaren Dashboards von Grafana für die Visualisierung von Metriken.
Was kommt als Nächstes?
Nachdem Sie den grundlegenden Arbeitsablauf der Überwachung und Alarmierung kennengelernt haben, lernen Sie: